myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> Перезагрузка Скрипта По Таймеру, собственно сабж

Теги
Нет тегов для показа
Jackson
сообщение 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
Go to the top of the page
+Quote Post
Setuper
сообщение 28.3.2009, 1:21
Сообщение #2


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Во-первых, не в тот раздел пишешь. Перемещаю в нужный радел.
Во-вторых, команды можно вызвать только клиентом. Скрипт не вызывает команд, а только обрабатывает их.
В-третьих, для перезагрузки скриптов в API2 существует функция
Код
ScriptMan.RestartScript(sScriptName)

В-четвёртых, не надо ломать голову, она ещё пригодится, надо просто почитать какие функции бывают в файле scripting-interface.txt
Go to the top of the page
+Quote Post
Jackson
сообщение 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

всё легко и просто.
извиняюсь что создал тему не в том разделе... еще не совсем разобрался у вас на форуме big_smile.gif
Go to the top of the page
+Quote Post
Wariner
сообщение 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
Go to the top of the page
+Quote Post
Jackson
сообщение 28.3.2009, 16:41
Сообщение #5


Абсолютный новичок


Группа: Пользователи
Сообщений: 8
Регистрация: 8.8.2008
Пользователь №: 345
Спасибо сказали: 1 раз




Warnier,
спасибо big_smile.gif мне нужно было для перезапуска одного скрипта, того в котором это написано...
Go to the top of the page
+Quote Post
Wariner
сообщение 28.3.2009, 16:53
Сообщение #6


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




просто вот этот код
Код
ScriptMan.RestartScript(ScriptMan.GetScript().sName)

не должен работать!
Go to the top of the page
+Quote Post
Jackson
сообщение 28.3.2009, 17:26
Сообщение #7


Абсолютный новичок


Группа: Пользователи
Сообщений: 8
Регистрация: 8.8.2008
Пользователь №: 345
Спасибо сказали: 1 раз




Цитата(Wariner @ 28.3.2009, 17:53) *
просто вот этот код
Код
ScriptMan.RestartScript(ScriptMan.GetScript().sName)

не должен работать!

хмм... но ведь у меня работает! никаких ошибок, как часы big_smile.gif

в любом случае всем спасибо, помогли!
Go to the top of the page
+Quote Post
Wariner
сообщение 28.3.2009, 18:04
Сообщение #8


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




а как ты это определяешь?
напиши в функции OnStarup следующий код
Код
Core.SendToAll(tostring(ScriptMan.GetScript().sName))

и он ничего не вернёт!
а вот тут должно быть имя скрипта
Код
ScriptMan.RestartScript("скрипт.lua")
Go to the top of the page
+Quote Post
Setuper
сообщение 28.3.2009, 19:10
Сообщение #9


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Wariner, ты не прав.

Функция ScriptMan.GetScript() работает только после запуска скрипта, поэтому если скрипт уже запущен, то она будет работать, а если скрипт только запускается, то во время запуска она не работает.

В случае работы по таймеру всё будет работать.
Go to the top of the page
+Quote Post
Wariner
сообщение 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)
Go to the top of the page
+Quote Post
Setuper
сообщение 28.3.2009, 19:33
Сообщение #11


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




хм... значит плохо проверял.
У меня всё работает
Go to the top of the page
+Quote Post
Wariner
сообщение 28.3.2009, 20:00
Сообщение #12


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




тогда объясни почему это должно работать?
ведь ScriptMan.GetScript() вернёт таблицу типа:
Код
t = {
    [1] = {
          [sName] = "Скрипт"
          ....
     },
    [2] = {
          [sName] = "Скрипт2"
          ....
     },
}

куда мы деваем промежуточный индекс и как скрипт определит что это нужный скрипт для рестарта?
Go to the top of the page
+Quote Post
Setuper
сообщение 28.3.2009, 20:09
Сообщение #13


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




ты путаешь функции
ScriptMan.GetScript()
и
ScriptMan.GetScripts()
Go to the top of the page
+Quote Post
Wariner
сообщение 28.3.2009, 20:13
Сообщение #14


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




ухахахаха оно и правильно))) я по привычке лазею в скрипт интерфейс 0400 птоки и тестил на ней......................
Go to the top of the page
+Quote Post
Setuper
сообщение 28.3.2009, 20:17
Сообщение #15


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Это уже тонкости API2 big_smile.gif

Хотя если используешь 0.4.0.0, почему бы не перейти на 0.4.1.1 ? Учитывая то, что 0.4.1.1 более стабильная версия, в которой множество фиксов и добавлений.
Go to the top of the page
+Quote Post
Wariner
сообщение 28.3.2009, 20:21
Сообщение #16


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




продолжаем оффтоп))) я уже перешёл а на рабочем столе остались старые тестовые хабы....
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Запрос скрипта: От подвисания пользователей
0 Sezam 4 457 22.1.2018, 7:10 Посл. сообщение: Sezam
No New Posts Topic has attachmentsНужна помощь в доработке скрипта greylink
Отложить запуск скрипта на определенное время
0 kirill_td 5 038 17.10.2014, 20:13 Посл. сообщение: kirill_td
No new Topic has attachmentsTriviaMods - мод скрипта для командной игры
API2
16 снег 22 378 10.9.2014, 19:23 Посл. сообщение: alphex3xx
No New Posts Метод взятия имени/пути скрипта
Метод взятия имени/пути этого скрипта в самом скрипте и других
2 Karumo 7 065 6.4.2014, 22:24 Посл. сообщение: Alexey
No New Posts Конвертирование скрипта до AP2
Скрипт афоризмы
4 GULAM33 8 706 21.1.2013, 16:30 Посл. сообщение: Артём
No new Topic has attachmentsПомощь по настройке скрипта
скрипт скидывания тестовых файлов
17 dag-m 17 987 16.10.2012, 15:41 Посл. сообщение: Alex Dancer
No New Posts От: помогите с разработкой скрипта
От темы с ID: 4717
0 barbaris 4 983 19.5.2012, 19:54 Посл. сообщение: barbaris
No New Posts Перезапуск по таймеру
3 ShadoWx 6 963 23.2.2012, 14:57 Посл. сообщение: SKIFI
No New Posts Нужна помощь по конвертированию скрипта из api1 в api2
7 po fenshyj' 12 090 23.2.2012, 2:04 Посл. сообщение: dimajak
Moved Нужна помощь по конвертированию скрипта из api1 в api2
0 po fenshyj' 0 13.2.2012, 0:37 Посл. сообщение: Marc
No New Posts Topic has attachmentsНужна помощь в переделке скрипта(VerliHub)
Глушит юзеру приват по диапозону
2 FreeNas 7 131 11.4.2011, 17:21 Посл. сообщение: FreeNas
No New Posts помогите с разработкой скрипта
нужен скрипт скачивания между 2 разными пользователями
2 балбес 7 251 3.3.2011, 10:22 Посл. сообщение: HackFresse
No New Posts Перезапуск скрипта раз в минуту
7 lankmv 11 045 13.11.2010, 3:11 Посл. сообщение: DEN 007
No New Posts Скрипт для отключения скрипта
Нужен скрипт для отключения скрипта по времени
7 Dan Claimant 12 932 23.6.2010, 20:06 Посл. сообщение: Dan Claimant
No New Posts Topic has attachmentsПроблемы скрипта действий! Исправьте
Проблемы скрипта действий! Исправьте
9 sania 13 450 19.5.2010, 23:13 Посл. сообщение: sania

 



RSS Сейчас: 23.12.2024, 12:46