Регистрация | Вход
[ Главная · Новые сообщения ]
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Вопросы по скриптам
Vladislav 26.08.12 16:42 #256
Почитай уже файл, у тебя есть в боте tcl-commands.html

Куда вставишь там и будет выполнена перезагрузка

Code
restart
Jake 28.08.12 08:31 #257
Владислав, как называется скрипт, который у тебя недавно на боте стоял, при входе на канал бот писал нотисом пользователю, там ссылка на какую-то тему на форуме была, можешь его прикрепить тут ?
Vladislav 28.08.12 09:11 #258
Это скрипт канальных новостей - !кнхелп
con 28.08.12 15:11 #259
Как мне отключить бан за урл при выходе в allprotection.tcl?
Vladislav 29.08.12 00:54 #260
Не за урл наверно, а за длинное сообщение, попробуй:
!set ap:partmsgs "200 300 v 2"

А лучше поставь на канале флаг P чтоб сервер вырезал весь этот мусор.
con 29.08.12 07:56 #261
получилось, огромное спасибо ^_^
zxcv 05.09.12 14:42 #262
Итак. На сегодняшний день я знаю в тикле несколько вариантов зациклить процедуру. Процедура делает 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
как называются скрипты от команд?:

Quote
"!бан"
"!mode"


в команде !бан восстанавливается таймер, если бота перезапускаешь, то таймер продолжает работать;
в моем скрипте в антифлуде:

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
можно какой-нибудь пример? - не пойму, как это работает...
Форум » Основной раздел » Мастерская » Вопросы по скриптам
Поиск: