Bonjour, je viens solliciter votre aide pour un projet que j’ai en ce moment, je suis entrain de convertir tous les menus esx de mon serveur en NativeUI Reloaded, mais je me frotte à un problème fréquent : le fameux attempt to index a nil value (golbal ‘ESX’). Actuellement je suis sur esx_ambulancejob et j’avoue que je comprend pas pourquoi il me met ça.
Code de base
function OpenGetStocksMenu()
ESX.TriggerServerCallback('esx_ambulancejob:getStockItems', function(items)
print(json.encode(items))
local elements = {}
for i=1, #items, 1 do
if (items[i].count ~= 0) then
table.insert(elements, {label = 'x' .. items[i].count .. ' ' .. items[i].label, value = items[i].name})
end
end
ESX.UI.Menu.Open(
'default', GetCurrentResourceName(), 'stocks_menu',
{
title = 'Stock',
align = 'top-left',
elements = elements
},
function(data, menu)
local itemName = data.current.value
ESX.UI.Menu.Open(
'dialog', GetCurrentResourceName(), 'stocks_menu_get_item_count',
{
title = _U('quantity')
},
function(data2, menu2)
local count = tonumber(data2.value)
if count == nil or count <= 0 then
ESX.ShowNotification(_U('quantity_invalid'))
else
menu2.close()
menu.close()
OpenGetStocksMenu()
TriggerServerEvent('esx_ambulancejob:getStockItem', itemName, count)
end
end,
function(data2, menu2)
menu2.close()
end
)
end,
function(data, menu)
menu.close()
end
)
end)
end
Code en NativeUI Reloaded (non fini)
function AddPutInStockMenu(menu)
ESX.TriggerServerCallback('esx_ambulancejob:getPlayerInventory', function(inventory)
for i=1, #inventory.items, 1 do
local item = inventory.items[i]
local invItem = NativeUI.CreateItem(item.label .. ' x' .. item.count)
if item.count > 0 then
menu:AddItem(invItem)
end
end
end)
end
Pour ceux qui connaissent bien le script, c’est dans le client/job.lua. Je précise que j’ai probablement pas la dernière version du script.
Merci d’avance pour votre aide