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

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

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


Вы здесь » EpicNet.Ru - Форум IRC Чата » DEVELOPMENT - Разработка новых mIRC скриптов » Autovoice Multi Nicknames have identified before join My room! Help me


Autovoice Multi Nicknames have identified before join My room! Help me

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

1

Help me autovoices multi Nicknames if multi Nicknames joins #userbot at onces (this multi Nicknames are listed in voice.txt and have auto identified, logged in Nick before joining the #userbot). I want MyBot auto sets mode voices multi Nicknames at once. Currently my bot only voice has 1 nickname.

Here is my code:

Код:
on @*:join:#userbot: {
  if ($network !== DaVang) { return }
  if ($nick == Chat) || ($nick == Kendy) { return }
  if ($nick = $read(voices.txt,nw,$nick)) { .timervoice 1 30 ns acc $nick }
  }
  else { return
}
on *:notice:*:*: {
  if ($nick == NickServ) && (*not registered* iswm $1-) { .msg #userbot $1 - User is not registered. | return }
  if ($nick == NickServ) && (ACC 0 iswm $1-) { .msg #userbot $1 - Account or user does not exits. | return }
  if ($nick == NickServ) && (*ACC 1* iswm $1-) { .msg #userbot $1 - Account exists but user is not logged in. | return }
  if ($nick == NickServ) && (*ACC 2* iswm $1-) { .msg #userbot $1 - User is not logged in but recognized (see ACCESS) | return }
  if ($nick == NickServ) && (*ACC 3* iswm $1-) { .mode #userbot +vvvvv $1 | return }
}

2

1188,352 написал(а):

Help me autovoices multi Nicknames if multi Nicknames joins #userbot at onces (this multi Nicknames are listed in voice.txt and have auto identified, logged in Nick before joining the #userbot). I want MyBot auto sets mode voices multi Nicknames at once. Currently my bot only voice has 1 nickname.

Robert, Если я правильно понял ваш вопрос, то вы хотите, чтобы ваш бот, в котором будет установлен этот скрипт выполнял проверку всех пользователей, которые входят на канал #userbot и если среди них присутствуют ники, которые перечислены в текстовом документе "voices.txt", то должна выполняться команда "/ns ACC nick" (через указанное в таймере время задержки) для проверки статуса регистрации ника пользователя на сервисах. И в зависимости от статуса регистрации аккаунта должна выполняться та или иная команда, в виде мессаги с ответом, или установка статуса "Voice (+v)" пользователю на указанном канале.

В таком случае вы можете попробовать использовать такой код скрипта:

Код:
on *:JOIN:#userbot:{
  if (DaVang !isin $network) { halt }
  if ($istok(Chat Kendy Robert Epic,$nick,32)) { halt }
  if ($read(voices.txt, -w, $nick)) { .timerVOICE $+ $nick 1 5 .ns ACC $nick }
}
on *:NOTICE:*:*:{
  if (DaVang !isin $network) { halt }
  if ($nick == NickServ && *ACC* iswm $1-) {
    if (not registered isin $4-) { .msg #userbot $1 - User is not registered. }
    if ($3 == 0) { .msg #userbot $1 - Account or user does not exits. }
    if ($3 == 1) { .msg #userbot $1 - Account exists but user is not logged in. }
    if ($3 == 2) { .msg #userbot $1 - User is not logged in but recognized (see ACCESS) }
    if ($3 == 3) {
      %av_nicks = %av_nicks $1
      if ($numtok(%av_nicks,32) < 10) .timerMASSVOICE 1 30 massvoice
      else { .timerMASSVOICE off | massvoice }
    }
  }
}
alias -l massvoice { if (%av_nicks) { .mode #userbot $+(+,$str(v,$numtok(%av_nicks,32))) %av_nicks | unset %av_nicks } }

Краткий разбор строк скрипта

Эта строка создаёт условие, при котором - если в названии сети отсутствует слово "DaVang", то скрипт будет остановлен:

Код:
if (DaVang !isin $network) { halt }

Эта строка создаёт условие, при котором - если ник инициатора события будет присутствовать в списке ников перечисленных через пробел "Chat Kendy Robert Epic", то скрипт будет остановлен:

Код:
if ($istok(Chat Kendy Robert Epic,$nick,32)) { halt }

Эта строка создаёт условие, при котором - если ник инициатора события будет присутствовать в списке текстового файла "voices.txt", то скрипт будет выполнять команду с задержкой таймера (с именным названием) на указанное время:

Код:
if ($read(voices.txt, -w, $nick)) { .timerVOICE $+ $nick 1 30 .ns ACC $nick }

Этот фрагмент кода создаёт условие, при котором - в случае, если выполненная ранее команда ".ns ACC $nick" дала результат в виде числа "3", то скрипт будет сохранять в переменную "%av_nicks" все ники (в пределах 10 штук), а затем, спустя указанное в таймере время - будет выполнять команду для перехода в алиас "massvoice" для выполнения массовой установки режимов "статуса Voice (+v)" для всех проверенных ников:

Код:
if ($3 == 3) {
  %av_nicks = %av_nicks $1
  if ($numtok(%av_nicks,32) < 10) .timerMASSVOICE 1 30 massvoice
  else { .timerMASSVOICE off | massvoice }
}

Примечание: В стандартных сервисах нет такой команды "/ns ACC nick". Вероятно это индивидуальная особенность конкретной IRC сети. Поэтому аналогом этой команды скорее всего будет "/ns STATUS nick". Соответственно, для использования этого скрипта в других сетях потребуется изменить название команды "ACC" на "STATUS", а также в некоторых строках кода идентификатор $1 должен быть заменён на $2.

Ошибка: Когда вы создаёте свой собственный скрипт, то никогда не забывайте простое правило: Если вы где-то открываете фигурную скобку "{", то после написания части кода, который должен выполняться - вы должны всегда закрывать открытую скобку обратной фигурной скобкой "}". В представленном вами коде присутствует подобная ошибка: "else { return". В этом случае ваш скрипт будет работать не корректно и начнёт отображать ошибки.


Если у вас всё ещё остались вопросы по данной теме, то вы можете задать их ниже под этим постом в качестве нового ответа.
Для вопросов по другим темам соответствующим данному разделу пожалуйста создайте новую тему.

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

[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:#B5B5B5;}a .curl{font-family:Verdana;font-size:12px;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 Чат © 2009</span></a></td></tr><tr><td></td><td><div class="stitle"><span class="dot">•</span> <span class="desc">Онлайн:</span> <a href="http://chat.epicnet.ru"><span class="curl">http://chat.epicnet.ru</span></a><br><span class="dot">•</span> <span class="desc">Сервер:</span> irc.epicnet.ru <span class="desc">Порты:</span> 6667, 6668 (ssl) <span class="desc">Кодировка:</span> UTF-8<br><span class="dot">•</span> <span class="desc">Сайт:</span> <a href="http://epicnet.ru"><span class="curl">http://epicnet.ru</span></a> <span class="dot">•</span> <span class="desc">ВКонтакте:</span> <a href="https://vk.com/irc_epicnet"><span class="curl">https://vk.com/irc_epicnet</span></a><br><div></td></tr></table>[/html]

Быстрый ответ

Напишите ваше сообщение и нажмите «Отправить»



Вы здесь » EpicNet.Ru - Форум IRC Чата » DEVELOPMENT - Разработка новых mIRC скриптов » Autovoice Multi Nicknames have identified before join My room! Help me