/warn Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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;
    }


    Funktioniert an sich einwandfrei, jedoch dadurch das ich ihn Kicke, bekommt er keine einzige Nachricht angezeigt ( die er eig angezeigt bekommen soll ).
    Inkl. haut er mich auch ausm Game, wenns die 1 Verwarnung ist.

    ehm. Administration StateV ~ Domi

    Einmal editiert, zuletzt von Dominik ()

  • 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;
    }