В KVirc'е очень удобно реализовано написание скриптов. За него
отвечает Script Center, который подразделяется на: Aliases, Events, Raw,
Popups, Toolbar, Variables, Objects, Tester, Help Browser; наибольший
интерес, безусловно, вызывает Events.
Events состоит из всевозможных явлений, при которых должно происходить
какое-либо действие (например, при заходе на канал определенного человека,
будет написано приветствие ему)
Чтобы понять систему написания здесь скриптов, я буду приводить свои примеры
(прошу обратить внимание, что это статья рассчитана на написание скриптов в
сервисных irc-сетях, таких как WOMnet и DALnet.RU). Начнем с защиты:
OnMeBan ('если меня забанили'):
msg chanserv deop $1 $2
msg chanserv unban $1
notice $1 don't ban me, please
Теперь при событии OnMeBan (когда тебя забанят) будет выполняться /msg
chanserv deop $chan $nick (деоп через chanserv того, кто тебя забанил на
канале, где тебя забанили), /msg chanserv unban $chan (снятие бана на канале
через chanserv), /notice $nick don't ban me please (нотис тому, кто тебя
забанил). (здесь и во всех примерах $nick - тот, кто совершил действие против
тебя, $chan - канал, на котором это произошло).
OnMeDeop ('если меня деопнули'):
if ("$2" != "ChanServ") {
msg chanserv op $1 $me
notice $2 don't deop me, please
msg chanserv deop $1 $2
}
Теперь при событии OnMeDeop, если $nick не будет ChanServ, произойдет
оп через chanserv, нотис $nick и деоп через chanserv провинившегося.
OnMeKick ('если меня кикнули')
if ("$1" != "FriendNICK") {
msg chanserv deop $1 $2
msg chanserv unban $1
join $1
notice $2 don't kick me, please
mode $1 +b *\!*@$4
kick $1 $2 protect kick
}
При событии OnMeKick, если $nick не твой друг (FriendNICK), то deop
$nick, unban (многие любят использовать kick+ban, поэтому лучше
перестраховаться), приход на $chan, нотис $nick, ban *!*@host_of_$nick, kick
$nick.
Теперь, защитившись, можно и просто приукрасить различные происшествия:
OnChannelMessage ('при появлении определенного текста на
канале')
if ("$3" == "http://nixp.ru") {
msg $1 yes, i have been there. it's cool site about *nix-systems
}
Если на канале появляется текст http://nixp.ru, пишется приватное
сообщение $nick об этом сайте.
OnJoin ('когда кто-то заходит') if ("$2" ==
"FriendNICK") {
msg $1 hi, my friend!
}
Когда заходит
твой друг (FriendNICK), на $chan пишется приветствие.
OnMeOp ('когда меня опают')
if ("$2" == "FriendNICK") {
msg $1 $2, thanks
}
Если $nick является твоим другом (FriendNICK), то в канал пишется
сообщение ему.
OnTopic ('когда изменеятся топик канала')
if ("$2" != "ChanServ") {
msg $1 $4 - rulez new topic *<:)
}
Если топик изменит не chanserv,то в канал будет написано, что новый
топик клевый :).
Рассмотрим Aliases:
Здесь все просто: New -> имя алиаса, а потом его значение. Например алиас
выхода:
alias - bye
значение - ame прощается со всеми!
значение - quit
Теперь при вызове команды "/bye", на всех каналах будет
написано, что ты со всеми прощаешься, а потом произойдет выход из irc.
Raw - преобразователь raw-комманд.
Popups - создание различных менюшек для более удобной работы.
Toolbar - создание кнопочек на statusbar'е, которые выполняют
какие-либо команды.
Variables - придавать каким-либо переменным значения для их
дальнейшего использования в своих скриптах.
Objects - изменение значений встроенных алиасов и команд.
Tester - тестирование алиасов и переменных.
Help Browser - помощь.
|
|