Есть ли способ проверить значение в таблице.вставить в LUA?

#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
 

Этот код не управляет никакими подсчетами. Единственный способ, которым этот код может добавить больше предметов, чем у игрока, — это запустить этот цикл несколько раз. Он просто передает информацию из одного списка в другой.
Поскольку вы добавляете эти предметы из инвентаря игрока, нет необходимости сравнивать их количество с его инвентарем