One point here is your %used,ports variable having spaces before the tokens. This makes your tokens resolve to " Harl.xxxxx" instead of "Harl.xxxxx".
If you set it as so -> Harl.27500,Harl.27506,Harl.27508 <- it will work a lot better
BTW, to add tokens to it without spaces, and ensuring there are no doubleups,
/set %used.ports $addtok(%used.ports,Nick.12345,44)This code assumes you have removed the spaces from %used.ports first.
on *:text:$($me kill &):#winbolo:{
var %a = . $+ $3
if $matchtok(%used.ports,%a,1,44) {
var %tok = $v1
if $+($nick,%a) == %tok || $nick isop # || $nick == %owner {
run wonkaDSctl.exe quit $3
set %used.ports $remtok(%used.ports,%tok,44)
msg #winbolo Bang! $nick has just killed game on port $3
}
else msg #winbolo Sorry, only the person that started the game, the bot owner or an op may kill that game.
}
else msg #winbolo Sorry, that game wasn't found.
}