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

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

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


Вы здесь » EpicNet.Ru - Форум IRC Чата » HELP SCRIPTS - Помощь по mIRC скриптам » Condition "if ()" to check parts of the user address mask


Condition "if ()" to check parts of the user address mask

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

1

I'm trying to understand how to properly set (and write) a kick/BAN focusing on mask --->NICK = REALNAME!IDENT@HOST
For examplethis on join:

Код:
ON *:JOIN:#CHANNEL: {
  if ($address == 111.222.333.444) {
 ban # *!*@111.222.333.444
    kick # $nick SAY SOMETHING ON HOST MATCH
 }
}

In this case kick ban takes HOST. Right?
What if I wish to add an option also for REAL NAME or IDENT?

Код:
ON *:JOIN:#CHANNEL: {
  if ($address == *!*@HOST) {
 ban # *!*@111.222.333.444
    kick # $nick SAY SOMETHING IF HOST MATCH
 }
elseif ($????? == *!*IDENT@*{
DO SOMETHING IF IDENT MATCH
}
elseif ($????? == REAL_NAME!*@*) {
DO SOMETHING IF REAL_NAME MATCH
}
elseif ($nick == ANY_NICK) {
DO SOMETHING IF NICK MATCH
}

What to put on ?????

Thanks

2

I try to be more clear...

For example , consider this mask:--->pippo is paperino!pluto@123.456.789.100

pippo = nick
paperino = real_name
pluto = ident
123.456.789.100 = host

Код:
ON *:JOIN:#CHANNEL: {
  if ($address == *!*@123.456.789.100) {
 ban # *!*@123.456.789.100
    kick # $nick SAY SOMETHING IF HOST MATCH
 }
elseif ($????? == *!*pluto@*{
  ban # ?????
    kick # $nick SAY SOMETHING IF IDENT MATCH
}

elseif ($????? == paperino!*@*) {
  ban # ?????
    kick # $nick SAY SOMETHING IF REAL_NAME MATCH
}
elseif ($nick == pippo) {
  ban # $nick
    kick # $nick SAY SOMETHING IF NICK MATCH
}

Hope I been more clear.
Always thanks for any help

Отредактировано Chandra (06.08.2025 19:11)

3

Полная маска с адресом пользователя может быть только в таком формате: [c]nick!ident@host[/c]

Если взять пользовательские данные из вашего примера, то маска будет такой: [c=red]pippo!pluto@123.456.789.100[/c]

При выполнении команды [c]/whois pippo[/c] в ответе первая строка будет выглядеть так: [c]pippo is pluto@123.456.789.100 * paperino[/c]

Список всех возможных вариантов получения маски пользователя с помощью идентификатора [c]$address()[/c]:

  • [c]$address($nick,0)[/c] == [c]*!pluto@123.456.789.100[/c]

  • [c]$address($nick,1)[/c] == [c]*!*pluto@123.456.789.100[/c]

  • [c]$address($nick,2)[/c] == [c]*!*@123.456.789.100[/c]

  • [c]$address($nick,3)[/c] == [c]*!*pluto@*.456.789.100[/c]

  • [c]$address($nick,4)[/c] == [c]*!*@*.456.789.100[/c]

  • [c]$address($nick,5)[/c] == [c]pippo!pluto@123.456.789.100[/c]

  • [c]$address($nick,6)[/c] == [c]pippo!*pluto@123.456.789.100[/c]

  • [c]$address($nick,7)[/c] == [c]pippo!*@123.456.789.100[/c]

  • [c]$address($nick,8)[/c] == [c]pippo!*pluto@*.456.789.100[/c]

  • [c]$address($nick,9)[/c] == [c]pippo!*@*.456.789.100[/c]

Подробнее об этом здесь: https://en.wikichip.org/wiki/mirc/identifiers/$address

А вот реальное имя пользователя этот идентификатор к сожалению вернуть не сможет, т.к. оно не является частью адреса. Но при необходимости его можно извлечь из полученного ответа, при запросе "WHOIS" или "WHO", чтобы на его основе можно было установить бан на адрес пользователя, который использует данное реальное имя.

Для корректной сверки данных масок друг с другом в условии лучше всего использовать оператор "iswm", который сравнивает данные с подстановочными знаками.
Подробнее об этом здесь: https://en.wikichip.org/wiki/mirc/operators

В данном случае для проверки подойдёт вариант [c]$address($nick,5)[/c], который возвращает полную маску, чтобы можно было сверить присутствие в маске каждого отдельного значения из необходимых пользовательских данных "nick/ident/host".

[indent=0.8,0.5]
Итак, используя идентификатор "$address()" ваш скрипт может выглядеть так:

Код:
on *:JOIN:#test:{
  if (*!*@123.456.789.100 iswm $address($nick,5)) {
    mode $chan +b $v1
    kick $chan $nick SAY SOMETHING IF HOST MATCH
  }
  elseif (*!*pluto@* iswm $address($nick,5)) {
    mode $chan +b $v1
    kick $chan $nick SAY SOMETHING IF IDENT MATCH
  }
  elseif (pippo!*@* iswm $address($nick,5)) {
    mode $chan +b $v1
    kick $chan $nick SAY SOMETHING IF NICK MATCH
  }
}

Примечание: Для установки режима с баном я использовал идентификатор [c]$v1[/c], который возвращает левый/первый операнд с данными, указанными в условии сравнения, чтобы не переписывать повторно ту же самую маску. Подробнее об этом здесь: https://en.wikichip.org/wiki/mirc/identifiers/$v1

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

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

4

Ok thanks Epic.
Well, I'm making my personal BLACKLIST addon.
I made a list of NICK/IDENT/HOST not allowed in a chan. I add what I need using:

Код:
  .BLACKLIST
  ..ADD(NICK): /write myblacklist.txt $1
  ..ADD(HOST): /write myblacklist.txt $address($1,2)
  ..ADD(IDENT): /write myblacklist.txt $+(*!*,$right($ial($1,1).user,6),@*)

So on right click on a nick in nicklist I can choose which part of mask I want to add in myblacklist.txt and be checked.

Then I did this to check:

Код:
on *:JOIN:#test:{ 
  if ($read(myblacklist.txt) iswm $address($nick,5)) { 
    ;mode $chan +b $v1 
    kick $chan $nick BLACKLISTED !!! | .write $address($1,5) blackmailed.txt *BLACKLISTED* $date $time    (<---- This to have a log file)
  } 

What do You think? Is a good solution or is possible to improve/change something?
Thanks

P.S.: To be honest I "stolen" line about ADD(IDENT) from another addon but I didn't understood it (what is "ial" for)... :-/

Отредактировано Chandra (08.08.2025 14:24)

5

It looks something doesn't work correcty

Код:
  if ($read(myblacklist.txt) iswm $address($nick,5)) { 

This mIRC work on DropBox but I guess is not the problem, because files are in the right position...

6

При использовании идентификатора в подобном виде [c]$read(myblacklist.txt)[/c] вы будете получать из файла строку с данными, которая была выбрана в случайном порядке.

Чтобы в этом убедиться, для теста попробуйте ввести много раз команду: [c]//echo -a $read(myblacklist.txt)[/c]

Из этого следует, что в условии [c]if ($read(myblacklist.txt) iswm $address($nick,5))[/c] используемые для проверки данные в левом операнде каждый раз могут быть разные, из-за случайно выбранной строки в файле, поэтому это условие иногда будет срабатывать, а иногда нет, или будет установлен бан на случайно выбранную маску из файла, которая будет совпадать с адресом, указанным в правом операнде сравнения.

Кроме того вам не нужно применять оператор [c]iswm[/c] для сравнения, т.к. идентификатор [c]$read()[/c] может сам осуществлять поиск и сравнение данных по указанной маске с подстановочными знаками, когда вы используете его вместе с переключателем [c]-w[/c] например: [c]$read(myblacklist.txt,ntw,$address($nick,2))[/c]
Подробнее об этом можно узнать здесь: https://en.wikichip.org/wiki/mirc/identifiers/$read

[indent=0.8,0.5]
Я создал для вас код скрипта, который должен работать в соответствии с вашими запросами.

Попробуйте протестировать этот вариант:

Код:
menu nicklist {
  BLACKLIST
  .add $chr(160) NICK : bl_write_nick $+($1,!*@*)
  .add $chr(160) HOST : bl_write_host $address($1,2)
  .add $chr(160) IDENT : bl_write_ident $+(*!,$ial($1,1).user,@*)
}

alias bl_write_nick {
  if ($read($bl_nick,ntw,$1)) { echo -a The entry exists in blacklist:03 $1 }
  else { write $bl_nick $1 | echo -a Added to blacklist:04 $1 }
}
alias bl_write_ident {
  if ($read($bl_ident,ntw,$1)) { echo -a The entry exists in blacklist:03 $1 }
  else { write $bl_ident $1 | echo -a Added to blacklist:04 $1 }
}
alias bl_write_host {
  if ($read($bl_host,ntw,$1)) { echo -a The entry exists in blacklist:03 $1 }
  else { write $bl_host $1 | echo -a Added to blacklist:04 $1 }
}

on *:JOIN:#test:{
  if ($read($bl_host,ntw,$address($nick,2))) {
    mode $chan +b $v1
    kick $chan $nick BLACKLISTED HOST !!!
    write $bl_logs *BLACKLISTED* $v1 $date $time
  }
  elseif ($read($bl_ident,ntw,$+(*!,$ial($nick,1).user,@*))) {
    mode $chan +b $v1
    kick $chan $nick BLACKLISTED IDENT !!!
    write $bl_logs *BLACKLISTED* $v1 $date $time
  }
  elseif ($read($bl_nick,ntw,$+($nick,!*@*))) {
    mode $chan +b $v1
    kick $chan $nick BLACKLISTED NICK !!!
    write $bl_logs *BLACKLISTED* $v1 $date $time
  }
}

alias -l bl_nick { return blacklist\nick.txt }
alias -l bl_ident { return blacklist\ident.txt }
alias -l bl_host { return blacklist\host.txt }
alias -l bl_logs { return blacklist\logs.txt }

Примечание: Обратите внимание, что я разделил чёрный список на 3 разных файла для раздельного хранения масок с пользовательскими данными, такими как "Host", "Ident" и "Nick", чтобы можно было делать последовательную проверку, где сначала будет сверяться "Host", потом "Ident" и в конце "Nick". Путь к файлам настраивается с помощью 4-х алиасов, которые находятся в самом низу кода. Вы можете изменить это на собственные названия папок и файлов.

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

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

7

Thanks as always Epic. I'll try it this week-end and will try to study Your directions ;-)

8

[c]alias -l[/c] - What is [c=red]-l[/c] switch for?

I haven't found it

Thanks

Отредактировано Chandra (15.08.2025 18:06)

9

1632,387 написал(а):

"alias -l" - What is "-l" switch for?

Переключатель [c]alias -l name[/c] нужен для определения/создания локального алиаса, который может быть вызван только внутри одного файла скрипта, в котором он находится.
В этом случае такой алиас не может быть вызван из другого файла скрипта или при вводе команды с названием алиаса [c]/name[/c] в активном окне поля "Editbox".

Подобное локальное ограничение алиаса может быть полезно в качестве подстраховки. Например, если в вашем mIRC загружено/присутствует сразу несколько алиасов с одинаковыми названиями, но в разных файлах скриптов и вы об этом не знаете или просто забыли, из-за большого количества одновременно используемых скриптов, тогда у вас будет страховка, что они не будут конфликтовать и смогут работать независимо друг от друга, то есть, каждый внутри только собственного скрипта, предотвращая одновременный вызов сразу нескольких функций из разных скриптов или вызов из дублирующего алиаса, а не из нужного вам, и т.д.

Таким образом, если ваш алиас выполняет какую то небольшую функцию узкой направленности, например, работает в качестве идентификатора, который был создан специально для обслуживания запросов только внутри одного скрипта и вы не планируете его широкого применения где то ещё, или, если вы не хотите, чтобы он мог быть вызван случайно другими скриптами или командами, тогда вам будет полезно ограничить его локально, для работы только в пределах одного нужного вам скрипта.

Подробнее об этом и в целом про алиасы можно узнать здесь: https://en.wikichip.org/wiki/mirc/aliases

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

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

10

1633,2 написал(а):

... Подробнее об этом и в целом про алиасы можно узнать здесь: https://en.wikichip.org/wiki/mirc/aliases

Oh yes yes, found it. Perfectly clear.
So considering that I'm a newbie in scripting and I never use/need external alias , is always better to use it in any addons. Right?

11

1634,387 написал(а):

So considering that I'm a newbie in scripting and I never use/need external alias , is always better to use it in any addons. Right?

Всё зависит от того как вы собираетесь использовать созданный вами или заимствованный из другого скрипта алиас. В некоторых случаях локальный переключатель будет мешать, если предполагается, что этот алиас должен быть доступен глобально, для вызова в качестве команды при вводе в активном окне поля "Editbox", или если его функция заключается в обработке и получении результатов другими скриптами. Поэтому, в каждом случае это может быть разное решение, в зависимости от функции алиаса.

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

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

12

If I wish to "list" all the entries in blacklist\nick.txt file in an active windows (for example like /notice -l , but I know this is a server side command) , can I use command $read?
I tried it but it only read 1 or assigned line...
Thanks

13

Идентификатор [c]$read()[/c] возвращает только одну строку файла, но вы можете использовать команду [c]while[/c] для запуска цикла, чтобы построчно вывести все строки файла.

Например, введите:  [c]//var %i 1 | while (%i <= $lines(blacklist\nick.txt)) { echo -a %i $read(blacklist\nick.txt,nt,%i) | inc %i }[/c]

Подробнее об этом можно узнать здесь:

[indent=0.8,0.5]
Итак, если я правильно понял вашу идею, то вы можете попробовать добавить к скрипту этот фрагмент кода:

Код:
on *:TEXT:!bl*:#test:{
  if ($nick isop $chan) || ($nick ishop $chan) {
    if (!$2) { .notice $nick Syntax:12 !bl <nick/ident/host> | return }
    if ($2 == nick) { var %blfile $bl_nick }
    if ($2 == ident) { var %blfile $bl_ident }
    if ($2 == host) { var %blfile $bl_host }
    if (%blfile) {
      if ($lines(%blfile) > 0) {
        var %i 1 | while (%i <= $lines(%blfile)) { .notice $nick %i $read(%blfile,nt,%i) | inc %i }
      }
      else { .notice $nick The list is empty. }
    }
  }
}

