# Talker script by Forbik: # Трэйдмарк ;) Вставить свое :)
# Variables: # Переменные для работы скрипта
set tcolor 10 # Цвет сообщения бота
set tint 1 # Интервал (в минутах)
set tfile "talker.txt" # Файл с приколами
set counts 0 # Подсчет фраз
proc ptalk {} {
global tint tcolor counts talks
putserv "privmsg #sonet :$tcolor$talks([rand $counts])"
timer $tint { ptalk }
}
# Берем переменные для подпрограммы и пишем рандомную фразу из массива $talks... putserv - передача данных на IRC-сервер. rand - вычисляет случайное число, и повторный запуск таймера
proc loadtalks {} {
global tfile counts talks
set talkfile [open $tfile r]
while { [gets $talkfile line ] >=0 } {
set talks($counts) $line;
incr counts;
}
close $talkfile
}
# Процедура открывает файл с приколами и создает массив всех фраз..
loadtalks
ptalk;
# Выполнение 2х процедур
bind dcc +n talk stat_dcc
proc stat_dcc {handle idx args} {
global tcolor tint tfile counts
putlog "Talk script by Forbiki:\r"
putlog "Talk color is: $tcolor\r"
putlog "Talk interval is: $tint minute(s)\r"
putlog "Talk file is: $tfile\r"
putlog "Talks: $counts\n\r"
}
# Если какой-либо оунер бота на PartyLine наберет "talk", то получит текущие значения переменных... Их также можно изменить с помощью "set".
timer $tint { ptalk }
# Ну и конечно... Запуск таймера: через время tint, выполняется процедура ptalk...
putlog "All: $counts talks loaded" # Отчет о при загрузке скрипта
Вот и все... все очень просто... Главное НЕМНОГО знать Tcl..
Еще 1 необходимый скрипт... Я всегда пользую его, и он мне очень помогает следить за происходящим в PartyLine... Походу дела, станет понятно его предназначение:
###### BINDS
bind join - *!*@* do_join_user
bind part - *!*@* do_part_user
###### END BINDS
# Слежение за вход на канал и выход с канала.. И привязка этим событиям соответствующих подпрограмм
###### START PROCEDURE
proc do_join_user {nick uhost handle chan args} {
## Процедура захода на канал...
global botnick
if {($nick == $botnick)} {
putlog "I'm joined on $chan"
# Если ник совпадает с ником бота - сообщить в партилайн, что бот зашел на канал..
} else {
if {!($handle=="*")} {
putlog "$nick ($uhost) joined $chan as "$handle""
} else {
putlog "$nick ($uhost) joined $chan as "more mortal""
}
# Иначе сообщить ник юзера и его прописанный ник на боте (либо - "простой смертный").
}}
proc do_part_user {nick uhost handle chan args} {
global botnick
if {($nick == $botnick)} {
putlog "I'm parted from $chan"
} else {
putlog "$nick parted from $chan"
}}
# Почти тоже самое с Part
putlog "Join script loaded!" # Отчет о загрузке
Вот и весь незаменимый скрипт! Согласитесь, удобно, когда оповещается, кто заходит и уходит с канала...