[Lua][RakSamp] помощь в скриптинге

mishpro

Новичок
Автор темы
8
0
Версия SA-MP
  1. Другая
у меня есть функция, назовем ее А. в ней в table добавляется обьект, который имеет timestamp, когда он был создан. после, из другой функции В, мне необходимо отсчитать от времени создания обьекта 5 минут, после чего выполнить с ним некоторые действия, как я могу это сделать? варианта использовать цикл while, который остановит программу до того времени пока не пройдут эти 5 минут нет, так как программа во время ожидания должна выполнять другие действия

если немного подробнее, то я пишу бота на частную ферму с деревом
 

пурурин

Участник
9
1
Если я правильно понимаю твои идеи, то можно реализовать это примерно как-то так:
Lua:
local queue = {} -- table

function main()
    while true do wait(0)
        function_A()
        processQueue()
    end
end

function function_A()
    local object = { timestamp = os.time(), data = "lol" }
    queue:insert(object)
end

function function_B(obj)
   -- выполнение некоторых действий с объектом
end

function processQueue()
    local current_time = os.time()
    for i = 1, #queue do
        local obj = queue[i]
        if current_time - obj.timestamp >= 300 then     -- 5 * 60 = 300 сек.
            function_B(obj)
            table.remove(queue, i)
            i = i - 1 -- после удаления из таблицы одного объекта все последующие сдвинутся назад
        end
    end
end