Главная     Введение в IRC     Про IRC    Помощь    Программы    Русскоязычные сети   Галерея Уродов     IRC Форумы 

 

TCL-скрипт для бота


Автор: Forb

Дата: 23-10-2001 17:17:12©


Дарова, перец, содержащий целую ораву ботов... Ботов-ламеров :), которые ничего не умеют, кроме как кричать "Op me cos, i'm lame" :)) А куча возможностей для твоего бота могут дать tcl-скрипты, написанные не каким-то Alian`ом из Франции, а лично тобой... Тогда ты будешь уверен на 100%, что ты научил своего бота чему-либо хорошему ;)

Мутим первый скрипт... Например такой: бот через некоторый промежуток времени говорит какой-нибудь прикол... Приколы берутся из файла. Все, что тебе желательно знать, дык это основы TCL и эггдроп-команды, которые можно использовать в скриптах... За этим обращайся в директорию "help" в главной дире твоего бота...
Итак, пишем сам скрипт..

# Talker script by Forbik: <root@k-ur.net> # Трэйдмарк ;) Вставить свое :)

# 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!" # Отчет о загрузке

Вот и весь незаменимый скрипт! Согласитесь, удобно, когда оповещается, кто заходит и уходит с канала...

Во второй части моей статьи я расскажу о Botnet скрипте и многих других возможностей TCL&&Eggdrop...

 

http://www.xakep.ru/


 

Написать вашу историю  на форуме

Послать историю по почте

Внести урода в Международный Черный список"Антипартнер"

Читать форум IRC                   

Читать "Черный список уродов IRC"

Читать "Международный черный список"Антипартнер"

 

 

Использованы материалы с первого российского рессурса ,посвященного IRC    www.irc.ru

Используются технологии uCoz