HaleyJI think what they are describing is a bot who sits in the channel and tracks join/parts. From there, the bot messages another bot (not residing in the channel) that will in turn message you. The point of this obscurity is to "conceal" the spamming bot, and still track those who are on the channel.
What they are trying to accomplish is when they are PMed something, check the user's mask against a list of masks in the room. If they match, kick the "relay bot" (the one messaging the spammer you've entered). I hope I've made sense.
GarouThis should be what you're after. I used the $ialchan of mIRC as I feel it's faster for mIRC to do the searching. Additionally, I made it so you can add new channels to the list. Just add them in the red section seperated by a space, and the script will "potect" those channels as well (as long a you have op).
on *:TEXT:*:?: {
var %chanlist = [color:red]#manila[/color]
var %c = 1, %addr = $address($nick,2)
while ($gettok(%chanlist,%c,32)) {
var %chan = $v1, %matches = $ialchan(%addr,%chan,0)
while (%matches && $me isop %chan) {
/ban -k %chan $ialchan(%addr,%chan,%matches).nick 2 14Relay Spammer Detected
/dec %matches
}
/inc %c
}
}
As far as the IAL (which I thought of later as to why your script may/may not work), your listing may not be populated (you join the channel after several users are already on and as long as they don't talk, you won't get their Ial (and bots rarely do chat ;p)). So if you want to solve this as well (but be careful, some networks can be strict on the number of lines it generates) you can add these lines to your remotes:
on me:*:JOIN:#: {
/who $chan
}
That will populate your ial with everyone's address. If you find you've added these lines and begin getting kicked off the network for flood, you may want to remove them.