mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-02 11:18:53 +00:00
Added tonumber() checks, locale improvements, inventory improvements
This commit is contained in:
+107
-128
@@ -686,172 +686,157 @@ end
|
||||
|
||||
function OpenRoomInventoryMenu(property, owner)
|
||||
|
||||
ESX.TriggerServerCallback('esx_property:getPropertyInventory', function(inventory)
|
||||
ESX.TriggerServerCallback('esx_property:getPropertyInventory', function(inventory)
|
||||
|
||||
local elements = {}
|
||||
local elements = {}
|
||||
|
||||
table.insert(elements, {label = _U('dirty_money') .. inventory.blackMoney, type = 'item_account', value = 'black_money'})
|
||||
if inventory.blackMoney > 0 then
|
||||
table.insert(elements, {label = _U('dirty_money', inventory.blackMoney), type = 'item_account', value = 'black_money'})
|
||||
end
|
||||
|
||||
for i=1, #inventory.items, 1 do
|
||||
for i=1, #inventory.items, 1 do
|
||||
local item = inventory.items[i]
|
||||
|
||||
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
|
||||
end
|
||||
|
||||
if item.count > 0 then
|
||||
table.insert(elements, {label = item.label .. ' x' .. item.count, type = 'item_standard', value = item.name})
|
||||
end
|
||||
for i=1, #inventory.weapons, 1 do
|
||||
local weapon = inventory.weapons[i]
|
||||
table.insert(elements, {label = ESX.GetWeaponLabel(weapon.name) .. ' [' .. weapon.ammo .. ']', type = 'item_weapon', value = weapon.name, ammo = weapon.ammo})
|
||||
end
|
||||
|
||||
end
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'room_inventory',
|
||||
{
|
||||
title = property.label .. ' - ' .. _U('inventory'),
|
||||
align = 'top-left',
|
||||
elements = elements,
|
||||
}, function(data, menu)
|
||||
|
||||
for i=1, #inventory.weapons, 1 do
|
||||
local weapon = inventory.weapons[i]
|
||||
table.insert(elements, {label = ESX.GetWeaponLabel(weapon.name) .. ' [' .. weapon.ammo .. ']', type = 'item_weapon', value = weapon.name, ammo = weapon.ammo})
|
||||
end
|
||||
if data.current.type == 'item_weapon' then
|
||||
|
||||
ESX.UI.Menu.Open(
|
||||
'default', GetCurrentResourceName(), 'room_inventory',
|
||||
{
|
||||
title = property.label .. ' - ' .. _U('inventory'),
|
||||
align = 'top-left',
|
||||
elements = elements,
|
||||
},
|
||||
function(data, menu)
|
||||
menu.close()
|
||||
|
||||
if data.current.type == 'item_weapon' then
|
||||
TriggerServerEvent('esx_property:getItem', owner, data.current.type, data.current.value, data.current.ammo)
|
||||
|
||||
menu.close()
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenRoomInventoryMenu(property, owner)
|
||||
end)
|
||||
|
||||
TriggerServerEvent('esx_property:getItem', owner, data.current.type, data.current.value, data.current.ammo)
|
||||
else
|
||||
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenRoomInventoryMenu(property, owner)
|
||||
end)
|
||||
ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'get_item_count',
|
||||
{
|
||||
title = _U('amount'),
|
||||
}, function(data2, menu)
|
||||
|
||||
else
|
||||
local quantity = tonumber(data2.value)
|
||||
|
||||
ESX.UI.Menu.Open(
|
||||
'dialog', GetCurrentResourceName(), 'get_item_count',
|
||||
{
|
||||
title = _U('amount'),
|
||||
},
|
||||
function(data2, menu)
|
||||
if quantity == nil then
|
||||
ESX.ShowNotification(_U('amount_invalid'))
|
||||
else
|
||||
|
||||
local quantity = tonumber(data2.value)
|
||||
menu.close()
|
||||
|
||||
if quantity == nil then
|
||||
ESX.ShowNotification(_U('amount_invalid'))
|
||||
else
|
||||
TriggerServerEvent('esx_property:getItem', owner, data.current.type, data.current.value, quantity)
|
||||
|
||||
menu.close()
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenRoomInventoryMenu(property, owner)
|
||||
end)
|
||||
|
||||
TriggerServerEvent('esx_property:getItem', owner, data.current.type, data.current.value, quantity)
|
||||
end
|
||||
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenRoomInventoryMenu(property, owner)
|
||||
end)
|
||||
end, function(data2,menu)
|
||||
menu.close()
|
||||
end)
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end,
|
||||
function(data2,menu)
|
||||
menu.close()
|
||||
end
|
||||
)
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
end,
|
||||
function(data, menu)
|
||||
menu.close()
|
||||
end
|
||||
)
|
||||
|
||||
end, owner)
|
||||
end, owner)
|
||||
|
||||
end
|
||||
|
||||
function OpenPlayerInventoryMenu(property, owner)
|
||||
|
||||
ESX.TriggerServerCallback('esx_property:getPlayerInventory', function(inventory)
|
||||
ESX.TriggerServerCallback('esx_property:getPlayerInventory', function(inventory)
|
||||
|
||||
local elements = {}
|
||||
local elements = {}
|
||||
|
||||
table.insert(elements, {label = _U('dirty_money') .. inventory.blackMoney, type = 'item_account', value = 'black_money'})
|
||||
if inventory.blackMoney > 0 then
|
||||
table.insert(elements, {label = _U('dirty_money', inventory.blackMoney), type = 'item_account', value = 'black_money'})
|
||||
end
|
||||
|
||||
for i=1, #inventory.items, 1 do
|
||||
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
|
||||
end
|
||||
|
||||
local item = inventory.items[i]
|
||||
local playerPed = GetPlayerPed(-1)
|
||||
local weaponList = ESX.GetWeaponList()
|
||||
|
||||
if item.count > 0 then
|
||||
table.insert(elements, {label = item.label .. ' x' .. item.count, type = 'item_standard', value = item.name})
|
||||
end
|
||||
for i=1, #weaponList, 1 do
|
||||
local weaponHash = GetHashKey(weaponList[i].name)
|
||||
if HasPedGotWeapon(playerPed, weaponHash, false) and weaponList[i].name ~= 'WEAPON_UNARMED' then
|
||||
local ammo = GetAmmoInPedWeapon(playerPed, weaponHash)
|
||||
table.insert(elements, {label = weaponList[i].label .. ' [' .. ammo .. ']', type = 'item_weapon', value = weaponList[i].name, ammo = ammo})
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
ESX.UI.Menu.Open('default', GetCurrentResourceName(), 'player_inventory',
|
||||
{
|
||||
title = property.label .. ' - ' .. _U('inventory'),
|
||||
align = 'top-left',
|
||||
elements = elements,
|
||||
}, function(data, menu)
|
||||
|
||||
local playerPed = GetPlayerPed(-1)
|
||||
local weaponList = ESX.GetWeaponList()
|
||||
if data.current.type == 'item_weapon' then
|
||||
|
||||
for i=1, #weaponList, 1 do
|
||||
menu.close()
|
||||
|
||||
local weaponHash = GetHashKey(weaponList[i].name)
|
||||
TriggerServerEvent('esx_property:putItem', owner, data.current.type, data.current.value, data.current.ammo)
|
||||
|
||||
if HasPedGotWeapon(playerPed, weaponHash, false) and weaponList[i].name ~= 'WEAPON_UNARMED' then
|
||||
local ammo = GetAmmoInPedWeapon(playerPed, weaponHash)
|
||||
table.insert(elements, {label = weaponList[i].label .. ' [' .. ammo .. ']', type = 'item_weapon', value = weaponList[i].name, ammo = ammo})
|
||||
end
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenPlayerInventoryMenu(property, owner)
|
||||
end)
|
||||
|
||||
end
|
||||
else
|
||||
|
||||
ESX.UI.Menu.Open(
|
||||
'default', GetCurrentResourceName(), 'player_inventory',
|
||||
{
|
||||
title = property.label .. ' - ' .. _U('inventory'),
|
||||
align = 'top-left',
|
||||
elements = elements,
|
||||
},
|
||||
function(data, menu)
|
||||
ESX.UI.Menu.Open('dialog', GetCurrentResourceName(), 'put_item_count', {
|
||||
title = _U('amount'),
|
||||
}, function(data2, menu2)
|
||||
|
||||
if data.current.type == 'item_weapon' then
|
||||
local quantity = tonumber(data2.value)
|
||||
|
||||
menu.close()
|
||||
if quantity == nil then
|
||||
ESX.ShowNotification(_U('amount_invalid'))
|
||||
else
|
||||
|
||||
TriggerServerEvent('esx_property:putItem', owner, data.current.type, data.current.value, data.current.ammo)
|
||||
menu2.close()
|
||||
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenPlayerInventoryMenu(property, owner)
|
||||
end)
|
||||
TriggerServerEvent('esx_property:putItem', owner, data.current.type, data.current.value, tonumber(data2.value))
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenPlayerInventoryMenu(property, owner)
|
||||
end)
|
||||
end
|
||||
|
||||
else
|
||||
end, function(data2, menu2)
|
||||
menu2.close()
|
||||
end)
|
||||
|
||||
ESX.UI.Menu.Open(
|
||||
'dialog', GetCurrentResourceName(), 'put_item_count',
|
||||
{
|
||||
title = _U('amount'),
|
||||
},
|
||||
function(data2, menu)
|
||||
end
|
||||
|
||||
menu.close()
|
||||
end, function(data, menu)
|
||||
menu.close()
|
||||
end)
|
||||
|
||||
TriggerServerEvent('esx_property:putItem', owner, data.current.type, data.current.value, tonumber(data2.value))
|
||||
|
||||
ESX.SetTimeout(300, function()
|
||||
OpenPlayerInventoryMenu(property, owner)
|
||||
end)
|
||||
|
||||
end,
|
||||
function(data2,menu)
|
||||
menu.close()
|
||||
end
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
end,
|
||||
function(data, menu)
|
||||
menu.close()
|
||||
end
|
||||
)
|
||||
|
||||
end)
|
||||
end)
|
||||
|
||||
end
|
||||
|
||||
@@ -1094,21 +1079,15 @@ Citizen.CreateThread(function()
|
||||
|
||||
if CurrentAction == 'property_menu' then
|
||||
OpenPropertyMenu(CurrentActionData.property)
|
||||
end
|
||||
|
||||
if CurrentAction == 'gateway_menu' then
|
||||
elseif CurrentAction == 'gateway_menu' then
|
||||
if Config.EnablePlayerManagement then
|
||||
OpenGatewayOwnedPropertiesMenu(CurrentActionData.property)
|
||||
else
|
||||
OpenGatewayMenu(CurrentActionData.property)
|
||||
end
|
||||
end
|
||||
|
||||
if CurrentAction == 'room_menu' then
|
||||
elseif CurrentAction == 'room_menu' then
|
||||
OpenRoomMenu(CurrentActionData.property, CurrentActionData.owner)
|
||||
end
|
||||
|
||||
if CurrentAction == 'room_exit' then
|
||||
elseif CurrentAction == 'room_exit' then
|
||||
TriggerEvent('instance:leave')
|
||||
end
|
||||
|
||||
|
||||
+3
-3
@@ -19,13 +19,13 @@ Locales['br'] = {
|
||||
['remove_object'] = 'Remover objeto',
|
||||
['deposit_object'] = 'Depositar objeto',
|
||||
['invite'] = 'Convidar',
|
||||
['dirty_money'] = 'Dinheiro sujo $',
|
||||
['dirty_money'] = 'Dinheiro sujo: <span style="color: red;">$%s</span>',
|
||||
['inventory'] = 'Inventário',
|
||||
['amount'] = 'valor?',
|
||||
['amount_invalid'] = 'quantidade inválida',
|
||||
['press_to_exit'] = 'Pressione ~INPUT_CONTEXT~ para sair da propriedade',
|
||||
['rented_for'] = 'Você alugou uma propriedade por $',
|
||||
['purchased_for'] = 'Você comprou uma propriedade por $',
|
||||
['rented_for'] = 'Você alugou uma propriedade por ~g~$%s~s~',
|
||||
['purchased_for'] = 'Você comprou uma propriedade por ~g~$%s~s~',
|
||||
['made_property'] = 'Você criou uma propriedade',
|
||||
['not_enough'] = 'Você não tem dinheiro suficiente',
|
||||
['invalid_quantity'] = 'Quantidade inválida',
|
||||
|
||||
+3
-3
@@ -19,13 +19,13 @@ Locales['de'] = {
|
||||
['remove_object'] = 'Objekt nehmen',
|
||||
['deposit_object'] = 'Objekt deponieren',
|
||||
['invite'] = 'Einladen',
|
||||
['dirty_money'] = 'Schwarzgeld $',
|
||||
['dirty_money'] = 'Schwarzgeld: <span style="color: red;">$%s</span>',
|
||||
['inventory'] = 'Inventar',
|
||||
['amount'] = 'Anzahlt?',
|
||||
['amount_invalid'] = 'Ungültiger Wert',
|
||||
['press_to_exit'] = 'Drücke ~INPUT_CONTEXT~ um die Immobilie zu verlassen',
|
||||
['rented_for'] = 'Du hast eine Immobilie gemietet $',
|
||||
['purchased_for'] = 'Du hast eine Immobilie gekauft $',
|
||||
['rented_for'] = 'Du hast eine Immobilie gemietet ~g~$%s~s~',
|
||||
['purchased_for'] = 'Du hast eine Immobilie gekauft ~g~$%s~s~',
|
||||
['made_property'] = 'Du hast eine Immobilie gemacht',
|
||||
['not_enough'] = 'du hast nicht genug Geld',
|
||||
['invalid_quantity'] = 'Ungültiger Betrag',
|
||||
|
||||
+3
-3
@@ -19,13 +19,13 @@ Locales['en'] = {
|
||||
['remove_object'] = 'remove object',
|
||||
['deposit_object'] = 'deposit object',
|
||||
['invite'] = 'invite',
|
||||
['dirty_money'] = 'dirty money $',
|
||||
['dirty_money'] = 'dirty money: <span style="color: red;">$%s</span>',
|
||||
['inventory'] = 'inventory',
|
||||
['amount'] = 'amount?',
|
||||
['amount_invalid'] = 'invalid amount',
|
||||
['press_to_exit'] = 'press ~INPUT_CONTEXT~ to exit the property',
|
||||
['rented_for'] = 'you rented a property for $',
|
||||
['purchased_for'] = 'you purchased a property for $',
|
||||
['rented_for'] = 'you rented a property for ~g~$%s~s~',
|
||||
['purchased_for'] = 'you purchased a property for ~g~$%s~s~',
|
||||
['made_property'] = 'you have made a property',
|
||||
['not_enough'] = 'you do not have enough money',
|
||||
['invalid_quantity'] = 'invalid quantity',
|
||||
|
||||
+3
-3
@@ -19,13 +19,13 @@ Locales['es'] = {
|
||||
['remove_object'] = 'Retirar objeto',
|
||||
['deposit_object'] = 'Depositar objeto',
|
||||
['invite'] = 'Invitar',
|
||||
['dirty_money'] = 'Dinero sucio €',
|
||||
['dirty_money'] = 'Dinero sucio: <span style="color: red;">€%s</span>',
|
||||
['inventory'] = 'Inventario',
|
||||
['amount'] = '¿Cantidad?',
|
||||
['amount_invalid'] = 'Cantidad inválida',
|
||||
['press_to_exit'] = 'Presione ~INPUT_CONTEXT~ para salir de la propiedad',
|
||||
['rented_for'] = 'Has alquilado una propiedad por €',
|
||||
['purchased_for'] = 'Has comprado una propiedad por €',
|
||||
['rented_for'] = 'Has alquilado una propiedad por ~g~€%s~s~',
|
||||
['purchased_for'] = 'Has comprado una propiedad por ~g~€%s~s~',
|
||||
['made_property'] = 'Ha hecho una propiedad',
|
||||
['not_enough'] = 'n\'No tiene suficiente d\'dinero',
|
||||
['invalid_quantity'] = 'Cantidad inválida',
|
||||
|
||||
+3
-3
@@ -19,13 +19,13 @@ Locales['fi'] = {
|
||||
['remove_object'] = 'poista esine',
|
||||
['deposit_object'] = 'talleta esine',
|
||||
['invite'] = 'kutsu',
|
||||
['dirty_money'] = 'likainen raha $',
|
||||
['dirty_money'] = 'likainen raha: <span style="color: red;">$%s</span>',
|
||||
['inventory'] = 'reppu',
|
||||
['amount'] = 'määrä?',
|
||||
['amount_invalid'] = 'virheellinen määrä',
|
||||
['press_to_exit'] = 'paina ~INPUT_CONTEXT~ poistuaksesi kiinteistöstä',
|
||||
['rented_for'] = 'sinä vuokrasit kiinteistön hintaan $',
|
||||
['purchased_for'] = 'sinä ostit kiinteistön hintaan $',
|
||||
['rented_for'] = 'sinä vuokrasit kiinteistön hintaan ~g~$%s~s~',
|
||||
['purchased_for'] = 'sinä ostit kiinteistön hintaan ~g~$%s~s~',
|
||||
['made_property'] = 'sinä teit kiinteistön',
|
||||
['not_enough'] = 'sinulla ei ole tarpeeksi rahaa',
|
||||
['invalid_quantity'] = 'virheellinen määrä',
|
||||
|
||||
+3
-3
@@ -19,13 +19,13 @@ Locales['fr'] = {
|
||||
['remove_object'] = 'retirer objet',
|
||||
['deposit_object'] = 'déposer objet',
|
||||
['invite'] = 'inviter',
|
||||
['dirty_money'] = 'argent sale $',
|
||||
['dirty_money'] = 'argent sale: <span style="color: red;">$%s</span>',
|
||||
['inventory'] = 'inventaire',
|
||||
['amount'] = 'quantité ?',
|
||||
['amount_invalid'] = 'montant invalide',
|
||||
['press_to_exit'] = 'appuyez sur ~INPUT_CONTEXT~ pour sortir de la propriété',
|
||||
['rented_for'] = 'vous avez loué une propriété pour $',
|
||||
['purchased_for'] = 'vous avez acheté une propriété pour $',
|
||||
['rented_for'] = 'vous avez loué une propriété pour ~g~$%s~s~',
|
||||
['purchased_for'] = 'vous avez acheté une propriété pour ~g~$%s~s~',
|
||||
['made_property'] = 'vous avez rendu une propriété',
|
||||
['not_enough'] = 'vous n\'avez pas assez d\'argent',
|
||||
['invalid_quantity'] = 'quantité invalide',
|
||||
|
||||
+3
-3
@@ -19,13 +19,13 @@ Locales['pl'] = {
|
||||
['remove_object'] = 'usuń objekt',
|
||||
['deposit_object'] = 'deponuj objekt',
|
||||
['invite'] = 'zaproś',
|
||||
['dirty_money'] = 'brudne pieniądze $',
|
||||
['dirty_money'] = 'brudne pieniądze: <span style="color: red;">$%s</span>',
|
||||
['inventory'] = 'ekwipunek',
|
||||
['amount'] = 'suma?',
|
||||
['amount_invalid'] = 'nieprawidłowa suma',
|
||||
['press_to_exit'] = 'wciśnij ~INPUT_CONTEXT~ aby wyjść z mieszkania',
|
||||
['rented_for'] = 'wynająłeś/aś mieszkanie za $',
|
||||
['purchased_for'] = 'kupiłeś/aś mieszkanie za $',
|
||||
['rented_for'] = 'wynająłeś/aś mieszkanie za ~g~$%s~s~',
|
||||
['purchased_for'] = 'kupiłeś/aś mieszkanie za ~g~$%s~s~',
|
||||
['made_property'] = 'stworzyłeś/aś mieszkanie',
|
||||
['not_enough'] = 'nie posiadasz wystarczająco pieniędzy',
|
||||
['invalid_quantity'] = 'nieprawidłowa ilość',
|
||||
|
||||
+5
-5
@@ -19,17 +19,17 @@ Locales['sv'] = {
|
||||
['remove_object'] = 'ta ut objekt',
|
||||
['deposit_object'] = 'lagra objekt',
|
||||
['invite'] = 'bjud in',
|
||||
['dirty_money'] = 'Smutsiga pengar: $',
|
||||
['dirty_money'] = 'smutsiga pengar: <span style="color: red;">%s SEK</span>',
|
||||
['inventory'] = 'inventory',
|
||||
['amount'] = 'summa?',
|
||||
['amount_invalid'] = 'ogiltlig summa',
|
||||
['press_to_exit'] = 'tryck ~INPUT_CONTEXT~ för att gå ur fastigheten',
|
||||
['rented_for'] = 'du hyrde en fastighet för: ~g~$',
|
||||
['purchased_for'] = 'du köpte en fastighet för: ~g~$',
|
||||
['press_to_exit'] = 'tryck ~INPUT_CONTEXT~ för att lämna fastigheten',
|
||||
['rented_for'] = 'du hyrde en fastighet för: ~g~%s SEK~s~',
|
||||
['purchased_for'] = 'du köpte en fastighet för: ~g~%s SEK~s~',
|
||||
['made_property'] = 'you have made a property',
|
||||
['not_enough'] = 'du har inte tillräckligt med pengar!',
|
||||
['invalid_quantity'] = 'ogiltlig mängd',
|
||||
['paid_rent'] = 'du ~y~betalade~s~ din hyra: ~g~$%s~s~',
|
||||
['paid_rent'] = 'du ~y~betalade~s~ din hyra: ~g~%s SEK~s~',
|
||||
['not_enough_in_property'] = 'det finns ~r~inte~s~ tillräckligt av ~r~det objektet~s~ i fastigheten!',
|
||||
['player_cannot_hold'] = 'du har ~r~inte~s~ tillräckligt med ~y~utrymme~s~ för att hålla det!',
|
||||
}
|
||||
+2
-2
@@ -36,9 +36,9 @@ function SetPropertyOwned(name, price, rented, owner)
|
||||
TriggerClientEvent('esx_property:setPropertyOwned', xPlayer.source, name, true)
|
||||
|
||||
if rented then
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rented_for') .. price)
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rented_for', price))
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('purchased_for') .. price)
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('purchased_for', price))
|
||||
end
|
||||
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user