/warn befehl 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
  • Hab paar warnings die mich stören und die Warns werden nicht in der userdatei gespeichert, ich hoffe ihr könnt helfen..
    Und ja in der Userdatei ist Warns Enthalten :D


    if(strcmp(cmd,"/warn",true)==0)
    {
    new tmp[128];
    new otherplayerid=ReturnUser(tmp);
    if(SpielerInfo[playerid][Adminlevel] >=2)
    {

    new string[128];
    new Spieler[MAX_PLAYER_NAME];
    new AndererSpieler[MAX_PLAYER_NAME];


    if(!strlen(tmp))
    {
    SendClientMessage(playerid, rERROR, "Verwende: /warn [ID].");
    return 1;
    }
    GetPlayerName(playerid,Spieler,sizeof(Spieler));
    GetPlayerName(otherplayerid,AndererSpieler,sizeof(AndererSpieler));
    format(string,sizeof(string), "ADMIN: Admin %s hat dir einen Warn gegeben.",Spieler);
    SendClientMessage(otherplayerid, ADM_G,string);
    SpielerInfo[otherplayerid][Warns]+=1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, rERROR, "Du hast nicht den nötigen Admin Rank um den Befehl zu nutzen.");
    return 1;
    }
    if(SpielerInfo[otherplayerid][Warns] == 4) // Zeile 303
    {
    new AndererSpieler[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(otherplayerid,AndererSpieler,sizeof(AndererSpieler));
    format(string,sizeof(string),"%s wurde soeben gebannt. Grund: 4 Warns.",AndererSpieler);
    SendClientMessageToAll(ADM_G,string);
    Ban(otherplayerid);
    return 1;
    }
    }


    C:\Users\User\Desktop\selfmade server 0.3c rc 5\gamemodes\fogself.pwn(303) : warning 225: unreachable code
    C:\Users\User\Desktop\selfmade server 0.3c rc 5\gamemodes\fogself.pwn(303) : warning 217: loose indentation


    danke schonmal im vorraus.


    Mfg Niko



    //edit: Info hinzugefügt


    //edit: kann mir keiner helfen?

    2 Mal editiert, zuletzt von Niko1561 ()

  • hab in dem enum ganz normal Warns:
    und dann bei speichern und laden


    enum SInfo
    {
    Adminlevel,
    eingeloggt,
    skin,
    WantedLevel,
    pMember,
    pLeader,
    Gebannt,
    Warns
    }
    new SpielerInfo[MAX_PLAYERS][SInfo];


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"WantedLevel"));
    SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
    SpielerInfo[playerid][pMember]=dini_Int(Spielerdatei,"pMember");
    SpielerInfo[playerid][pLeader]=dini_Int(Spielerdatei,"pLeader");
    SpielerInfo[playerid][skin]=SetPlayerSkin(playerid, dini_Int(Spielerdatei,"skin"));
    SpielerInfo[playerid][eingeloggt]=1;
    SpielerInfo[playerid][Gebannt] = dini_Int(Spielerdatei,"Gebannt");
    SpielerInfo[playerid][Warns]=dini_Int(Spielerdatei,"Warns");


    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",SpielerInfo[playerid][Adminlevel]);
    dini_IntSet(Spielerdatei,"pMember",SpielerInfo[playerid][pMember]);
    dini_IntSet(Spielerdatei,"WantedLevel",SpielerInfo[playerid][WantedLevel]);
    dini_IntSet(Spielerdatei,"skin",SpielerInfo[playerid][skin]);
    dini_IntSet(Spielerdatei,"Gebannt",SpielerInfo[playerid][Gebannt]);
    dini_IntSet(Spielerdatei,"pLeader",SpielerInfo[playerid][pLeader]);
    SpielerInfo[playerid][pMember]=0;
    SpielerInfo[playerid][pLeader]=0;
    SpielerInfo[playerid][eingeloggt]=0;
    SpielerInfo[playerid][Gebannt] = 0;
    SpielerInfo[playerid][skin]=GetPlayerSkin(playerid);
    dini_IntSet(Spielerdatei,"Warns",SpielerInfo[playerid][Warns]);


    return 1;
    }


    stock ResetVariablen(playerid)
    {
    SpielerInfo[playerid][Adminlevel]=0;
    SpielerInfo[playerid][Fraktion]=0;
    SpielerInfo[playerid][WantedLevel]=0;
    SpielerInfo[playerid][Gebannt] = 0;
    SpielerInfo[playerid][Warns] = 0;
    SpielerInfo[playerid][skin] = 0;
    return 1;
    }

  • srry kann dir beim besten willen nicht sagen warum es nicht funktioniert wenns da unten ist
    wenn du es ganz oben hin machst funktionierts jedenfalls und macht ja eig kein unterschied obs unen oder oben ist^^


    if(strcmp(cmd,"/warn",true)==0)
    {
    new tmp[128];
    new otherplayerid=ReturnUser(tmp);
    if(SpielerInfo[otherplayerid][Warns] == 3) // Zeile 303
    {
    new AndererSpieler[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(otherplayerid,AndererSpieler,sizeof(AndererSpieler));
    format(string,sizeof(string),"%s wurde soeben gebannt. Grund: 4 Warns.",AndererSpieler);
    SendClientMessageToAll(ADM_G,string);
    Ban(otherplayerid);
    return 1;
    }
    if(SpielerInfo[playerid][Adminlevel] >=2)
    {


    new string[128];
    new Spieler[MAX_PLAYER_NAME];
    new AndererSpieler[MAX_PLAYER_NAME];




    if(!strlen(tmp))
    {
    SendClientMessage(playerid, rERROR, "Verwende: /warn [ID].");
    return 1;
    }
    GetPlayerName(playerid,Spieler,sizeof(Spieler));
    GetPlayerName(otherplayerid,AndererSpieler,sizeof(AndererSpieler));
    format(string,sizeof(string), "ADMIN: Admin %s hat dir einen Warn gegeben.",Spieler);
    SendClientMessage(otherplayerid, ADM_G,string);
    SpielerInfo[otherplayerid][Warns]+=1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, rERROR, "Du hast nicht den nötigen Admin Rank um den Befehl zu nutzen.");
    return 1;
    }
    }


    probiers ma aus un sach bescheid obs geht^^


    //edit
    aus 4 warns 3 gemacht weil er erst einen warn dazu bekomm nachdem schon überprüft wurde ob er 4 stück hat
    also auf die 3 gesetzt so dass es keinen unterschied macht^^

    2 Mal editiert, zuletzt von hacken ()

  • ist mir auch direkt danach eingefallen hatte dann auch direkt nen edit gemacht aber du warst wohl schneller^^


    sach bescheid wenn du noch hilfe brauchst ^^



    //edit
    kennt er den befehl nicht mehr oder funktioniert er nicht mehr?
    also sendet er dir server unkown command oda geht nix
    kannst a mal in deiner spielerdatei das adminlevel auf 0 setzen und nochmal überprüfen

    Einmal editiert, zuletzt von hacken ()

  • if(strcmp(cmd,"/warn",true)==0)
    {
    new tmp[128];
    tmp = strtok(cmdtext, idx);
    new otherplayerid=strval(tmp);
    if(SpielerInfo[otherplayerid][Warns] == 3) // Zeile 303
    {
    new AndererSpieler[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(otherplayerid,AndererSpieler,sizeof(AndererSpieler));
    format(string,sizeof(string),"%s wurde soeben gebannt. Grund: 4 Warns.",AndererSpieler);
    SendClientMessageToAll(ADM_G,string);
    Ban(otherplayerid);
    return 1;
    }
    if(SpielerInfo[playerid][Adminlevel] >=2)
    {


    new string[128];
    new Spieler[MAX_PLAYER_NAME];
    new AndererSpieler[MAX_PLAYER_NAME];




    if(!strlen(tmp))
    {
    SendClientMessage(playerid, rERROR, "Verwende: /warn [ID].");
    return 1;
    }
    GetPlayerName(playerid,Spieler,sizeof(Spieler));
    GetPlayerName(otherplayerid,AndererSpieler,sizeof(AndererSpieler));
    format(string,sizeof(string), "ADMIN: Admin %s hat dir einen Warn gegeben.",Spieler);
    SendClientMessage(otherplayerid, ADM_G,string);
    SpielerInfo[otherplayerid][Warns]+=1;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, rERROR, "Du hast nicht den nötigen Admin Rank um den Befehl zu nutzen.");
    return 1;
    }
    return 1;
    }


    probiers so noch mal ^^