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

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

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



BADNICK JOIN/CHANGE

Сообщений 21 страница 29 из 29

21

[indent=0.8,0.5]
Here is:

https://upforme.ru/uploads/000d/c9/8c/387/685422.png

Отредактировано Chandra (01.10.2025 17:53)

22

Да, именно так, почти...

Ошибка: [c]$address($1.5)[/c] - здесь не должно быть точки.

Параметры адреса должны быть указаны через запятую [c]$address($1,5)[/c], а не так, как будто это цена товара на прилавке магазина, указанная в долларах с точкой.

https://i.ibb.co/Xx4dK7J4/prices.jpg
[indent=0.8,0.5]
P.S. Пожалуйста, не используйте переводчик страницы при копировании кода, т.к. иногда это ломает/нарушает синтаксис кода, что делает его неработоспособным.

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

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

23

That's the reason maybe! I'll try now

N.B.: So, for all the people I advice: "if You translate from russian to any language, be careful to set original language before to copy code!"

In my situation, I use to translate from russian to english (to read Your hint and instructions) but the problem is that comma turn to full-stop !

https://upforme.ru/uploads/000d/c9/8c/387/966473.png
https://upforme.ru/uploads/000d/c9/8c/387/879326.png

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

24

I'm testing it. I changed reasons in italian language (first I copied the whole code in original language of course). I only changed text, nothing else.

Everything almost perfectly work, just a problem:

https://upforme.ru/uploads/000d/c9/8c/387/142158.png

MARA it's me from a different PC and connection. I got [c]~[/c] status on join as You can see. But I got warned and kicked.

This happened also with another operator who has vhost:
[rect width=600]
[09:35:54] * Joins: LaIndiA (LaIndiA@eMule-Italian.MindForge.org)
[09:35:55] * [eMule] sets mode: +o LaIndiA
[09:36:23] * LaIndiA is now known as LaIndiA[away]
[09:36:24] * LaIndiA[away] was kicked by sniper (Reason: Lettere maiuscole Max 40%)
[/rect]

Here is the whole code edited that I tested:

Код:
on !*:JOIN:$($list_channels): check_badnick $nick $chan
on !*:NICK:{
  var %i 1, %nick $newnick
  while (%i <= $comchan(%nick,0)) {
    var %chan $comchan(%nick,%i)
    if ($istok($list_channels,%chan,44)) { check_badnick %nick %chan }
    inc %i
  }
}

