diff --git a/[esx_addons]/esx_policejob/client/main.lua b/[esx_addons]/esx_policejob/client/main.lua index c70e861d..21b5737b 100644 --- a/[esx_addons]/esx_policejob/client/main.lua +++ b/[esx_addons]/esx_policejob/client/main.lua @@ -226,8 +226,7 @@ function OpenArmoryMenu(station) if Config.EnableArmoryManagement then table.insert(elements, {label = TranslateCap('get_weapon'), value = 'get_weapon'}) table.insert(elements, {label = TranslateCap('put_weapon'), value = 'put_weapon'}) - table.insert(elements, {label = TranslateCap('remove_object'), value = 'get_stock'}) - table.insert(elements, {label = TranslateCap('deposit_object'), value = 'put_stock'}) + table.insert(elements, {label = TranslateCap('open_inventory'), value = 'stock'}) end OpenPoliceMenu('default', 'armory', TranslateCap('armory'), elements, function(data, menu) @@ -237,10 +236,9 @@ function OpenArmoryMenu(station) OpenPutWeaponMenu() elseif data.current.value == 'buy_weapons' then OpenBuyWeaponsMenu() - elseif data.current.value == 'put_stock' then - OpenPutStocksMenu() - elseif data.current.value == 'get_stock' then - OpenGetStocksMenu() + elseif data.current.value == 'stock' then + TriggerServerEvent('esx_policejob:openInventory') + menu.close() end end, function(data, menu) menu.close() @@ -840,83 +838,6 @@ function OpenWeaponComponentShop(components, weaponName, parentShop) end) end -function OpenGetStocksMenu() - xLib.callback('esx_policejob:getStockItems', false, function(items) - local elements = {} - - for i=1, #items, 1 do - elements[#elements+1] = { - label = 'x' .. items[i].count .. ' ' .. items[i].label, - value = items[i].name - } - end - - OpenPoliceMenu('default', 'stocks_menu', TranslateCap('police_stock'), elements, function(data, menu) - local itemName = data.current.value - - OpenPoliceMenu('dialog', 'stocks_menu_get_item_count', TranslateCap('quantity'), nil, function(data2, menu2) - local count = tonumber(data2.value) - - if not count then - ESX.ShowNotification(TranslateCap('quantity_invalid')) - else - menu2.close() - menu.close() - TriggerServerEvent('esx_policejob:getStockItem', itemName, count) - - Wait(300) - OpenGetStocksMenu() - end - end, function(data2, menu2) - menu2.close() - end) - end, function(data, menu) - menu.close() - end) - end) -end - -function OpenPutStocksMenu() - xLib.callback('esx_policejob:getPlayerInventory', false, function(inventory) - local elements = {} - - for i=1, #inventory.items, 1 do - local item = inventory.items[i] - - if item.count > 0 then - elements[#elements+1] = { - label = item.label .. ' x' .. item.count, - type = 'item_standard', - value = item.name - } - end - end - - OpenPoliceMenu('default', 'stocks_menu', TranslateCap('inventory'), elements, function(data, menu) - local itemName = data.current.value - - OpenPoliceMenu('dialog', 'stocks_menu_put_item_count', TranslateCap('quantity'), nil, function(data2, menu2) - local count = tonumber(data2.value) - - if not count then - ESX.ShowNotification(TranslateCap('quantity_invalid')) - else - menu2.close() - menu.close() - TriggerServerEvent('esx_policejob:putStockItems', itemName, count) - - Wait(300) - OpenPutStocksMenu() - end - end, function(data2, menu2) - menu2.close() - end) - end, function(data, menu) - menu.close() - end) - end) -end - RegisterNetEvent('esx_phone:loaded') AddEventHandler('esx_phone:loaded', function(phoneNumber, contacts) local specialContact = { diff --git a/[esx_addons]/esx_policejob/config.lua b/[esx_addons]/esx_policejob/config.lua index d079d15d..622cbebb 100644 --- a/[esx_addons]/esx_policejob/config.lua +++ b/[esx_addons]/esx_policejob/config.lua @@ -10,7 +10,7 @@ Config.MarkerSize = { x = 1.5, y = 1.5, z = 0.5 } Config.MarkerColor = { r = 50, g = 50, b = 204 } Config.EnablePlayerManagement = true -- Enable if you want society managing. -Config.EnableArmoryManagement = false +Config.EnableArmoryManagement = true Config.EnableESXIdentity = true -- Enable if you're using esx_identity. Config.EnableESXOptionalneeds = false -- Enable if you're using esx_optionalneeds Config.EnableLicenses = false -- Enable if you're using esx_license. diff --git a/[esx_addons]/esx_policejob/locales/cs.lua b/[esx_addons]/esx_policejob/locales/cs.lua index 3ca2480c..13303539 100644 --- a/[esx_addons]/esx_policejob/locales/cs.lua +++ b/[esx_addons]/esx_policejob/locales/cs.lua @@ -11,8 +11,7 @@ Locales['cs'] = { ['no_outfit'] = 'není zde žádná uniforma, která by ti sedla!', ['open_cloackroom'] = 'stiskni [E] pro změnu oblečení.', -- Armory - ['remove_object'] = 'vzít objekt', - ['deposit_object'] = 'odevzdat objekt', + ['open_inventory'] = 'Otevřít inventář', ['get_weapon'] = 'vzít zbraň ze zbrojnice', ['put_weapon'] = 'uchovat zbraň ve zbrojnici', ['buy_weapons'] = 'koupit zbraně', @@ -155,7 +154,6 @@ Locales['cs'] = { ['quantity'] = 'množství', ['quantity_placeholder'] = 'Amount to withdraw..', --not translated ['inventory'] = 'inventář', - ['police_stock'] = 'policejní sklad', -- Misc ['remove_prop'] = 'stiskni [E] pro odstranění předmětu', ['map_blip'] = 'policejní stanice', diff --git a/[esx_addons]/esx_policejob/locales/de.lua b/[esx_addons]/esx_policejob/locales/de.lua index e12c0b6a..5127c572 100644 --- a/[esx_addons]/esx_policejob/locales/de.lua +++ b/[esx_addons]/esx_policejob/locales/de.lua @@ -11,8 +11,7 @@ Locales['de'] = { ['no_outfit'] = 'Es gibt keine Klamotten die dir passen.', ['open_cloackroom'] = 'Drücke [E] um dich umzuziehen', -- Armory - ['remove_object'] = 'Objekt nehmen', - ['deposit_object'] = 'Objekt verstauen', + ['open_inventory'] = 'Inventar öffnen', ['get_weapon'] = 'Waffen holen', ['put_weapon'] = 'Waffen bringen', ['buy_weapons'] = 'Waffen kaufen', @@ -155,7 +154,6 @@ Locales['de'] = { ['quantity'] = 'Anzahl', ['quantity_placeholder'] = 'Anzahl zum Einzahlen..', ['inventory'] = 'Inventar', - ['police_stock'] = 'Polizeilager', -- Misc ['remove_prop'] = 'Drücke [E] um das Objekt zu entfernen', ['map_blip'] = 'Polizeiwache', diff --git a/[esx_addons]/esx_policejob/locales/en.lua b/[esx_addons]/esx_policejob/locales/en.lua index f9c858cf..2349da97 100644 --- a/[esx_addons]/esx_policejob/locales/en.lua +++ b/[esx_addons]/esx_policejob/locales/en.lua @@ -11,8 +11,7 @@ Locales['en'] = { ['no_outfit'] = 'there\'s no uniform that fits you!', ['open_cloackroom'] = 'press [E] to change clothes.', -- Armory - ['remove_object'] = 'withdraw object', - ['deposit_object'] = 'deposit object', + ['open_inventory'] = 'Open inventory', ['get_weapon'] = 'withdraw weapon from armory', ['put_weapon'] = 'store weapon in armory', ['buy_weapons'] = 'buy weapons', @@ -155,7 +154,6 @@ Locales['en'] = { ['quantity'] = 'quantity', ['quantity_placeholder'] = 'Amount to withdraw..', ['inventory'] = 'inventory', - ['police_stock'] = 'police Stock', -- Misc ['remove_prop'] = 'press [E] to delete the object', ['map_blip'] = 'police Station', diff --git a/[esx_addons]/esx_policejob/locales/es.lua b/[esx_addons]/esx_policejob/locales/es.lua index f080d379..47fea73d 100644 --- a/[esx_addons]/esx_policejob/locales/es.lua +++ b/[esx_addons]/esx_policejob/locales/es.lua @@ -11,8 +11,7 @@ Locales['es'] = { ['no_outfit'] = '¡No hay ningún uniforme disponible para ti!', ['open_cloackroom'] = 'Presionar [E] para abrir su taquilla', -- Armory - ['remove_object'] = 'Coger objeto', - ['deposit_object'] = 'Depositar objeto', + ['open_inventory'] = 'Abrir inventario', ['get_weapon'] = 'Coger arma', ['put_weapon'] = 'Depositar arma', ['buy_weapons'] = 'Comprar armas', @@ -155,7 +154,6 @@ Locales['es'] = { ['quantity'] = 'cantidad', ['quantity_placeholder'] = 'Amount to withdraw..', --not translated ['inventory'] = 'inventario', - ['police_stock'] = 'almacen Policial', -- Misc ['remove_prop'] = 'presionar [E] para eliminar el objeto', ['map_blip'] = 'comisaría de policía', diff --git a/[esx_addons]/esx_policejob/locales/fi.lua b/[esx_addons]/esx_policejob/locales/fi.lua index 97d738c4..5a4ba283 100644 --- a/[esx_addons]/esx_policejob/locales/fi.lua +++ b/[esx_addons]/esx_policejob/locales/fi.lua @@ -11,8 +11,7 @@ Locales['fi'] = { ['no_outfit'] = 'täällä ei ole sinulle sopivaa asua', ['open_cloackroom'] = 'paina [E] vaihtaaksesi vaatteita.', -- Armory - ['remove_object'] = 'ota esine', - ['deposit_object'] = 'talleta esine', + ['open_inventory'] = 'Avaa inventaario', ['get_weapon'] = 'ota ase', ['put_weapon'] = 'laita ase pois', ['buy_weapons'] = 'osta aseita', @@ -155,7 +154,6 @@ Locales['fi'] = { ['quantity'] = 'määrä', ['quantity_placeholder'] = 'Määrä mitä otat..', ['inventory'] = 'varasto', - ['police_stock'] = 'poliisin Varasto', -- Misc ['remove_prop'] = 'paina [E] poistaaksesi objektin', ['map_blip'] = 'poliisilaitos', diff --git a/[esx_addons]/esx_policejob/locales/fr.lua b/[esx_addons]/esx_policejob/locales/fr.lua index 48d4811b..484893ae 100644 --- a/[esx_addons]/esx_policejob/locales/fr.lua +++ b/[esx_addons]/esx_policejob/locales/fr.lua @@ -11,8 +11,7 @@ Locales['fr'] = { ['no_outfit'] = 'il n\'y a pas d\'uniforme à votre taille...', ['open_cloackroom'] = 'appuyez sur [E] pour vous changer', -- Armurerie - ['remove_object'] = 'prendre Objet', - ['deposit_object'] = 'déposer objet', + ['open_inventory'] = 'Ouvrir l\'inventaire', ['get_weapon'] = 'prendre Arme', ['put_weapon'] = 'déposer Arme', ['buy_weapons'] = 'acheter Armes', @@ -155,7 +154,6 @@ Locales['fr'] = { ['quantity'] = 'quantité', ['quantity_placeholder'] = 'Montant à retirer..', ['inventory'] = 'inventaire', - ['police_stock'] = 'coffre de la police', -- Misc ['remove_prop'] = 'appuyez sur [E] pour enlever l\'objet', ['map_blip'] = 'Commissariat', diff --git a/[esx_addons]/esx_policejob/locales/hu.lua b/[esx_addons]/esx_policejob/locales/hu.lua index b18f3f81..9adb1dd5 100644 --- a/[esx_addons]/esx_policejob/locales/hu.lua +++ b/[esx_addons]/esx_policejob/locales/hu.lua @@ -11,8 +11,7 @@ Locales['hu'] = { ['no_outfit'] = 'Nincs hozzád illő egyenruha!', ['open_cloackroom'] = 'Nyomj [E] hogy hozzáférj: Öltöző.', -- Armory - ['remove_object'] = 'Tárgy kivétele', - ['deposit_object'] = 'Tárgy berakás', + ['open_inventory'] = 'Leltár megnyitása', ['get_weapon'] = 'Fegyver kivétele', ['put_weapon'] = 'Fegyver berakás', ['buy_weapons'] = 'Fegyver vásárlás', @@ -156,7 +155,6 @@ Locales['hu'] = { ['quantity'] = 'mennyiség', ['quantity_placeholder'] = 'Amount to withdraw..', --not translated ['inventory'] = 'leltár', - ['police_stock'] = 'Állomány', -- Misc ['remove_prop'] = 'Nyomj [E] gombot az objektum törléséhez', ['map_blip'] = 'Rendőrség', diff --git a/[esx_addons]/esx_policejob/locales/it.lua b/[esx_addons]/esx_policejob/locales/it.lua index f6678d56..e7220889 100644 --- a/[esx_addons]/esx_policejob/locales/it.lua +++ b/[esx_addons]/esx_policejob/locales/it.lua @@ -11,8 +11,7 @@ Locales['it'] = { ['no_outfit'] = 'Non c\'è una divisa adatta a te!', ['open_cloackroom'] = 'Premi [E] per cambiarti.', -- Armeria - ['remove_object'] = 'Prendi oggetto', - ['deposit_object'] = 'Deposita oggetto', + ['open_inventory'] = 'Apri inventario', ['get_weapon'] = 'Prendi arma dall\'armeria', ['put_weapon'] = 'Deposita arma nell\'armeria', ['buy_weapons'] = 'Acquista armi', @@ -155,7 +154,6 @@ Locales['it'] = { ['quantity'] = 'quantità', ['quantity_placeholder'] = 'Importo da prelevare..', ['inventory'] = 'inventario', - ['police_stock'] = 'stock di polizia', -- Varie ['remove_prop'] = 'premi [E] per eliminare l\'oggetto', ['map_blip'] = 'Stazione di Polizia', diff --git a/[esx_addons]/esx_policejob/locales/nl.lua b/[esx_addons]/esx_policejob/locales/nl.lua index 2783634b..f6b07409 100644 --- a/[esx_addons]/esx_policejob/locales/nl.lua +++ b/[esx_addons]/esx_policejob/locales/nl.lua @@ -11,8 +11,7 @@ Locales['nl'] = { ['no_outfit'] = 'Er zijn geen passende uniformen voor jou!', ['open_cloackroom'] = 'Druk op [E] om je kleding aan te passen.', -- Wapenkamer - ['remove_object'] = 'Haal item uit kluis', - ['deposit_object'] = 'Leg item in kluis', + ['open_inventory'] = 'Inventaris openen', ['get_weapon'] = 'Haal wapen uit wapenkamer', ['put_weapon'] = 'Leg wapen in wapenkamer', ['buy_weapons'] = 'Koop wapens', @@ -156,7 +155,6 @@ Locales['nl'] = { ['quantity'] = 'Aantal', ['quantity_placeholder'] = 'Amount to withdraw..', --not translated ['inventory'] = 'Inventaris', - ['police_stock'] = 'Politie Voorraad', -- Misc ['remove_prop'] = 'Druk op [E] om dit object te verwijderen.', ['map_blip'] = 'Politiebureau', diff --git a/[esx_addons]/esx_policejob/locales/pl.lua b/[esx_addons]/esx_policejob/locales/pl.lua index 3b00c4b5..42327289 100644 --- a/[esx_addons]/esx_policejob/locales/pl.lua +++ b/[esx_addons]/esx_policejob/locales/pl.lua @@ -11,8 +11,7 @@ Locales['pl'] = { ['no_outfit'] = 'brak ubrania', ['open_cloackroom'] = 'naciśnij [E] aby zmienić ubranie.', -- Armory - ['remove_object'] = 'weź przedmiot', - ['deposit_object'] = 'zdeponuj przedmiot', + ['open_inventory'] = 'Otwórz ekwipunek', ['get_weapon'] = 'weź broń', ['put_weapon'] = 'odłóż broń', ['buy_weapons'] = 'kup Broń', @@ -155,7 +154,6 @@ Locales['pl'] = { ['quantity'] = 'ilość', ['quantity_placeholder'] = 'Amount to withdraw..', --not translated ['inventory'] = 'ekwipunek', - ['police_stock'] = 'zapasy policji', -- Misc ['remove_prop'] = 'naciśnij [E] aby usunąć ten obiekt', ['map_blip'] = 'komisariat Policji', diff --git a/[esx_addons]/esx_policejob/locales/sr.lua b/[esx_addons]/esx_policejob/locales/sr.lua index 49e66702..6e743ca0 100644 --- a/[esx_addons]/esx_policejob/locales/sr.lua +++ b/[esx_addons]/esx_policejob/locales/sr.lua @@ -11,8 +11,7 @@ Locales['sr'] = { ['no_outfit'] = 'Nema uniforme koja Vam odgovara!', ['open_cloackroom'] = 'Pritisni [E] da promeniš odeću.', -- Armory - ['remove_object'] = 'Ukloni objekat', - ['deposit_object'] = 'Postavi objekat', + ['open_inventory'] = 'Otvori inventar', ['get_weapon'] = 'Uzmi oružje iz oružarnice', ['put_weapon'] = 'Ostavi oružje u oružarnicu', ['buy_weapons'] = 'Kupi oružje', @@ -147,7 +146,6 @@ Locales['sr'] = { ['have_deposited'] = 'Ostavili ste %sx %s', ['quantity'] = 'Količina', ['inventory'] = 'Inventar', - ['police_stock'] = 'Policijske zalihe', -- Misc ['remove_prop'] = 'Pritisni [E] da ukloniš objekat', ['map_blip'] = 'Policijska Stanica', diff --git a/[esx_addons]/esx_policejob/server/main.lua b/[esx_addons]/esx_policejob/server/main.lua index 71caaf69..e5fe089d 100644 --- a/[esx_addons]/esx_policejob/server/main.lua +++ b/[esx_addons]/esx_policejob/server/main.lua @@ -315,70 +315,45 @@ AddEventHandler('playerDropped', function() cuffedPlayers[source] = nil end) -RegisterNetEvent('esx_policejob:getStockItem') - -AddEventHandler('esx_policejob:getStockItem', function(itemName, count) - local source = source - local xPlayer = ESX.Player(source) - - count = getValidCount(count) - - if not count or not isPoliceOnDuty(xPlayer) or not isNearPoliceArmory(source) then - if not notifyOffDuty(xPlayer) then - print(('[^3WARNING^7] Player ^5%s^7 attempted invalid police stock withdrawal!'):format(source)) - end - - return - end +local function registerStorages() + exports.esx_inventory:RegisterStorage("society_police", { + label = "Police Stock", + slots = 30, + maxWeight = 200, + canAccess = function(xPlayer) + return xPlayer.getJob().name == "police" + end, + getItems = function(xPlayer) + return stockItems + end, + putItem = function(xPlayer, itemName, count) + return addToStock(itemName, count) + end, + takeItem = function(xPlayer, itemName, count) + return removeFromStock(itemName, count) + end, + coords = Config.PoliceStations.LSPD.Armories[1], + distance = 5.0, + }) +end - TriggerEvent('esx_addoninventory:getSharedInventory', 'society_police', function(inventory) - local inventoryItem = inventory.getItem(itemName) +AddEventHandler("esx_inventory:ready", registerStorages) - -- is there enough in the society? - if count > 0 and inventoryItem.count >= count then - -- can the player carry the said amount of x item? - if xPlayer.canCarryItem(itemName, count) then - inventory.removeItem(itemName, count) - xPlayer.addInventoryItem(itemName, count) - xPlayer.showNotification(TranslateCap('have_withdrawn', count, inventoryItem.name)) - else - xPlayer.showNotification(TranslateCap('quantity_invalid')) - end - else - xPlayer.showNotification(TranslateCap('quantity_invalid')) - end - end) -end) - -RegisterNetEvent('esx_policejob:putStockItems') +if GetResourceState("esx_inventory") == "started" then + registerStorages() +end -AddEventHandler('esx_policejob:putStockItems', function(itemName, count) +RegisterNetEvent('esx_policejob:openInventory') +AddEventHandler('esx_policejob:openInventory', function() local source = source local xPlayer = ESX.Player(source) - local sourceItem = xPlayer.getInventoryItem(itemName) - - count = getValidCount(count) - - if not count or not isPoliceOnDuty(xPlayer) or not isNearPoliceArmory(source) then - if not notifyOffDuty(xPlayer) then - print(('[^3WARNING^7] Player ^5%s^7 attempted invalid police stock deposit!'):format(source)) - end + if not xPlayer or xPlayer.getJob().name ~= 'police' then + print(('[^3WARNING^7] Player ^5%s^7 attempted to exploit the police inventory!'):format(source)) return end - TriggerEvent('esx_addoninventory:getSharedInventory', 'society_police', function(inventory) - local inventoryItem = inventory.getItem(itemName) - - -- does the player have enough of the item? - if sourceItem.count >= count and count > 0 then - xPlayer.removeInventoryItem(itemName, count) - inventory.addItem(itemName, count) - xPlayer.showNotification(TranslateCap('have_deposited', count, inventoryItem.name)) - else - xPlayer.showNotification(TranslateCap('quantity_invalid')) - end - end) + exports.esx_inventory:OpenStorage(xPlayer.src, "society_police") end) xLib.callback.registerCompat('esx_policejob:getOtherPlayerData', function(source, cb, target, notify) @@ -730,30 +705,6 @@ function getPriceFromHash(vehicleHash, jobGrade, type) return 0 end -xLib.callback.registerCompat('esx_policejob:getStockItems', function(source, cb) - local xPlayer = ESX.Player(source) - - if not isPoliceOnDuty(xPlayer) or not isNearPoliceArmory(source) then - return cb({}) - end - - TriggerEvent('esx_addoninventory:getSharedInventory', 'society_police', function(inventory) - cb(inventory.items) - end) -end) - -xLib.callback.registerCompat('esx_policejob:getPlayerInventory', function(source, cb) - local xPlayer = ESX.Player(source) - - if not isPoliceOnDuty(xPlayer) or not isNearPoliceArmory(source) then - return cb({ items = {} }) - end - - local items = xPlayer.getInventory(false) - - cb({ items = items }) -end) - AddEventHandler('onResourceStop', function(resource) if resource == GetCurrentResourceName() then TriggerEvent('esx_phone:removeNumber', 'police')