1255,351 написал(а):I created a script that doesn't work. Please help
Как я понимаю вы хотите сделать скрипт для создания команды "/kb nick", чтобы устанавливать "Кик+Бан" на указанный в команде Ник в качестве параметра.
Ошибка 1: [c] //echo -a if $meop($chan) [/c] - в данном случае вы получите всю строку идущую после команды "/echo -a" в эхо-сообщение и она не будет выполнена в качестве условия.
Ошибка 2: [c] if ($meop($chan)) [/c] - не забывайте при создании условия добавлять внешние круглые скобки "if ( )" во внутрь которых помещаются параметры проверки.
Ошибка 3: [c] if ($me isop $1) || ($me isvoice $1) || ($me isreg $1) [/c] - третье условие противоречит первым двум, т.к. оно проверяет являетесь ли вы обычным пользователем канала.
Ошибка 4: [c] if ($me isop $1) || ($me isvoice $1) { return $true } [/c] - при создании в одной строке сразу нескольких условий, выполняемое действие необходимо заключать в фигурные скобки "{ }".
[indent=0.8,0.5]
📖 Пошаговая инструкция по созданию подобного скрипта.
[indent=0.8,0.5]
1. Для начала создадим скелет конструкции скрипта на основе алиаса:
Эта конструкция уже позволит выполнить команду "/kb", но это пока не приведёт ни к какому результату.
2. Далее можно сразу добавить необходимые команды для выполнения "Кика" и установки "Бана":
[c=blue] mode $chan +b $1 [/c]
[c=blue] kick $chan $1 You were kicked from the channel [/c]
Для последовательности выполнения в начале лучше использовать команду для установки "Бана", чтобы пользователь был сразу забанен и не имел возможности сразу перезайти на канал после "Кика".
Помещаем эти команды во внутрь созданной конструкции, между фигурными скобками "{ }":
Теперь можно указывать в команде "/kb" в качестве первого параметра Ник пользователя "/kb nick", который вы хотите выгнать и забанить на канале.
В коде скрипта этот ник будет обозначаться идентификатором "$1", что является первым параметром, который был указан при вводе команды.
3. Далее необходимо добавить условие, чтобы проверить является ли активное окно каналом, в котором выполняется команда:
[c=blue] if ($active !ischan) { echo -a This is not a channel window. | halt } [/c]
Это условие с оператором "!ischan" проверяет, если активное окно не является каналом, то необходимо сообщить об этом в эхо и остановить скрипт.
Помещаем эту строку во внутрь конструкции скрипта в качестве первого условия, но так, чтобы это условие было выше строк с командами:
Теперь, если вы попробуете выполнить команду в окне, которое не является окном канала, то вы получите эхо-сообщение "This is not a channel window.", после чего скрипт будет остановлен.
4. Далее необходимо добавить условие для проверки являетесь ли вы оператором канала, в котором выполняется команда:
[c=blue] if ($me !isop $chan) { echo -a You are not the channel operator. | halt } [/c]
Это условие с оператором "!isop" проверяет, если вы не являетесь оператором канала, то необходимо сообщить об этом в эхо и остановить скрипт.
Итак, помещаем эту строку во внутрь конструкции скрипта в качестве второго условия, но выше строк с командами:
Теперь, если вы попытаетесь выполнить команду в окне канала, на котором у вас нет прав оператора, то вы получите эхо-сообщение "You are not the channel operator.", после чего скрипт будет остановлен.
5. В качестве дополнения можно добавить условие, чтобы проверять имеет ли Ник пользователя на канале такие префиксы статуса как "!~&@%+":
[c=blue] if ($nick($chan,$1,!~&@%+)) { echo -a This user has one of the (!~&@%+) statuses on the channel. | halt } [/c]
Помещаем эту строку во внутрь конструкции скрипта в качестве третьего условия, но также выше строк с командами:
Теперь, если вы попытаетесь выполнить команду "/kb nick" для Ника пользователя, который имеет любой из этих префиксов статуса канала "!~&@%+", то вы получите эхо-сообщение "This user has one of the (!~&@%+) statuses on the channel.", после чего скрипт будет остановлен.
Подробнее об используемых в скрипте командах, идентификаторах и операторах вы можете прочитать здесь:
[indent=0.8,0.5]
Таким образом, следуя этому примеру вы можете добавлять в этот скрипт любые другие необходимые вам команды и условия проверки.
Я надеюсь теперь вам стало более понятно как можно создавать подобные скрипты на основе алиасов, для выполнения собственных функций с помощью команд
- Подпись автора
[html]<style>img {vertical-align:middle;}.hnet{color:#FFFFFF;}.hstar{color:#DE0000;}.htext{font-family:Verdana;font-size:13px;color:#6E1E00;}.heading{font-family:Verdana;font-size:13px;font-weight:bold;background-color:#4897E7;}.stitle{font-family:Verdana;font-size:12px;}.dot{color:#808000;}.desc{color:#ADADAD;}a .curl{font-family:Verdana;font-size:13px;color:#3A92CD;}</style><table><tr><td width="20px" height="20px"><img src="http://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="http://forum.epicnet.ru/viewtopic.php?id=234"><span class="heading"> <span class="hstar">★</span> <span class="hnet">EpicNet.Ru</span> <span class="hstar">★</span> </span><span class="htext"> - IRC Чат © 2008</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Вход через вебгейт:</span> <a href="http://irc.epicnet.ru"><span class="curl">http://irc.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl)<br><div></td></tr></table>[/html]