I've been working on a bunch of anti-spammer/clone flooding scripts, my latest being this rather simple but fairly effective script.
.Mass kick: {
set %knum $snick(#,0)
:start
k $snick(#,%knum)
if (%knum > 1) { dec %knum | goto start
else halt
}
}
While it works well in small situations, anything in the 50+ clones range gets really, really slow on my end.. generally because I'm being attacked by 50 clones. :tongue: I was thinking of speeding it up through using an akick, going through the list of names in the channel, going through them in the same manner as the kickscript, only with $nick(#,0), comparing against $snicks to see if the name is one of those to be kicked, saving the adresses of the unselected nicks in one spot and the selected nicks in another...
This is where I start not knowing how I'd do this. The only thing I can think of is a long long list of comparisons with various $address and if iswm. How would you derive, out of those lists of adresses, a mask that would effect all the selected nicks(provided one existed. If it doesn't, i don't even want to think about the code required to get two or three matching masks..) without effecting any of the unselected names.
Is this just a crazy crackpot idea of mine that will forever sit unimplemented, or is it actually possible? If so.. how?