Конструкция If-then-else позволяет сравнивать значения переменных или выражений и выполнять различные части программы-скрипта в зависимости от полученного результата. Основной формат:
if (v1 operator v2) { commands }
elseif (v1 operator v2) { commands }
else { commands }
В круглых скобках ( ) находятся сравниваемые значения, в фигурных скобках { } находятся команды, которые будут выполнены, если значение в круглых скобках - true. Использование большого количества скобок в алиасе может служить причиной ошибок выполнения и замедления работы скрипта. Глубина вложения конструкций if-then-else неограниченна.
Операторы сравнения:
== - равно
=== - равно (чувствительно к регистру)
!= - не равно
< - меньше чем
> - больше чем
>= - больше или равно
<= - меньше или равно
// - если целочисленное деление
\\ - если не целочисленное деление
& - поразрядное сравнение
isin - строка v1 есть в строке v2
isincs - подстрока v1 есть в строке v2 (чувствительно к регистру)
iswm - строка-маска v1 соответствует строке v2
isnum - число v1 - число в диапазоне v2 которое представлено в виде n1-n2
(v2 необязательный параметр)
isletter - буква v1 есть в строке v2 (v2 необязательный параметр)
isalnum - текст сождержит только буквы и цифры
isalpha - текст сождержит только буквы
islower - текст сождержит только буквы в нижнем регистре
isupper - текст сождержит только буквы в верхнем регистре
ison - ник v1 на канале v2
isop - ник v1 оператор на канале v2
ishop - ник v1 полуоператор на канале v2
isvoice - ник v1 имеет право голоса на канале v2
isreg - ник v1 – нормальный ник на канале v2
ischan - если v1 канал, где вы находитесь.
Isban - если ник v1 забанен и находится во внутреннем списке банов
isaop - если ник v1 находится в списке автоопа на канале v2 (v2 необязательный параметр)
isavoice - если ник v1 находится в списке автовойса на канале v2 (v2 необязательный параметр)
isignore - если v1 пользователь, включенный в ваш ignore список с ключем v2 (v2 необязательный параметр)
isprotect - если v1 есть в списке protect канала v2 (v2 необязательный параметр)
isnotify - если v1 есть в списке оповещения.
Изменить значение оператора на противоположенное можно с помощью символа "!"
Операторы сравнения можно комбинировать, используя символы:
&& - ëîãè÷åñêîå è
|| - логическое или
Например: if ($me == Admin || $me == Peterpan) { msg $chan Я админ или питерпэн %) }
Если ваш ник Admin или Piterpan то на канал автоматически пошлется сообщение "Я админ или питерпэн %)"
$ifmatch
Возвращает первый параметр оператора сравнения. Например в случае:
if (text isin sometext) { ... }
$ifmatch вернет "text"
Примеры(скрипты вставлять нажав ALT+R, вкладка Remote):
Code
on *:JOIN:#: {
if ($nick == $me) {
msg $chan Наконец то я к вам пришел:) }
else { msg # Здарова, как ты? } }
если ты зайдеш на какой либо канал то автоматически пошлется сообщение на этот канал "Наконец то я к вам пришел:)", а если же придете не вы а кто нибудь другой то автоматически пошлется сообщение "Здарова, как ты?"
Code
on *:TEXT:!op:#: {
if ($me isop $chan) {
mode $chan +o $nick
msg $chan ДЕРЖИ! } }
если на каком либо канале любой человек напишет на канале !op, то вы, если вы оп на этом канале дадите этому человеку оп! и после этого пишите на канал "ДЕРЖИ!"
Code
on FRIEND:TEXT:!op:#: {
if ($me isop $chan) {
mode $chan +o $nick
msg $chan ДЕРЖИ! } }
если на каком либо канале человек у которого "level" равен "FRIEND"(Задается на ALT+R, вкладка Users (синтаксис: уровень: маска). В качестве уровня может использоваться число, именованный уровень или строка., Например: FRIEND:*!*@213.188.94.12) напишет на канале !op, то вы, если вы оп на этом канале дадите этому человеку оп! и после этого пишите на канал "ДЕРЖИ!"