Скрипт для 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