Можно ли запустить таймер из таймера? Чет оно не работает...
function TIMER()
	T=CreateTimer()
	F=function()

		TimerStart(T,math.random(5,10),false,F)
	end
	TimerStart(T,math.random(5,10),false,F)
end

Зачем такие сложности то?
do
	local i, a, b = 0, math.random(5, 10), math.random(5, 10)
	
	TimerStart(CreateTimer(), 1, true, function()
		i = i + 1
		if i == a then
			print('a')
		elseif i == a + b then
			print('b')
			PauseTimer(GetExpiredTimer())
			DestroyTimer(GetExpiredTimer())
		end
	end)
end
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
26
Мне нужно чтоб один и тот же таймер с одной и той же функцией всегда имел разное время)
Запускаешь однократный таймер, и по его срабатыванию - запускаешь его опять, ещё раз, но на случайное время. Можешь сделать функцию на старт этого таймера с рандомом всегда и юзать её при первом запуске и при каждом срабатывании таймера.
Суть: запускаем функцию №1 она выбирает случайный таймер из 5 и запускает его, в свою очередь каждый таймер вызывает себя по несколько раз(имено важно вызвать самого себя), а когда будет вызван последний раз, запускает таймер который использует функцию №1.
Можешь счётчик прикрутить и каждый раз тикать его с выводом в начало.
8
Всем спасибо~Clamp:
Castiel, он имеет в виду, какую игровую задачу ты решал, создавая этот код.
я понимаю)) Создавал погодные эффекты, по этому всегда нужно было иметь разное время таймера после его перезапуска. На джассе делаю так и оно работает, а на луа этот же таймер из этого же таймера запустить с другим временем чет не получается....По этому и задал тут вопрос. Но мне не нужно удалять таймер.
30
Создавал погодные эффекты, по этому всегда нужно было иметь разное время таймера после его перезапуска.
И вот зачем городить такие костыли, если вс решается довольно таки просто?
do
	local InitGlobalsOrigin = InitGlobals
	function InitGlobals()
		InitGlobalsOrigin()
		local i = math.random(5, 10)
		TimerStart(CreateTimer(), 1, true, function()
			i = i - 1
			if i == 0 then
				print('Смена эффекта')
				i = math.random(5, 10)
			end
		end)
	end
end
8
NazarPunk:
Создавал погодные эффекты, по этому всегда нужно было иметь разное время таймера после его перезапуска.
И вот зачем городить такие костыли, если вс решается довольно таки просто?
do
	local InitGlobalsOrigin = InitGlobals
	function InitGlobals()
		InitGlobalsOrigin()
		local i = math.random(5, 10)
		TimerStart(CreateTimer(), 1, true, function()
			i = i - 1
			if i == 0 then
				print('Смена эффекта')
				i = math.random(5, 10)
			end
		end)
	end
end
ну допустим мне его надо запаузить, а потом возобновить другим таймером
30
ну допустим мне его надо запаузить, а потом возобновить другим таймером
Так используйте функции
PauseTimer()
ResumeTimer()
8
NazarPunk:
ну допустим мне его надо запаузить, а потом возобновить другим таймером
Так используйте функции
PauseTimer()
ResumeTimer()
Как же я забыл про ресюме таймера ) спс бро! Ты мозг великий ) Просто как бы мне было удобней таймер ставить на большое время, а не по одной секунде считать)
8
PT153:
Резьюм не работает, как надо.
и как быть тогда ?
28
Если таймер однократный, то перед паузой выяснять оставшееся время, а после распазузы стартовать его на оставшееся.
26
Castiel, не совсем понял, как работают триггеры. Вот есть у тебя ветер, снег, дождь, солнечные лучи и лунные лучи. Для каждого из них работает таймер, который в случайный момент включает эффект, прерывая предыдущий, а по окончанию продолжает его?
8
8gabriel8:
Castiel, не совсем понял, как работают триггеры. Вот есть у тебя ветер, снег, дождь, солнечные лучи и лунные лучи. Для каждого из них работает таймер, который в случайный момент включает эффект, прерывая предыдущий, а по окончанию продолжает его?
ну есть таймер, который по истечении создает допустим дождь, мы паузим таймер, запускаем сначала слабый дождь, спустя случайное время запускаем сильный дождь, спустя случайное время опять слабый дождь, по истечении времени таймера запускаем таймер который создает случайный погодный эффект. То есть хотелось бы сделать через 2 таймера, не с подсчетом в 1 секунду и локалкой, чисто таймер допустим на 30 секунд с false. не хотелось бы создавать таймер внутри таймера внутри таймера внутри таймера. По этому я и создавал отдельные функции, а не безымянные прям таймере.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.