|

Скрипт для IRC своими руками. Пишем скрипты на отдельно взятой машине
Хакер, номер #026, стр. 026-020-3
} - выводит все три строки в приват одной командой
Кроме того, можно использовать логические переходы или переходы на метки. Логический переход осуществляется комбинацией If-then-else, а метка обозначается как :metka, переход на нее - goto metka. При этом можно использовать следующие логические операторы:
== - равенство
!= - неравенство
< - меньше
> - больше
>= - больше или равно
<= - меньше или равно
|| - логический оператор OR
&& - логический оператор AND
// - является кратным
\\ - не является кратным
isin - переменная входит в переменную
iswm - переменная входит в переменную по маске
isnum - число из указанного диапазона
isletter - символ есть в перечисленной последовательности символов
ison - nickname находится на канале
isop - nickname оп на канале
isvo - nickname войс на канале
ischan - имя канала, на котором сидишь ты
isauto - юзер есть в твоем автооп листе
isignore - юзер в твоем игнор листе
isprotect - юзер в твоем протект листе
isnotify - юзер в твоем нотифай листе
!любой оператор - отрицание данного оператора, то есть обратное условие
Примеры:
а) /number {
if ($1 == 1) goto one
elseif ($1 == 2) goto two
else goto unknown
:one
echo The number ONE
halt
:two
echo The number TWO
halt
:unknown
echo Unknown number!
halt
} - пример логического ветвления, halt означает прекращение дальнейшего выполнения
б) /opslist { echo 4 * Listing Ops on #
set %i 1
:next
set %nick $nick(%i,#)
if %nick == $null goto done
if %nick isop # echo 3 %nick is an Op!
inc %i
goto next
:done
echo 4 * End of Ops list
} - выводит опов на канале
Кстати, забить выполнение сценариев можно не только на команды, но и на определенные комбинации функциональных клавиш F1-F12, Alt, Ctrl и Shift.
Примеры:
а) /F1 /say Всем привет! - забить на F1 вывод текста
б) /saF2 /query $1 - забить на Shift+Alt+F2 приват
в) /cF3 /ctcp $1 version - забить на Ctrl+F3 запрос версии клиента
Ну и в конце несколько нюансов относительно Aliases. При использовании переменных в сценарии они прекрасно работают, но стоит набрать ручками /echo мой ник, как ни странно, $me и вместо $me не будет ника, а будет именно $me. Как же обойти? Используй //echo ... - тогда вместо $me уже будет твой ник. Некоторые команды после выполнения выдают результат действия. Если ты хочешь заблокировать вывод результата действия, используй /.command, например, /.ignore nickname. Ну и, конечно же, комментарии при написании кода, куда без них :). В сценарии они начинаются с знака (;).
Дубль четвертый
Events (Remote) означает события, а более доступно - реакцию на события. Без этого элемента не сделать скрипт, который мог бы что-либо отслеживать в реальном времени. Для редактирования Events топай в Tools -> Remote.
Под событием понимается любое событие, которое генерируется клиентом. Вот основные события MIRC:
on text - реакция на текст в привате или канале
on ban - реакция на бан
on unban - реакция на снятие бана
on chat - реакция на dcc чат
on chatopen - реакция на открытие dcc чата
on chatclose - реакция на закрытие dcc чата
on connect - реакция на конект к серверу (когда выводится motd)
Назад на стр. 026-020-2 Содержание Вперед на стр. 026-020-4
|