alias -l check_badnick {
  if ($nick($2,$1,~&@%+)) { return } | var %host $ial($1).host
  ;--------------------
  if ($timer($+(BNWARN,%host))) { $+(.timerBNWARN,%host) off }
  if ($timer($+(BNKICK,%host,$2))) { $+(.timerBNKICK,%host,$2) off }
  ;-----
  if (MindUser* iswm $1) { warn_user MindUser %host $1- | return }
  if ($len($remove_chars($1)) < $min_letters) { warn_user ShortLength %host $1- | return }
  if ($count_caps($1) > $percent_caps) { warn_user CapsLock %host $1- | return }
  ;--------------------
  var %x 1, %i 1, %ident $remove($ial($1).user,~), %addr $ial($1).addr
  while (%x <= $lines($excnick_file)) {
    if ($+($read($excnick_file,nt,%x),*) iswm $address($1,5)) { return } | inc %x
  }
  while (%i <= $lines($badnick_file)) {
    if ($read($badnick_file,nt,%i) iswm %ident) {
      echo $2 * Ban of ident by mask:04 $v1
      cs ban $2 $+(+,$time_ban) $+(*!*,%ident,*@*) Parola non ammessa !
      if (!$read($log_file,ntw,*Bad-Ident* $date $time $1 * %addr)) {
        write $log_file *Bad-Ident* $date $time $1 ---> %addr
      }
    }
    if ($read($badnick_file,nt,%i) iswm $1) {
      echo $2 * Ban of nick by mask:04 $v1
      cs ban $2 $+(+,$time_ban) $+(*,$1,*!*@*) Nick non ammesso !
      if (!$read($log_file,ntw,*Bad-Nick* $date $time $1 * %addr)) {
        write $log_file *Bad-Nick* $date $time $1 ---> %addr
      }
    }
    inc %i
  }
}
alias -l remove_chars { return $remove($1,0,1,2,3,4,5,6,7,8,9,_,-,`,^,|,\,[,],$chr(123),$chr(125)) }
alias -l count_caps { return $round($calc($regex($1,/[A-Z]/g) * 100 / $len($1)),1) }
alias -l warn_user {
  if ($1 == MindUser) { var %reason MindUser***** }
  if ($1 == ShortLength) { var %reason lunghezza minima 3 lettere }
  if ($1 == CapsLock) { var %reason lettere maiuscole Max 40% }
  var %ntext 04Nick non ammesso ( %reason ) - Cambialo entro 30 secondi o verrai espulso dal canale ( scrivi /nick nickscelto )
  if (!$timer($+(BNWARN,$2))) { $+(.timerBNWARN,$2) 1 $delay_warn .notice $unsafe($3 %ntext) }
  if (!$timer($+(BNKICK,$2,$4))) { $+(.timerBNKICK,$2,$4) 1 $delay_kick kick_user $unsafe($1-4 %reason) }
}
alias -l kick_user {
  kick $4 $3 Nick non ammesso - $5- - Puoi cambiarlo in Opzioni-IRC di eMule - | var %addr $ial($3).addr
  if (!$read($log_file,ntw,$+(*,$1,*) $date $time $3 * %addr)) {
    ; write $log_file $+(*,$1,*) $date $time $3 ---> %addr
  }
}

alias -l list_channels { return #`Chandra_Area51 }
alias -l min_letters { return 3 }
alias -l percent_caps { return 40 }
alias -l badnick_file { return bnicks.txt }
alias -l excnick_file { return exceptednick.txt }
alias -l log_file { return banemule.txt }
alias -l delay_warn { return 2 }
alias -l delay_kick { return 30 }
alias -l time_ban { return 7200 }

Why not to change line 12 ?
[c]if ($nick($2,$1,~&@%+)) { return } | var %host $ial($1).host[/c]

with
[c]if ($nick($2,$1,~&@%+)) { halt } | var %host $ial($1).host[/c]

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

25

Из отчёта видно, что статус оператора канала присваивается с некоторой задержкой в 1-2 секунды, поэтому можно попробовать добавить таймер примерно на такое же время, чтобы пользователь мог успеть получить [c]~ & @ % +[/c], прежде чем скрипт запустит проверку ника с помощью команды [c]check_badnick[/c]

Попробуйте заменить этот фрагмент кода:

Код:
on !*:JOIN:$($list_channels): check_badnick $nick $chan
on !*:NICK:{
  var %i 1, %nick $newnick
  while (%i <= $comchan(%nick,0)) {
    var %chan $comchan(%nick,%i)
    if ($istok($list_channels,%chan,44)) { check_badnick %nick %chan }
    inc %i
  }
}

на этот:

Код:
on !*:JOIN:$($list_channels):{
  var %host $ial($nick).host
  if (!$timer($+(BNDELAY,%host))) {
    $+(.timerBNDELAY,%host) -m 1 2000 check_badnick $unsafe($nick $chan)
  }
}
on !*:NICK:{
  var %i 1, %nick $newnick, %host $ial(%nick).host
  while (%i <= $comchan(%nick,0)) {
    var %chan $comchan(%nick,%i)
    if ($istok($list_channels,%chan,44)) {
      $+(.timerBNDELAY,%host,%chan) -m 1 2000 check_badnick $unsafe(%nick %chan)
    }
    inc %i
  }
}

Примечание: Цифра "2000" - это количество миллисекунд, которое равно "2" секундам. Вы можете изменить это на необходимое вам время задержки в миллисекундах.

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

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

26

This is log from banemule.txt (log_file) :

https://upforme.ru/uploads/000d/c9/8c/387/878842.png

Why there're lines without address details?

Ps.: I almost finished testing 

27

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

Why there're lines without address details?

При моём коротком тестировании такого не наблюдалось. Видимо, по какой то причине запрашиваемый адрес пользователя с помощью идентификатора [c]$ial().addr[/c] не определяется и следовательно не сохраняется в переменной [c]%addr[/c], поэтому при записи лог-файла [c]write $log_file *Reason* $date $time $1 ---> %addr[/c] в некоторых строках отсутствует адрес.

Ещё я заметил, что у вас в лог-файле присутствует несколько записей с новой причиной бана, которые отсутствуют в предоставленном мной коде:
[flist width=200]*Join_Flood* ...
*Nick_Maiuscolo* ...
[/flist]

Скажите, вы вносили какие то дополнительные изменения/нововведения в код, кроме запланированного, что могло бы повлиять на корректную работу скрипта?

[indent=0.8,0.5]
Наверное мне придётся провести новое тестирование, воссоздав похожие условия с происходящими на вашем канале событиями и такими же пользовательскими данными нарушителей из ваших логов, чтобы попробовать найти причину этой проблемы, а после внести необходимые корректировки/изменения для стабильной работы кода.

[indent=0.8,0.5]
P.S. Пожалуйста, если это возможно, публикуйте ваши логи в текстовом виде, т.к. это гораздо удобнее читать и копировать для проверки/тестирования, тогда как изображение может оказаться нечётким и со временем может быть удалено. Скриншоты полезны только, когда возникшую проблему невозможно показать в виде текста, поэтому нужно показать общий вид/дизайн окна с происходящими багами, или наоборот, когда необходимо продемонстрировать, что в вашем приложении всё работает исправно.

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

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

28

No addition in code: I simply changed that alias name and of course its recall. Everything is perfectly working in the code, nothing important has been changed or added.
Is just a (not important at all) , log file issue
I always use text or code mode, this time I used image because is an internal log file, and issue is not about blurred text, that's only cripted host

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

29

I finished to test this Epic's masterpiece: 100% working !!! Log included.
Thanks a lot bro ^^

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

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