Use new boss menu + Add chest

This commit is contained in:
Jérémie N'gadi
2017-09-03 12:24:28 +02:00
parent 0f9436bc6d
commit 758a7b96e6
8 changed files with 205 additions and 61 deletions
+118 -61
View File
@@ -136,7 +136,15 @@ function OpenArmoryMenu(station)
if data.current.value == 'buy_weapons' then
OpenBuyWeaponsMenu(station)
end
end
if data.current.value == 'put_stock' then
OpenPutStocksMenu()
end
if data.current.value == 'get_stock' then
OpenGetStocksMenu()
end
end,
function(data, menu)
@@ -827,84 +835,121 @@ function OpenBuyWeaponsMenu(station)
end
function OpenBossActionsMenu()
function OpenGetStocksMenu()
ESX.UI.Menu.CloseAll()
ESX.TriggerServerCallback('esx_policejob:getStockItems', function(items)
ESX.UI.Menu.Open(
'default', GetCurrentResourceName(), 'realestateagent',
{
title = PlayerData.job.grade_label,
elements = {
{label = _U('take_company_money'), value = 'withdraw_society_money'},
{label = _U('deposit_money'), value = 'deposit_money'},
}
},
function(data, menu)
print(json.encode(items))
if data.current.value == 'withdraw_society_money' then
local elements = {}
for i=1, #items, 1 do
table.insert(elements, {label = 'x' .. items[i].count .. ' ' .. items[i].label, value = items[i].name})
end
ESX.UI.Menu.Open(
'default', GetCurrentResourceName(), 'stocks_menu',
{
title = 'Police Stock',
elements = elements
},
function(data, menu)
local itemName = data.current.value
ESX.UI.Menu.Open(
'dialog', GetCurrentResourceName(), 'withdraw_society_money_amount',
'dialog', GetCurrentResourceName(), 'stocks_menu_get_item_count',
{
title = _U('amount_of_withdrawal')
title = 'Quantité'
},
function(data, menu)
function(data2, menu2)
local amount = tonumber(data.value)
local count = tonumber(data2.value)
if amount == nil then
ESX.ShowNotification(_U('invalid_amount'))
if count == nil then
ESX.ShowNotification('Quantité invalide')
else
menu.close()
TriggerServerEvent('esx_society:withdrawMoney', 'police', amount)
menu2.close()
menu.close()
OpenGetStocksMenu()
TriggerServerEvent('esx_policejob:getStockItem', itemName, count)
end
end,
function(data, menu)
menu.close()
function(data2, menu2)
menu2.close()
end
)
end,
function(data, menu)
menu.close()
end
)
end)
end
function OpenPutStocksMenu()
ESX.TriggerServerCallback('esx_policejob:getPlayerInventory', function(inventory)
local elements = {}
for i=1, #inventory.items, 1 do
local item = inventory.items[i]
if item.count > 0 then
table.insert(elements, {label = item.label .. ' x' .. item.count, type = 'item_standard', value = item.name})
end
if data.current.value == 'deposit_money' then
ESX.UI.Menu.Open(
'dialog', GetCurrentResourceName(), 'deposit_money_amount',
{
title = _U('amount_of_deposit')
},
function(data, menu)
local amount = tonumber(data.value)
if amount == nil then
ESX.ShowNotification(_U('invalid_amount'))
else
menu.close()
TriggerServerEvent('esx_society:depositMoney', 'police', amount)
end
end,
function(data, menu)
menu.close()
end
)
end
end,
function(data, menu)
menu.close()
CurrentAction = 'menu_boss_actions'
CurrentActionMsg = _U('open_bossmenu')
CurrentActionData = {}
end
)
ESX.UI.Menu.Open(
'default', GetCurrentResourceName(), 'stocks_menu',
{
title = 'Inventaire',
elements = elements
},
function(data, menu)
local itemName = data.current.value
ESX.UI.Menu.Open(
'dialog', GetCurrentResourceName(), 'stocks_menu_put_item_count',
{
title = 'Quantité'
},
function(data2, menu2)
local count = tonumber(data2.value)
if count == nil then
ESX.ShowNotification('Quantité invalide')
else
menu2.close()
menu.close()
OpenPutStocksMenu()
TriggerServerEvent('esx_policejob:putStockItems', itemName, count)
end
end,
function(data2, menu2)
menu2.close()
end
)
end,
function(data, menu)
menu.close()
end
)
end)
end
@@ -1420,7 +1465,19 @@ Citizen.CreateThread(function()
end
if CurrentAction == 'menu_boss_actions' then
OpenBossActionsMenu()
ESX.UI.menu.CloseAll()
TriggerEvent('esx_society:openBossMenu', 'police', function(data, menu)
menu.close()
CurrentAction = 'menu_boss_actions'
CurrentActionMsg = _U('open_bossmenu')
CurrentActionData = {}
end)
end
if CurrentAction == 'remove_entity' then
+4
View File
@@ -6,6 +6,10 @@ INSERT INTO `datastore` (name, label, shared) VALUES
('society_police','Polizei',1)
;
INSERT INTO `addon_inventory` (name, label, shared) VALUES
('society_police', 'Polizei', 1)
;
INSERT INTO `jobs` (name, label) VALUES
('police','LSPD')
;
+4
View File
@@ -9,6 +9,10 @@ INSERT INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_
('police',3,'boss','Commandant',80,'{\"tshirt_1\":58,\"torso_1\":55,\"shoes\":24,\"pants_1\":35,\"pants_2\":0,\"decals_2\":3,\"hair_color_2\":0,\"face\":19,\"helmet_2\":0,\"hair_2\":0,\"arms\":41,\"torso_2\":0,\"hair_color_1\":5,\"hair_1\":2,\"skin\":34,\"sex\":0,\"glasses_1\":0,\"glasses_2\":1,\"decals_1\":8,\"glasses\":0,\"tshirt_2\":0,\"helmet_1\":11}','{\"tshirt_1\":35,\"torso_1\":48,\"arms\":44,\"pants_1\":34,\"pants_2\":0,\"decals_2\":3,\"hair_color_2\":0,\"face\":21,\"helmet_2\":0,\"hair_2\":3,\"decals_1\":7,\"torso_2\":0,\"hair_color_1\":10,\"hair_1\":11,\"skin\":34,\"sex\":1,\"glasses_1\":5,\"glasses_2\":1,\"shoes\":24,\"glasses\":0,\"tshirt_2\":0,\"helmet_1\":57}')
;
INSERT INTO `addon_inventory` (name, label, shared) VALUES
('society_police', 'Polizei', 1)
;
CREATE TABLE `fine_types` (
`id` int(11) NOT NULL AUTO_INCREMENT,
+4
View File
@@ -6,6 +6,10 @@ INSERT INTO `datastore` (name, label, shared) VALUES
('society_police','Police',1)
;
INSERT INTO `addon_inventory` (name, label, shared) VALUES
('society_police', 'Police', 1)
;
INSERT INTO `jobs` (name, label) VALUES
('police','LSPD')
;
+4
View File
@@ -9,6 +9,10 @@ INSERT INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_
('police',3,'boss','Commandant',80,'{\"tshirt_1\":58,\"torso_1\":55,\"shoes\":24,\"pants_1\":35,\"pants_2\":0,\"decals_2\":3,\"hair_color_2\":0,\"face\":19,\"helmet_2\":0,\"hair_2\":0,\"arms\":41,\"torso_2\":0,\"hair_color_1\":5,\"hair_1\":2,\"skin\":34,\"sex\":0,\"glasses_1\":0,\"glasses_2\":1,\"decals_1\":8,\"glasses\":0,\"tshirt_2\":0,\"helmet_1\":11}','{\"tshirt_1\":35,\"torso_1\":48,\"arms\":44,\"pants_1\":34,\"pants_2\":0,\"decals_2\":3,\"hair_color_2\":0,\"face\":21,\"helmet_2\":0,\"hair_2\":3,\"decals_1\":7,\"torso_2\":0,\"hair_color_1\":10,\"hair_1\":11,\"skin\":34,\"sex\":1,\"glasses_1\":5,\"glasses_2\":1,\"shoes\":24,\"glasses\":0,\"tshirt_2\":0,\"helmet_1\":57}')
;
INSERT INTO `addon_inventory` (name, label, shared) VALUES
('society_police', 'Police', 1)
;
CREATE TABLE `fine_types` (
`id` int(11) NOT NULL AUTO_INCREMENT,
+4
View File
@@ -6,6 +6,10 @@ INSERT INTO `datastore` (name, label, shared) VALUES
('society_police','Police',1)
;
INSERT INTO `addon_inventory` (name, label, shared) VALUES
('society_police', 'Police', 1)
;
INSERT INTO `jobs` (name, label) VALUES
('police','LSPD')
;
+4
View File
@@ -9,6 +9,10 @@ INSERT INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_
('police',3,'boss','Commandant',80,'{\"tshirt_1\":58,\"torso_1\":55,\"shoes\":24,\"pants_1\":35,\"pants_2\":0,\"decals_2\":3,\"hair_color_2\":0,\"face\":19,\"helmet_2\":0,\"hair_2\":0,\"arms\":41,\"torso_2\":0,\"hair_color_1\":5,\"hair_1\":2,\"skin\":34,\"sex\":0,\"glasses_1\":0,\"glasses_2\":1,\"decals_1\":8,\"glasses\":0,\"tshirt_2\":0,\"helmet_1\":11}','{\"tshirt_1\":35,\"torso_1\":48,\"arms\":44,\"pants_1\":34,\"pants_2\":0,\"decals_2\":3,\"hair_color_2\":0,\"face\":21,\"helmet_2\":0,\"hair_2\":3,\"decals_1\":7,\"torso_2\":0,\"hair_color_1\":10,\"hair_1\":11,\"skin\":34,\"sex\":1,\"glasses_1\":5,\"glasses_2\":1,\"shoes\":24,\"glasses\":0,\"tshirt_2\":0,\"helmet_1\":57}')
;
INSERT INTO `addon_inventory` (name, label, shared) VALUES
('society_police', 'Police', 1)
;
CREATE TABLE `fine_types` (
`id` int(11) NOT NULL AUTO_INCREMENT,
+63
View File
@@ -64,6 +64,50 @@ AddEventHandler('esx_policejob:putInVehicle', function(target)
TriggerClientEvent('esx_policejob:putInVehicle', target)
end)
RegisterServerEvent('esx_policejob:getStockItem')
AddEventHandler('esx_policejob:getStockItem', function(itemName, count)
local xPlayer = ESX.GetPlayerFromId(source)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_policestock', function(inventory)
local item = inventory.getItem(itemName)
if item.count >= count then
inventory.removeItem(itemName, count)
xPlayer.addInventoryItem(itemName, count)
else
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Quantité invalide')
end
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez retiré x' .. count .. ' ' .. item.label)
end)
end)
RegisterServerEvent('esx_policejob:putStockItems')
AddEventHandler('esx_policejob:putStockItems', function(itemName, count)
local xPlayer = ESX.GetPlayerFromId(source)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_policestock', function(inventory)
local item = inventory.getItem(itemName)
if item.count >= 0 then
xPlayer.removeInventoryItem(itemName, count)
inventory.addItem(itemName, count)
else
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Quantité invalide')
end
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Vous avez ajouté x' .. count .. ' ' .. item.label)
end)
end)
ESX.RegisterServerCallback('esx_policejob:getOtherPlayerData', function(source, cb, target)
local xPlayer = ESX.GetPlayerFromId(target)
@@ -267,3 +311,22 @@ ESX.RegisterServerCallback('esx_policejob:buy', function(source, cb, amount)
end)
end)
ESX.RegisterServerCallback('esx_policejob:getStockItems', function(source, cb)
TriggerEvent('esx_addoninventory:getSharedInventory', 'society_policestock', function(inventory)
cb(inventory.items)
end)
end)
ESX.RegisterServerCallback('esx_policejob:getPlayerInventory', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local items = xPlayer.inventory
cb({
items = items
})
end)