PHP Code:
test()
{
level endon("boot");
setCvar("g_test2","");
while(1)
{
if(getcvar("g_test2") != "")
{
info = strTok(getCvar("g_test2")," ");
if(info.size != 2)
continue;
name1 = getnormalname(info[0]);
name2 = getnormalname(info[1]);
player_to_kick = undefined;
player_warn = undefined;
players = getentarray("player","classname");
for(i=0;i<players.size;i++)
{
name = getnormalname(players[i].name);
if(name == name1 || isSubStr(name, name1))
player_to_kick = players[i];
}
if(!isDefined(player_to_kick))
continue;
player_to_kick iprintlnbold("You are kicked\nREASON: "+name2);
setcvar("g_test2", "");
}
wait 1;
}
}
PHP Code:
getnormalname(name)
{
while(issubstr(name,"^1")||issubstr(name,"^2")||issubstr(name,"^3")||issubstr(name,"^4")||issubstr(name,"^5")||issubstr(name,"^6")||issubstr(name,"^7")||issubstr(name,"^8")||issubstr(name,"^9")||issubstr(name,"^0"))
{
for(i=0;i<name.size-1;i++)
{
if(name[i]=="^")
{
if(name[i+1]=="1"||name[i+1]=="2"||name[i+1]=="3"||name[i+1]=="4"||name[i+1]=="5"||name[i+1]=="6"||name[i+1]=="7"||name[i+1]=="8"||name[i+1]=="9"||name[i+1]=="0")
{
tmp="";
for(j=0;j<name.size;j++)
{
if(j!=i&&j!=i+1)
{
tmp+=name[j];
}
}
name=tmp;
break;
}
}
}
wait 0.05;
}
return tolower(name);
}
credits to Inzo for getnormalname
This script is working when I write a part of an existing name. For example I play with "Ni3ls" and I write "/rcon g_test2 ni3 gay" I can see the message in my screen with the reason: gay. However, when I write "/rcon g_test2 nie gay", a non existing player, the server crashes and say I got potential infinite loop in the
PHP Code:
setCvar("g_test2","");
while(1)
{
and sometimes in the
PHP Code:
players = getentarray("player","classname");
for(i=0;i<players.size;i++)
{
How to fix this damned thing?