Hi, I have this "bad nicks" script that I managed to modify a bit, but I end up with quite a few problems that I hope you can fix please:

Код:
#BadNicks on
on !@*:JOIN:#help:{
  var %x = 1
  while (%x <= $lines($mircdirbadnicks.txt)) {
    if ($read(badnicks.txt,%x) iswm $nick) {
      ban $chan $address($nick,2) | ban $chan $address($nick,3) | echo -t @BadNicks The nick: 03 $nick  has been banned for bad nick
    }
    inc %x
  }
}

alias checknicks {
  var %x = 1
  while (%x <= $lines($mircdirbadnicks.txt)) {
    var %i = 1
    while (%i <= $nick($chan,%i)) {
      if ($read(badnicks.txt,%x) iswm $nick($chan,%i)) {
        kick $chan $nick($chan,%i) 
        ban $chan $nick($chan,%i)
      }
      inc %i
    }
    inc %x
  }
}

on !*:NICK:{ checknicks }
#BadNicks end
------------------------------------------
on *:CONNECT: .timer 1 10 enable #BadNicks | .timer 1 10 echo -a BadNicks: activated 04● Window: @BadNicks: Open | .timer 1 10 window -enk1z @BadNicks
on *:EXIT .disable #BadNicks
------------------------------------------

menu @BadNicks {
  Clear @BadNicks window
  .Clear:/clear @BadNicks
}

------------------------------------------

1: If a person uses a nickname that is NOT in the list of banned nicknames in the .txt file, but then changes it to one of the banned nicknames, the nickname is not banned.

2: As you can see from the script there is a command to check and ban all the nicknames in the list, but the resulting ban is almost useless, and I can't change it to a decent ban. Join ban seems more effective with type 2 and 3, but if there's something even better for both, so be it.

3: The /checknicks command to check and ban all the nicknames in the list is not recommended if there are many nicknames in the list since mIRC ends up lagging/blocking. If there is a solution for this too that would be great.

4: To activate and deactivate the script I used the group, #BadNicks on and #BadNicks end, with the commands for activation and deactivation in the Popups, Channel. This is because it's the only method I know of to create an On/Off for a script. But now every time I connect I get the message "No groups needed to be changed" in the status, which is quite annoying, but I don't know if anything can be done or is it normal?

These are all the problems I've found, at least for now...