serhiyrubin
Известный
- 396
- 106
Я такое используюВозможность создание дополнительных потоков по аналогии с RakBot клиентом имеется?
Как отдельный модуль валяется, подключаю через require в основной скрипт
task:
_G.task = {}
function taskAdd(name, delay, rep, func, ...)
local tab = {...}
if task[name] == nil then
task[name] = {
start = os.clock() * 1000,
delay = delay,
rep = rep,
func = func,
tab = tab
}
end
end
function taskDel(name)
if name ~= nil then
task[name] = nil
return
end
task = {}
end
function taskUpdate()
if task ~= nil then
for name, v in pairs(task) do
if os.clock() * 1000 - v.start > v.delay then
v.func(unpack(v.tab))
if v.rep then
if task[name] ~= nil then
task[name].start = os.clock() * 1000
end
else
task[name] = nil
end
end
end
end
end
Func:
taskUpdate() - Поместить в беск. цикл onUpdate()
taskAdd("task1", 1000, true, function(number)
print("Пишу вам цифру "..number.." которая была передана в параметры")
end, 100)
taskDel("task1") - Удалить задачу по названию, без названия - всё удаляет
Тупо записывает функцию в таблицу с параметрами её запуска
И удаляет после выполнения если не стоит повтор true
Аххаха вот оно в разделе C/C++ уже Lua добралось