#lua #lua-table #fivem
Вопрос:
Итак, я пишу сценарий для сервера FiveM, и у меня есть вопрос. Я вроде как новичок в LUA, так что имейте это в виду. Насколько я понимаю, эта строка кода делает это, она проверяет, не больше ли элементов в описании, чем 0, а затем вставляет элемент x. Проблема в том, что игрок может вставить гораздо больше предметов, чем у него есть в инвентаре. Что я имею в виду под этим? У игрока есть 10 конфет, но он может добавить 20 на стол. Есть ли способ проверить, сколько предметов он хочет разместить, затем проверить свой инвентарь, а затем добавить его в таблицу? Вот строки кода, которые это делают.
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
end
Ответ №1:
-- create an empty table
local elements = {}
-- for each item in some inventory list
for i=1, #inventory.items, 1 do
-- reference that item
local item = inventory.items[i]
-- I assume you can have more than one of each items so if you have at least one
if item.count > 0 then
-- insert a new table with info about that item into elements
table.insert(elements, {label = item.label .. ' x' .. item.count, type = 'item_standard', value = item.name})
end
end
Этот код не управляет никакими подсчетами. Единственный способ, которым этот код может добавить больше предметов, чем у игрока, — это запустить этот цикл несколько раз. Он просто передает информацию из одного списка в другой.
Поскольку вы добавляете эти предметы из инвентаря игрока, нет необходимости сравнивать их количество с его инвентарем