1255,351 написал(а):I created a script that doesn't work. Please help
Как я понимаю вы хотите сделать скрипт для создания команды "/kb nickname", чтобы устанавливать "Кик+Бан" на указанный Ник в команде.
Ошибка 1: ➔ [mark=#FFFDDC] //echo -a if $meop($chan) [/mark] - в данном случае вы получите всю эту строку в эхо-сообщение и она не будет выполнена в качестве условия для проверки.
Ошибка 2: ➔ [mark=#FFFDDC] if ($meop($chan)) [/mark] - не забывайте при создании условия добавлять внешние круглые скобки "if ( )" во внутрь которых помещаются параметры для проверки.
Ошибка 3: ➔ [mark=#FFFDDC] if ($me isop $1) || ($me isvoice $1) || ($me isreg $1) [/mark] - третье условие противоречит первым двум, т.к. оно проверяет являетесь ли вы обычным пользователем канала (без статуса).
Ошибка 4: ➔ [mark=#FFFDDC] if ($me isop $1) || ($me isvoice $1) { return $true } [/mark] - при создании в одной строке сразу нескольких условий, выполняемое действие необходимо заключать в фигурные скобки "{ }".
[indent=0.8,0.5]
📖 Пошаговая инструкция по созданию такого скрипта.
[indent=0.8,0.5]
1. Для начала создадим скелет конструкции скрипта на основе алиаса:
Эта конструкция уже позволяет набрать в командной строке команду "/kb", только пока это не приведёт ни к какому результату.
2. Далее можно сразу добавить необходимые команды для выполнения "Кика" и установки "Бана":
[mark=#FFFDDC] mode $chan +b $1 [/mark]
[mark=#FFFDDC] kick $chan $1 You were kicked from the channel [/mark]
Для последовательности выполнения в начале лучше использовать команду для "Бана", чтобы пользователь был сразу забанен и не имел возможности быстро перезайти на канал после "Кика".
Помещаем эти команды во внутрь созданной конструкции, между фигурными скобками "{ }":
Теперь можно указать в команде в качестве первого параметра Ник пользователя "/kb nickname", который вы хотите выгнать и забанить на канале.
В коде скрипта этот ник будет обозначаться идентификатором "$1", что является первым параметром, который был указан при вводе команды.
3. Далее необходимо добавить условие, чтобы проверить является ли активное окно каналом, в котором выполняется команда:
[mark=#FFFDDC] if ($active !ischan) { echo -a This is not a channel window. | halt } [/mark]
Это условие с оператором "!ischan" проверяет, что если активное окно не является каналом, то необходимо сообщить об этом в эхо и остановить скрипт.
Итак, помещаем эту строку с первым по счёту условием, во внутрь конструкции скрипта, но выше над командами:
Теперь, если вы попытаетесь выполнить команду в любом другом окне, то вы получите эхо-сообщение "This is not a channel window." и скрипт будет остановлен во избежание ошибок.
4. Далее необходимо добавить условие, чтобы проверить являетесь ли вы оператором канала, в котором выполняется команда:
[mark=#FFFDDC] if ($me !isop $chan) { echo -a You are not the channel operator. | halt } [/mark]
Это условие с оператором "!isop" проверяет, что если вы не являетесь оператором канала, то необходимо сообщить об этом в эхо и остановить скрипт.
Итак, помещаем эту строку со вторым по счёту условием, во внутрь конструкции скрипта, но выше над командами:
Теперь, если вы попытаетесь выполнить команду в окне канала, на котором у вас нет прав оператора, то вы получите эхо-сообщение "You are not the channel operator." и скрипт будет остановлен во избежание ошибок.
5. Также в качестве дополнения можно добавить условие, чтобы проверить имеет ли Ник пользователя на канале такие префиксы статусов как "!~&@%+":
[mark=#FFFDDC] if ($nick($chan,$1,!~&@%+)) { echo -a This user has one of the (!~&@%+) statuses on the channel. | halt } [/mark]
Помещаем эту строку с третьим по счёту условием, во внутрь конструкции скрипта, но выше над командами:
Теперь, если вы попытаетесь выполнить команду "/kb nickname" на Нике пользователя, который имеет любой из этих префиксов статуса канала "!~&@%+", то вы получите эхо-сообщение "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:#4898CD;}.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="https://forumstatic.ru/files/000d/c9/8c/34681.jpg"></td><td><a href="https://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]