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
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!