Вопросы по скриптам
|
|
|
Vladislav 26.08.12 16:42 #256
|
Почитай уже файл, у тебя есть в боте tcl-commands.html
Куда вставишь там и будет выполнена перезагрузка
|
|
|
Владислав, как называется скрипт, который у тебя недавно на боте стоял, при входе на канал бот писал нотисом пользователю, там ссылка на какую-то тему на форуме была, можешь его прикрепить тут ?
|
|
|
|
Vladislav 28.08.12 09:11 #258
|
Это скрипт канальных новостей - !кнхелп
|
|
|
Как мне отключить бан за урл при выходе в allprotection.tcl?
|
|
|
|
Vladislav 29.08.12 00:54 #260
|
Не за урл наверно, а за длинное сообщение, попробуй: !set ap:partmsgs "200 300 v 2"
А лучше поставь на канале флаг P чтоб сервер вырезал весь этот мусор.
|
|
|
получилось, огромное спасибо
|
|
|
Итак. На сегодняшний день я знаю в тикле несколько вариантов зациклить процедуру. Процедура делает get запрос на сайт. через bind cron bind time использую utimer и while 1 {... after <интервал> ...} Какой вариант более правильно использовать? И какие еще есть варианты?
|
|
|
|
Vladislav 05.09.12 15:14 #263
|
Да всё правильно, юзай то что удобно, я бы заюзал after так как можно выставить очень маленький промежуток в отличие от bind, а utimer это процедура в боте которая юзает after.
Если загрузить эту процедуру в бота и написать !tcl cycle 1 будет каждые 20 секунд прибавлять единичку к числу которое укажешь)
Code proc cycle {id} { putlog $id after 20000 [list cycle [expr $id+1]] }
|
|
|
|
pLanu2 06.09.12 09:51 #264
|
"utimer" зацикливает процесс или это разовое действие, только выполняющееся не сразу, а через указанное время?
|
|
|
|
Vladislav 06.09.12 18:05 #265
|
Выполняет заданную команду TCL через определенное количество секунд. Если ты в ней обращаешься к процедуре в которой этот таймер то получается как бы цикл, как в примере выше. Цикл это команда while.
|
|
|
|
pLanu2 09.09.12 11:58 #266
|
когда в процедуре ставишь таймер:
Code set up 60 utimer $up [list $nick $uhost $hand $chan ""] как записать id-таймера в переменную $id (т.к. я заметил, что "id" постоянно меняется)
|
|
|
|
Vladislav 09.09.12 13:02 #267
|
Code set id [utimer 60 ""]
Или найти нужный таймер в списке таймеров
Code proc idutimer {text} { foreach _ [utimers] { if {[llength $_] != 0} { if {[string match -nocase "*$text*" $_]} {return [lindex $_ 2]} } } }
Пример:
Quote !tcl utimer 60 текст !tcl idutimer текст
|
|
|
|
pLanu2 11.09.12 09:51 #268
|
как называются скрипты от команд?:
в команде !бан восстанавливается таймер, если бота перезапускаешь, то таймер продолжает работать; в моем скрипте в антифлуде:
Code proc faqantiflood {id time} { global faqantiflood if {[info exists faqantiflood($id)]} { return 1 } { set faqantiflood($id) [clock sec]; utimer $time [list unset faqantiflood($id)]; return 0 } }
Code if {[faqantiflood $uhost,1 79200]} {return}
при запуске этого таймера, если бот перезагрузился, то он исчезает. как сделать, чтобы таймер при перезагрузке и выключении бота не падал и при запуске продолжал отсчет времени?
|
|
|
|
Vladislav 11.09.12 19:14 #269
|
эти команды входят в ccs.tcl
Не сбрасываются значения потому что они заносятся в текстовые файлы, перезагрузка бота естественно всё обнуляет, поэтому данные надо заносить в файлик, как например очки юзеров в играх и тд.
|
|
|
|
pLanu2 12.09.12 17:26 #270
|
можно какой-нибудь пример? - не пойму, как это работает...
|
|
|