Об IRC. Доступно и со вкусом.

Счетчик киков и скрипт автоприветствие

В данной статье мы рассмотрим как считать количество киков и банов, а также научимся писать простейшее, но \"разумное\" автоприветствие.
Часто в irc, при киках, можно наблюдать следущую картину:
** Pupkin kick vasya from #help [Kick: 150 Ban: 50]
Тоже хотите такое, да запросто, сейчас сделаем. Итак открываем Скрипты(Remote), нажатием alt+r или соответствующей кнопки на тулбаре и пишем туда следущее:

on *:kick:#: {
; если вы кикаете
if ($nick == $me) {
; если переменная существует увеличиваем ее на 1
if (%kickun) { inc %kickun }
; если не существует, создаем и приравниваем единице
else { %kickun = 1 }
}
}

; тут все аналогично
on *:ban:#: {
if ($nick == $me) {
if (%banick) { inc %banick }
else { %banick = 1 }
}
}

Далее ползем в закладку Попапы(Popups), сверху нажимаем Вид(View) и выбираем Никлист(Nicklist). И вставляем туда следущее:

Кик/Бан: mode # +b $address($$1,2) | kick # $$1 [Kick: %kickun Ban: %banick $+ ]

Ну вот и все, теперь воспользовавшись только что созданной меню мы увидим:

* ghjks sets mode: +b *!*@127.0.0.1
* Pupkin was kicked by ghjks ([Kick: 1 Ban: 1])


А теперь напишем скрипт автоприветствия, да не простой, а заумный, мы ведь все-таки необычные скриптописатели.
Ну-с самый простой скрипт приветствия будет выглядеть так:

on !*:join:#: Привет $nick!

Но, согласитесь глупо будет выглядеть, когда зайдут сразу 3-5 юзеров или кто-нибудь из них еще и перезайдет. Поэтому мы будем писать \"умный\" скрипт. Для начала создадим переменную с приветствиями, делаем это так /set %privet привет ку хай hi re превед hello прет ре (пишется это в едитбоксе, строчке где вы пишете весь текст, для тех кто в танке ;). Делаем мы это, чтобы не повторять какждый раз одно и тоже однообразное \"привет\". Можно также, по желанию, занести эти слова в txt файлик и обрабатывать $read, можете прочитать одну из моих предыдущих статей и сделать самим.
Итак, открываем наши любимые скрипты(remote) и пишем туда следущий код:

on *:join:#: {
; если переменной нету
if ($eval(% $+ $network $+ . $+ $chan $+ . $+ $nick,2) == $null) {
; создаем ее на 60 сек
set -u60 $eval(% $+ $network $+ . $+ $chan $+ . $+ $nick,1) 1
; здороваемся, выбирая приветствие рандомайзом
msg # $gettok(%privet,$rand(1,$numtok(%privet,32)),32) $nick
}
}

Работает это чудо так: заходит ник на канал, мы здороваемся рандомным приветствием и заносим ник в переменную на 60 сек, т.е. если он в течение этого времени перезайдет то мы больше не поздороваемся. Простенько и со вкусом ;)

На этом пока все, удачи.