EpicNet.Ru - Форум IRC Чата

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Kick + Ban with OP detect

Сообщений 1 страница 3 из 3

1

I created a script that doesn't work:

Код:
alias kb {
  //echo -a if $meop($chan) { .echo -st 0,4 No Se puede echar | halt }
  mode # +b ~q: $+ $1 
}
alias meop { if ($me isop $1) || ($me isvoice $1) || ($me isreg $1) return $true }

Please help

Отредактировано VerDuGoTeam (09.12.2021 00:11)

2

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. Для начала создадим скелет конструкции скрипта на основе алиаса:

Код:
alias kb {

}

Эта конструкция уже позволяет набрать в командной строке команду "/kb", только пока это не приведёт ни к какому результату.


2. Далее можно сразу добавить необходимые команды для выполнения "Кика" и установки "Бана":

[mark=#FFFDDC] mode $chan +b $1 [/mark]
[mark=#FFFDDC] kick $chan $1 You were kicked from the channel [/mark]

Для последовательности выполнения в начале лучше использовать команду для "Бана", чтобы пользователь был сразу забанен и не имел возможности быстро перезайти на канал после "Кика".

Помещаем эти команды во внутрь созданной конструкции, между фигурными скобками "{ }":

Код:
alias kb {
  mode $chan +b $1
  kick $chan $1 You were kicked from the channel 
}

Теперь можно указать в команде в качестве первого параметра Ник пользователя "/kb nickname", который вы хотите выгнать и забанить на канале.
В коде скрипта этот ник будет обозначаться идентификатором "$1", что является первым параметром, который был указан при вводе команды.


3. Далее необходимо добавить условие, чтобы проверить является ли активное окно каналом, в котором выполняется команда:

[mark=#FFFDDC] if ($active !ischan) { echo -a This is not a channel window. | halt } [/mark]

Это условие с оператором "!ischan" проверяет, что если активное окно не является каналом, то необходимо сообщить об этом в эхо и остановить скрипт.

Итак, помещаем эту строку с первым по счёту условием, во внутрь конструкции скрипта, но выше над командами:

Код:
alias kb {
  if ($active !ischan) { echo -a This is not a channel window. | halt }
  mode $chan +b $1
  kick $chan $1 You were kicked from the channel 
}

Теперь, если вы попытаетесь выполнить команду в любом другом окне, то вы получите эхо-сообщение "This is not a channel window." и скрипт будет остановлен во избежание ошибок.


4. Далее необходимо добавить условие, чтобы проверить являетесь ли вы оператором канала, в котором выполняется команда:

[mark=#FFFDDC] if ($me !isop $chan) { echo -a You are not the channel operator. | halt } [/mark]

Это условие с оператором "!isop" проверяет, что если вы не являетесь оператором канала, то необходимо сообщить об этом в эхо и остановить скрипт.

Итак, помещаем эту строку со вторым по счёту условием, во внутрь конструкции скрипта, но выше над командами:

Код:
alias kb {
  if ($active !ischan) { echo -a This is not a channel window. | halt }
  if ($me !isop $chan) { echo -a You are not the channel operator. | halt }
  mode $chan +b $1
  kick $chan $1 You were kicked from the channel 
}

Теперь, если вы попытаетесь выполнить команду в окне канала, на котором у вас нет прав оператора, то вы получите эхо-сообщение "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]

Помещаем эту строку с третьим по счёту условием, во внутрь конструкции скрипта, но выше над командами:

Код:
alias kb {
  if ($active !ischan) { echo -a This is not a channel window. | halt }
  if ($me !isop $chan) { echo -a You are not the channel operator. | halt }
  if ($nick($chan,$1,!~&@%+)) { echo -a This user has one of the (!~&@%+) statuses on the channel. | halt }
  mode $chan +b $1
  kick $chan $1 You were kicked from the channel 
}

Теперь, если вы попытаетесь выполнить команду "/kb nickname" на Нике пользователя, который имеет любой из этих префиксов статуса канала "!~&@%+", то вы получите эхо-сообщение "This user has one of the (!~&@%+) statuses on the channel." и скрипт также будет остановлен.


Подробнее об используемых в скрипте командах, идентификаторах и операторах вы можете прочитать здесь:

[indent=0.8,0.5]
Таким образом, следуя этому примеру вы можете добавлять в этот скрипт любые другие необходимые вам команды и создавать любые условия для проверки.

Я надеюсь, что теперь вы понимаете как можно создавать подобные скрипты на основе алиаса, для выполнения различных функций через команды.  http://epicnet.ru/smiles/kolobok/falls_asleep2.gif

Подпись автора

[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]

3

thnx for the answer dear friend works just fine