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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
23
Похожие вопросы:

ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Юзай ретурн баг, он снова доступен...
Просто массив целочисленных куда записаны ид code.
Вот ссылочка

30
Зачем такие сложности то?
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
Принятый ответ
32
А почему нет, в потоке запущенном таймером можно получить с помощью GetExpiredTimer() таймер который его вызвал, и использовать этот же таймер, чтобы вызвать функцию, запаузить таймер, продолжить, или изменить время.
8
NazarPunk:
Зачем такие сложности то?
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
Эммм....обьяснить сможешь ? Мне нужно чтоб один и тот же таймер с одной и той же функцией всегда имел разное время) Мне не нужно удалять таймер, потому что есть другие функции, которые запускают этот же таймер ...
И еще хотелось бы узнать есть ли разница между вот TimerStart(t,1,true,и вот эта вот функция допустим до 60 сек.) или TimerStart(t,60,false,function())
30
Эммм....обьяснить сможешь ?
Всё просто, каждую секунду мы инкриментим i. Код можно представить так:
local i = 0 -- начинаем с нуля
TimerStart(CreateTimer(), 1, true, function()
	i = i + 1 -- увеличиваем счётчик
	if i == 5 then
		print('Прошло 5 секунд')
	elseif i == 13 then
		print('Прошло 13 секунд')
		PauseTimer(GetExpiredTimer())
		DestroyTimer(GetExpiredTimer())
	end
end)
И еще хотелось бы узнать есть ли разница между вот TimerStart(t,1,true,и вот эта вот функция допустим до 60 сек.) или TimerStart(t,60,false,function())
Всё зависит от задач, но в кратце можно объяснить так:
local i = 13
TimerStart(CreateTimer(), 1, false, function()
	print(i) --> 13
end)
local function myfunc()
	print(i) --> nil
end
local i = 13
TimerStart(CreateTimer(), 1, false, myfunc)
24
Castiel, объясни что ты пытаешься сделать этим таймером. Запустить то таймер изнутри таймера можно, но не факт что это действительно решает твою задачу.
8
prog:
Castiel, объясни что ты пытаешься сделать этим таймером. Запустить то таймер изнутри таймера можно, но не факт что это действительно решает твою задачу.
могу просто скинуть код но его много) Суть: запускаем функцию №1 она выбирает случайный таймер из 5 и запускает его, в свою очередь каждый таймер вызывает себя по несколько раз(имено важно вызвать самого себя), а когда будет вызван последний раз, запускает таймер который использует функцию №1. Что то типа этого:
function BLABLA()

	local T_1=CreateTimer()
	local T_2=CreateTimer()
	local count
	
	FUNC_2=function()
			count=count+1
			if count=10 then
				TimerStart(T_1,math.random(10,20),false,FUNC_1)
			else
				TimerStart(T_2,math.random(10,20),false,FUNC_2)
			end
	end

	FUNC_1=function()
		count=0
		TimerStart(T_2,math.random(10,20),true,FUNC_2)
	end
	TimerStart(T_1,math.random(10,20),false,FUNC_1)
end
24
Castiel, мне не сильно поможет твой код - расскажи какую задачу ты пытаешься решить, какой должен быть результат работы всех этих таймеров.
8
prog:
Castiel, мне не сильно поможет твой код - расскажи какую задачу ты пытаешься решить, какой должен быть результат работы всех этих таймеров.
ммммм...результат работы ? Так я ж говорил, нужно просто вызывать таймер таймером вот как на функции выше))
30
Castiel, он имеет в виду, какую игровую задачу ты решал, создавая этот код.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.