Есть разница?
function OnTimer takes nothing returns nothing
	call BJDebugMsg("")
endfunction

function OnInit takes nothing returns nothing
	call TimerStart(t, 0.01, true, function OnTimer)
endfunction
и
function OnTimer takes nothing returns nothing
	call BJDebugMsg("")
	call TimerStart(t, 0.01, false, function OnTimer)
endfunction

function OnInit takes nothing returns nothing
	call TimerStart(t, 0.01, false, function OnTimer)
endfunction

Во втором случае период таймера будет зависеть от скорости выполнения кода выше и остановится от ошибки (обрыва потока)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
15
С точки зрения исполнения почти никакой.
С точки зрения оптимизации, это один дополнительный вызов функции на каждый тик таймера.
15
Proshel_Doty, представь себе некий яд, наносящий урон каждую 1 секунду. Для этого нужен периодический таймер. Но вот проблема, ты хочешь чтобы яд наносил урон, помимо прочего, еще и в момент наложения. Можно было бы написать избыточный код, производящий нанесение урона перед запуском таймера, а можно просто запустить сам таймер с интервалом 0 секунд, а затем перезапускать его изнутри как в твоем втором примере..
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.