| 
	 
	 
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]()  | 
	
 | 
	 
	 
			
			  8.11.2011, 16:31
			
				 Сообщение
					#1
					
				
			 
		 | 
	|
        	
				
					![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз  | 
       
			
			 
				Товарищ один (Akvilon) попросил помощи, и вот кидаю частное решение (хотя расширить никто не мешает). 
			
			
			Цель - периодическая инициализация действий со сдвигом по времени (например, 2 сообщения в чат, разнесенных по времени на полчаса, то есть, общий период - 1 час) Код local iTime = 1 -- в данном случае - это 1 час function OnStartup() tmr1 = TmrMan.AddTimer(iTime*3600000) end function OnTimer(tmr) if tmr == tmr1 then Core.SendToAll("Бла-бла-бла!") tmr2 = TmrMan.AddTimer(iTime*30000) elseif tmr == tmr2 then Core.SendToAll("Шурум-бурум-тяп-ляп!") TmrMan.RemoveTimer(tmr2) end end Возможно, решение уже где-то есть, а возможно, ещё кому-то пригодится.  | 
	
| 
			
			 | 
	|
			
			  8.11.2011, 16:33
			
				 Сообщение
					#2
					
				
			 
		 | 
	|
        	
				
					![]() Постоялец ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 403 Регистрация: 4.11.2008 Из: Город Уфа Пользователь №: 994 Спасибо сказали: 115 раз  | 
       
			
			 
				ага спасибо
				
				
				
			 
			
			
			
					
		 | 
	
| 
			
			 | 
	|
			
			  8.11.2011, 21:30
			
				 Сообщение
					#3
					
				
			 
		 | 
	|
        	
				
					![]() 7 квадратиков ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз  | 
       
			
			 
				Этот вариант проще и лучше масштабируется. 
			
			
			
					
		Раскрывающийся текст Код local sBot    = "Информер"    -- Имя бота-спамера local nTimer = 30 -- Минут между сообщениями local nPos = 1 -- Порядковый номер следующего сообщения local tMsgs = { [[Сообщение1]], [[Сообщение2]], } function OnStartup() for i, v in ipairs(tMsgs) do tMsgs[i] = "<"..sBot.."> "..v end TmrMan.AddTimer(nTimer * 60 * 1000) end function OnTimer() Core.SendToAll(tMsgs[nPos]) if #tMsgs > nPos then nPos = nPos + 1 else nPos = 1 end end  | 
	
| 
			
			 | 
	|
			
			  9.11.2011, 11:37
			
				 Сообщение
					#4
					
				
			 
		 | 
	|
        	
				
					![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз  | 
       
			
			 
				Так я же писал для частного случая.  
			
			
			
					
		Если бы я сам спонтанно захотел написать, я бы написал скрипт для общего случая. Но не стал, пусть люди сами думают. База есть (скриптик из первого сообщения).  | 
	
| 
			
			 | 
	|
![]() ![]()  | 
	
 Похожие темы
| Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
|---|---|---|---|---|---|
![]()  | 
	 От: Сдвиг таймеров для частного случая От темы с ID: 5037  | 
	2 | Davrik | 6 049 | 14.11.2011, 14:35 Посл. сообщение: Ksan | 
![]()  | 
	Реализация Таймеров | 1 | Berkut | 5 978 | 26.1.2009, 22:59 Посл. сообщение: Setuper | 
 
 | 
Сейчас: 4.11.2025, 9:02 |