Можно ли запустить таймер из таймера? Чет оно не работает...
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
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
26
5 лет назад
1
Мне нужно чтоб один и тот же таймер с одной и той же функцией всегда имел разное время)
Запускаешь однократный таймер, и по его срабатыванию - запускаешь его опять, ещё раз, но на случайное время. Можешь сделать функцию на старт этого таймера с рандомом всегда и юзать её при первом запуске и при каждом срабатывании таймера.
Суть: запускаем функцию №1 она выбирает случайный таймер из 5 и запускает его, в свою очередь каждый таймер вызывает себя по несколько раз(имено важно вызвать самого себя), а когда будет вызван последний раз, запускает таймер который использует функцию №1.
Можешь счётчик прикрутить и каждый раз тикать его с выводом в начало.
0
8
5 лет назад
Отредактирован Castiel
0
Всем спасибо~Clamp:
Castiel, он имеет в виду, какую игровую задачу ты решал, создавая этот код.
я понимаю)) Создавал погодные эффекты, по этому всегда нужно было иметь разное время таймера после его перезапуска. На джассе делаю так и оно работает, а на луа этот же таймер из этого же таймера запустить с другим временем чет не получается....По этому и задал тут вопрос. Но мне не нужно удалять таймер.
1
29
5 лет назад
1
Создавал погодные эффекты, по этому всегда нужно было иметь разное время таймера после его перезапуска.
И вот зачем городить такие костыли, если вс решается довольно таки просто?
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
0
8
5 лет назад
0
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
ну допустим мне его надо запаузить, а потом возобновить другим таймером
1
29
5 лет назад
1
ну допустим мне его надо запаузить, а потом возобновить другим таймером
Так используйте функции
PauseTimer()
ResumeTimer()
0
8
5 лет назад
Отредактирован Castiel
0
NazarPunk:
ну допустим мне его надо запаузить, а потом возобновить другим таймером
Так используйте функции
PauseTimer()
ResumeTimer()
Как же я забыл про ресюме таймера ) спс бро! Ты мозг великий ) Просто как бы мне было удобней таймер ставить на большое время, а не по одной секунде считать)
0
28
5 лет назад
0
Резьюм не работает, как надо.
0
8
5 лет назад
0
PT153:
Резьюм не работает, как надо.
и как быть тогда ?
0
28
5 лет назад
0
Если таймер однократный, то перед паузой выяснять оставшееся время, а после распазузы стартовать его на оставшееся.
0
26
5 лет назад
0
Castiel, не совсем понял, как работают триггеры. Вот есть у тебя ветер, снег, дождь, солнечные лучи и лунные лучи. Для каждого из них работает таймер, который в случайный момент включает эффект, прерывая предыдущий, а по окончанию продолжает его?
0
8
5 лет назад
Отредактирован Castiel
0
8gabriel8:
Castiel, не совсем понял, как работают триггеры. Вот есть у тебя ветер, снег, дождь, солнечные лучи и лунные лучи. Для каждого из них работает таймер, который в случайный момент включает эффект, прерывая предыдущий, а по окончанию продолжает его?
ну есть таймер, который по истечении создает допустим дождь, мы паузим таймер, запускаем сначала слабый дождь, спустя случайное время запускаем сильный дождь, спустя случайное время опять слабый дождь, по истечении времени таймера запускаем таймер который создает случайный погодный эффект. То есть хотелось бы сделать через 2 таймера, не с подсчетом в 1 секунду и локалкой, чисто таймер допустим на 30 секунд с false. не хотелось бы создавать таймер внутри таймера внутри таймера внутри таймера. По этому я и создавал отдельные функции, а не безымянные прям таймере.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.