Нормально ли сделать так ?
local t=CreateTimer()
TimerStart(t,10,false,function()
TimerStart(t,10,false,function()
DestroyTimer(t)
end)
end)
Принятый ответ
local t=CreateTimer()
TimerStart(t,10,false,function()
TimerStart(CreateTimer(),10,false,function()
DestroyTimer(t)
DestroyTimer(GetExpiredTimer())
end)
end)
Но я вообще чаще забиваю болт огромный на уничтожение одноразовых таймеров, ибо ещё не доказано что в луа сборщик мусора с ними делает
и просто делаю так, но ты так не делай
и просто делаю так, но ты так не делай
TimerStart(CreateTimer(),10,false,function()
TimerStart(CreateTimer(),10,false,function()
print("'это сообщение будет показано через 20 секунд")
end)
end)
или вообще вот так чтобы точно ничего не потерять
local t=CreateTimer()
TimerStart(t,10,false,function()
local t2=CreateTimer()
TimerStart(t2,10,false,function()
DestroyTimer(t)
DestroyTimer(t2)
end)
end)
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован Берги
и просто делаю так, но ты так не делай
Отредактирован GetLocalPlayer
Отредактирован GetLocalPlayer
Так что да, это некрасиво, грубо, фу-фу-фу, но не смертельно.
TimerStart(CreateTimer(), 10, false, function())
TimerStart(CreateTimer(), 10, false, function())
end)
end)
do
local original = TimerStart
function TimerStart(a,b,c,d)
if c == false then
-- Создаем таблицу на уничтожение при завершение и заменяем параметр обертку функции чтоб уничтожить таймер D
end
original(a,b,c,d)
end
end