Синтаксис команды для получения списка:  !bl <nick/ident/host>

Примечание: Это сработает только, если вы будете вводить команду на канале и у вас есть статус "OP" (@) или "HOP" (%), а скрипт находится в боте на другом mIRC.

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

14

How to avoid

[16:54:12] * botname triggered your noticeflood protection.

I deactivated Flood Protection in both clients...

UPDATE: Found it :-P (can't delete comment)

Отредактировано Chandra (01.09.2025 18:24)

15

Действительно, если в файле будет большое количество строк, то с помощью цикла они будут моментально прочитаны и отправлены пользователю командой [c]notice[/c], что может быть расценено средствами защиты/безопасности как флуд. Но т.к. при моём тестировании в файле было всего 5 строк - это выглядело нормально.

В таком случае, будет лучше для вашей задачи, вместо команды [c]while[/c] использовать команду [c]play[/c] для построчного и поочерёдного воспроизведения файла, с возможностью настройки времени задержки при выводе каждой строки.

Для примера введите в вашем боте: [c]//play -xn $me blacklist\nick.txt 1000[/c]

Подробнее об этом можно узнать здесь:  https://en.wikichip.org/wiki/mirc/commands/play

[indent=0.8,0.5]
Итак, замените предыдущий фрагмент кода на этот и попробуйте протестировать его:

Код:
on *:TEXT:!bl*:#test:{
  if ($nick isop $chan) || ($nick ishop $chan) {
    if (!$2) { .notice $nick Syntax:12 !bl <nick/ident/host> | return }
    if ($play($nick,0)) { .notice $nick 04Please wait until the previous request is finished playing. | return }
    if ($play(0)) { .notice $nick 05The request will be played in the order of the queue, please wait... }
    if ($2 == nick) { var %blfile $bl_nick }
    if ($2 == ident) { var %blfile $bl_ident }
    if ($2 == host) { var %blfile $bl_host }
    if (%blfile) {
      if ($lines(%blfile) > 0) { .play -xa playnotice $nick %blfile 1000 }
      else { .notice $nick The list is empty. }
    }
  }
}

alias -l playnotice { .notice $1 $play($1).pos $2 }

Примечание: Время задержки установлено на [c]1000[/c] миллисекунд, что равно [c]1[/c] секунде. Вы можете изменить это значение на необходимую вам скорость воспроизведения.

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

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

16

I'll try it Epic.
Thanks a lot

UPDATE 09/04/2025

Really perfect Epic, great job 

Отредактировано Chandra (04.09.2025 15:18)

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

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



Вы здесь » EpicNet.Ru - Форум IRC Чата » HELP SCRIPTS - Помощь по mIRC скриптам » Condition "if ()" to check parts of the user address mask