div.main {margin-left: 20pt; margin-right: 20pt}KVirc scripting - IRCop mode Источник: http://nix.h1.ru
Автор: SHuRuP email: mailto:shurup@xakep.ru?subject=nix www:
http://nix.h1.ru/ icq:
76011665
Продолжая тему написания скриптов в KVirc'е, я
решил привести пример скрипта для IRCop'ов, названный [IRCop
mode]. IRCop mode - простой скрипт, предназначенный для того, чтобы
становится IRCop'ом, используя /oper. Он был написан мною чтобы наглядно
показать, как реализовывать диалог (правда достаточно примитивный) с
пользователем в KVirc. Его цель заключается в сборе информации, набранной
пользователем, и последующей передачи ее в команду, посылаемую серверу.
Также в данном скрипте демонстрируются возможности разветвления в случае
различных вариантов ответов. Итак, чтобы использовать этот скрипт надо
создать alias (советую /o или /ircop) и скопировать туда исходный текст
[IRCop mode] (см. далее). Alias создается в Script Center ->
Aliases -> New, затем Change name и там пишется код скрипта. Вот и сам
скрипт (спецаильно пронумерован построчно):
1 #IRCop mode
script written by SHuRuP.rpm 2 #All comments send to
shurup@xakep.ru 3 #Visit http://nix.h1.ru to see the last
version 4 5 #set the ircop status off 6
%ircopmode[status] = 0; 7 8 #set the [IRCop mode]
nick 9 dialog(lineinput,"IRCop mode [nick]","Enter your IRCop
nick:",%ircopmode[nick]){ 10 if ("$dialogresult" ==
""){ 11 echo "[$B IRCop mode $B] Set the true nick,
please." 12 echo "[$B IRCop mode $B] IRCop mode is OFF
now!"; 13 halt; 14 } else { 15
%ircopmode[nick] = $dialogresult; 16 echo "[$B IRCop mode $B]
Your IRCop nick is %ircopmode[nick] now!"; 17 } 18
19 #check the [IRCop mode] nick 21 echo "[$B IRCop
mode $B] Checking your nickname... If it isn't IRCop nick, it will be
changed (IRCop nick is$B %ircopmode[nick]$B)."; 22 nick
%ircopmode[nick]; 23 24 #set the [IRCop mode]
password 25 dialog(lineinput,"IRCop mode [pass]","Enter your
IRCop password:",%ircopmode[pass]){ 26 if ("$dialogresult" ==
""){ 27 echo "[IRCop mode] Set the true password,
please."; 28 echo "[$B IRCop mode $B] IRCop mode is OFF
now!"; 29 halt; 30 } else { 31
%ircopmode[pass] = $dialogresult; 32 echo "[$B IRCop mode $B]
Your IRCop password has been successfully set!"; 33 }
34 #oper 35 oper $me %ircopmode[pass]; 36 echo "[$B
IRCop mode $B] Opering $me now..."; 37 38 #set the
ircop mode status on 39 %ircopmode[status] = 1; 40 echo
"[$B IRCop mode $B] IRCop mode is ON now!"; 41 } 42
}
Строки 1, 2, 3, 5, 8, 19, 24, 34, 38 - краткие комментарии
в скрипте, которые также, как и 4, 7, 18, 23, 37 созданы для удобства при
рассмотрении кода. 6 строка - установка статуса IRCop mode, как
выключенного. 9-17 - создание ника IRCop'а (в этой стадии появляется
окошко, в котором надо ввести nick; в случае введения нажатия отмены или
если поле остается пустым, скрипт прекращает свою работу). 21-22 - поверка
ника: происходит изменение ника на указанный пользователем раннее, если в
данный момент у него другой ник. 24-33 - аналогично, 9-17, только здесь
создается пароль. 34-36 - происходит /oper с введенными пользователем
данными (ник+пароль). 38-42 - включение IRCop mode.
Главным
достоинством этого скрипта является удобство для стандартных
пользователей, например, если существует статус иркопа на одной из
irc-сетей. Очень просто потом настроить все свои скрипты именно для этой
сети с условием, что есть иркоп. Вот пример такого скрипта, событие
OnMeKick:
if ("%ircopmode[status]" == "1") {
notice $2 why did you kick me? don't do this the next time... |SHuRuP
scripting [$B IRCop mode $B]| mode $1 +b *!*@$4
kick $1 $2 |SHuRuP scripting [$B IRCop mode $B]|
join $1 } else { notice $2 why did you kick me?
don't do this the next time... |SHuRuP scripting| join $1
mode $1 +b *!*@$4 kick $1 $2 |SHuRuP
scripting| }
Символы "" используются перед
всеми символами, которые не являются простыми и могут восприняты, как
составные скрипта, а не просто текста. В первом случае бан+кик
используется сразу после кика, даже не перезаходя на канал, что позволяют
IRCop возможности.
Исходные тексты: [IRCop
mode] OnMeKick
(simple+ircop)
|