Here's a suggestion. I combined it with Thrull's clonekicker.
on !@*:JOIN:#:{
if ($regex($gettok($address($nick, 0), 1, 64), /[0-9]/g) >= 3) && ($isflood(joinfl. [ $+ [ $chan ] $+ [ $wildsite ] ], 6, 3, 1)) {
ban -ku600 # $nick 2 14Random Nick Detected
kickclones $address($nick, 2)
}
}
alias isflood {
if (!$3) return
var %v = $chr(37) $+ isflood. $+ $1
if !$(%v,2) {
set $(-u $+ $3,2) $(%v,1) 1
}
else {
inc $(%v,1)
}
if $(%v,2) >= $2 {
if ($4) {
unset $(%v,1)
}
return $true
}
return $false
}
alias kickclones {
var %clonemask = $1
if $ialchan(%clonemask,$chan,0) > 2 {
mode $chan +b %clonemask
var %i = 1
while $ial(%clonemask,%i).nick != $null {
if $ial(%clonemask,%i).nick ison $chan { kick $chan $ial(%clonemask,%i).nick }
inc %i
}
}
}
This code does the following
- it counts the number of ciphers in the identity of the joiner's address ($regex)
- it also counts the number of joins with the same wildsite in a partical channel ($isflood)
- if there are 3 or more ciphers in the address and there are 6 or more of such joins within 3 seconds, it will kick/ban the joiner plus its clones that already had joined
I couldn't test this completely of course, but I tested the $regex and the $isflood separately. Ehm ... Thrull is responsible for the clone kick
![smile smile](/images/graemlins/mirc/smile.gif)
but it looks perfect to me.
Btw, Thrull, Riamus, does mIRC known some kind of identifier to retrive the identity without having to use $gettok? I couldn't find one in the help ...
O, Garou, you can change the 6 and the 3 in $isflood, but leave the 1 as a third parameter!