The following devoice script floods off after devoicing about 12 nicks (there are about 300 total)

Code:
 
 on @*:text:!devoice:#:{ 
  unset %dv.* 
  if ($nick isop #) { 
    msg #maxfiles 4NOTICE: Channel Server Check. 
    msg #ops !Notice  4,8Devoiced! 
    set %dv.Channel $chan 
    set %dv.TotalVoicedNicks $nick(%dv.Channel,0,v) 
    set %dv.CurrentNick 1 
    while (%dv.CurrentNick <= %dv.TotalVoicedNicks) { 
      set %dv.nick $nick(%dv.channel,%dv.currentnick,v) 
      if (XDCC !isin %dv.nick) && (GAME !isin %dv.nick) { 
        set %dv.NickList $addtok(%dv.NickList,%dv.nick,32) 
        if $numtok(%dv.nicklist,32) == $modespl { 
          .mode %dv.Channel $+(-,$str(v,$modespl)) %dv.nicklist 
          unset %dv.nicklist 
        } 
      } 
      inc %dv.CurrentNick 
    } 
    if %dv.nicklist { 
      .mode %dv.Channel $+(-,$str(v,$modespl)) %dv.nicklist 
      unset %dv.nicklist 
    } 
    dv %dv.Channel 
    unset %dv.* 
  } 
} 

alias dv { mode #max-files -vvvvvv %dv.NickList | mode #max -vvvvvv %dv.NickList | unset %dv.NicksLength | unset %dv.NickList } 




Somebody suggested using

/set %myvariable $&
$1-100 $&
$101-200 $&
$201-300 $&
$301-

but I don't know how to integrate it into the script or if it will work, any suggestions?????