| 
 | 
Здравствуйте, гость ( Вход | Регистрация )
|   | 
| 
 | 
|    28.3.2009, 1:07 
				 Сообщение
					#1
					
				
			 | |
|  Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 8.8.2008 Пользователь №: 345 Спасибо сказали: 1 раз  | 
				В общем есть код, который выводит сообщение в общий чат по установленному таймеру. Код sTime = 5         -- Время в минутах sBot = SetMan.GetString(21) function OnStartup() TmrMan.AddTimer(sTime*60000) end function OnTimer() Core.SendToAll("<"..sBot.."> сообщение") end нужно что-бы вместо вывода сообщения запускалась команда, а точнее !restartscript scriptname.lua или-же другим способом добиться перезапуска скрипта по таймеру! уже всю голову изломал... помогите пожалуйста API2 | 
|  | |
|  28.3.2009, 1:21 
				 Сообщение
					#2
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Во-первых, не в тот раздел пишешь. Перемещаю в нужный радел. Во-вторых, команды можно вызвать только клиентом. Скрипт не вызывает команд, а только обрабатывает их. В-третьих, для перезагрузки скриптов в API2 существует функция Код ScriptMan.RestartScript(sScriptName) В-четвёртых, не надо ломать голову, она ещё пригодится, надо просто почитать какие функции бывают в файле scripting-interface.txt | 
|  | |
|    28.3.2009, 12:08 
				 Сообщение
					#3
					
				
			 | |
|  Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 8.8.2008 Пользователь №: 345 Спасибо сказали: 1 раз  | 
				большое спасибо за помощь! вот что у меня вышло: Код sTime = 2         -- Время в минутах sBot = SetMan.GetString(21) function OnStartup() TmrMan.AddTimer(sTime*60000) end function OnTimer() ScriptMan.RestartScript(ScriptMan.GetScript().sName) end всё легко и просто. извиняюсь что создал тему не в том разделе... еще не совсем разобрался у вас на форуме   | 
|  | |
|  28.3.2009, 15:42 
				 Сообщение
					#4
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				вообще то поидеи если надо перезапустить все скрипты, то Код sTime = 2         -- Время в минутах sBot = SetMan.GetString(21) function OnStartup() TmrMan.AddTimer(sTime*60000) end function OnTimer() tScripts = ScriptMan.GetScript() for i,v in pairs(tScripts) do ScriptMan.RestartScript(v.sName) end end | 
|  | |
|  28.3.2009, 16:41 
				 Сообщение
					#5
					
				
			 | |
|  Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 8.8.2008 Пользователь №: 345 Спасибо сказали: 1 раз  | 
				Warnier, спасибо  мне нужно было для перезапуска одного скрипта, того в котором это написано... | 
|  | |
|  28.3.2009, 16:53 
				 Сообщение
					#6
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				просто вот этот код Код ScriptMan.RestartScript(ScriptMan.GetScript().sName) не должен работать! | 
|  | |
|  28.3.2009, 17:26 
				 Сообщение
					#7
					
				
			 | |
|  Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 8.8.2008 Пользователь №: 345 Спасибо сказали: 1 раз  | |
|  | |
|  28.3.2009, 18:04 
				 Сообщение
					#8
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				а как ты это определяешь? напиши в функции OnStarup следующий код Код Core.SendToAll(tostring(ScriptMan.GetScript().sName)) и он ничего не вернёт! а вот тут должно быть имя скрипта Код ScriptMan.RestartScript("скрипт.lua") | 
|  | |
|  28.3.2009, 19:10 
				 Сообщение
					#9
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Wariner, ты не прав. Функция ScriptMan.GetScript() работает только после запуска скрипта, поэтому если скрипт уже запущен, то она будет работать, а если скрипт только запускается, то во время запуска она не работает. В случае работы по таймеру всё будет работать. | 
|  | |
|  28.3.2009, 19:26 
				 Сообщение
					#10
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				ну блин я проверил этот код http://mydc.ru/ipb.html?s=&showtopic=1...ost&p=12935 Цитата [19:25] Синтаксис test.lua:10: attempt to call field 'GetScript' (a nil value) | 
|  | |
|  28.3.2009, 19:33 
				 Сообщение
					#11
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				хм... значит плохо проверял. У меня всё работает | 
|  | |
|  28.3.2009, 20:00 
				 Сообщение
					#12
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				тогда объясни почему это должно работать? ведь ScriptMan.GetScript() вернёт таблицу типа: Код t = { [1] = { [sName] = "Скрипт" .... }, [2] = { [sName] = "Скрипт2" .... }, } куда мы деваем промежуточный индекс и как скрипт определит что это нужный скрипт для рестарта? | 
|  | |
|  28.3.2009, 20:09 
				 Сообщение
					#13
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				ты путаешь функции  ScriptMan.GetScript() и ScriptMan.GetScripts() | 
|  | |
|  28.3.2009, 20:13 
				 Сообщение
					#14
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				ухахахаха оно и правильно))) я по привычке лазею в скрипт интерфейс 0400 птоки и тестил на ней......................
				
				
				
			 | 
|  | |
|  28.3.2009, 20:17 
				 Сообщение
					#15
					
				
			 | |
|  RusHub team lead               Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз  | 
				Это уже тонкости API2   Хотя если используешь 0.4.0.0, почему бы не перейти на 0.4.1.1 ? Учитывая то, что 0.4.1.1 более стабильная версия, в которой множество фиксов и добавлений. | 
|  | |
|  28.3.2009, 20:21 
				 Сообщение
					#16
					
				
			 | |
|  Самый главный активист :-D            Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз  | 
				продолжаем оффтоп))) я уже перешёл а на рабочем столе остались старые тестовые хабы....
				
				
				
			 | 
|  | |
|   | 
 Похожие темы
 Похожие темы
|   | Сейчас: 31.10.2025, 21:53 |