Ich sehe den Fehler.
Du hast es nicht mit geschweiften Klammern markiert, das heißt die Abfrage greift auf nichts zu.
Somit kickt er jedes mal bei /warn.
//EDIT
So ist es richtig:
(Bin mit Handy, einreihen musst du selber machen)
ocmd:warn(playerid,params[])
{
new string[264],Grund[32],pID,spieler[MAX_PLAYER_NAME],admin[MAX_PLAYER_NAME];
if(sscanf(params,"us[32]",pID,Grund)) return SendClientMessage(playerid, GRAU,"Benutze: /warn [playerid] [Grund]");
GetPlayerName(pID,spieler,MAX_PLAYER_NAME);
GetPlayerName(pID,admin,MAX_PLAYER_NAME);
if(SpielerInfo[playerid][pTeam] <= 1) return SendClientMessage(playerid,GRAU,"Dieser Befehl ist für dich nicht verfügbar.");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, GRAU,"Es ist kein Spieler mit diesem/dieser Name/id online.");
SpielerInfo[pID][pWarn] ++;
format(string,sizeof(string),"Du wurdest von Supporter %s verwarnt. Grund: %s",admin,Grund);
SendClientMessage(pID,DUNKELROT,string);
format(string,sizeof(string),"Du hast den Spieler %s verwarnt. Grund: %s",spieler,Grund);
SendClientMessage(playerid,DUNKELROT,string);
format(string,sizeof(string),"Supporter %s hat den Spieler %s verwarnt. Grund: %s",admin,spieler,Grund);
SendAdminMessage(0xFFDC00FF,string);
if(SpielerInfo[playerid][pWarn] == 3)
{
Kick(pID);
format(string,sizeof(string),"Du hast deine 3x Verwarnung erhalten. Dein Account ist somit gesperrt. Grund: %s",Grund);
SendClientMessage(pID,DUNKELROT,string);
format(string,sizeof(string),"%s wurde von %s permanent vom Spielgeschehen ausgeschlossen. Grund: 3x Verwarnungen.",spieler,admin);
SendClientMessageToAll(DUNKELROT,string);
}
return 1;
}