Ban Abfrage bei Login

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
  • Hallo Breadfisher,


    ich habe hier ein login-system


    dcmd_login(playerid,params[])
    {
    new pass[256];
    new playername[MAX_PLAYER_NAME];
    new string[256];


    if(sscanf(params, "s",pass))
    {
    return SendClientMessage(playerid,weiß,"Benutzung: /login [Password]");
    }
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"%s.dini",playername);


    if(!dini_Exists(string))
    {
    SendClientMessage(playerid,rot,"Fehler: Es existiert noch keine Spielerdatei. Benutze /register");
    return 1;
    }
    else
    {
    if(strcmp(pass,dini_Get(string,"Password"),true)==0)
    {
    PlayerInfo[playerid][pCash] = dini_Int(string,"Geld");
    PlayerInfo[playerid][pAdmin] = dini_Int(string,"Admin");
    PlayerInfo[playerid][pKills] = dini_Int(string,"Kills");
    PlayerInfo[playerid][pTode] = dini_Int(string,"Tode");
    PlayerInfo[playerid][pTode] = dini_Int(string,"Warn");
    PlayerInfo[playerid][pPrison] = dini_Int(string,"Prison");
    PlayerInfo[playerid][pBan] = dini_Int(string,"Ban");



    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
    IstEingeloggt[playerid] = 1;
    SendClientMessage(playerid,weiß,"Erfolgreich eingeloggt");


    new string3[256];
    format(string3,sizeof(string3),"Spieler %s hat sich eingeloggt. PW: %s",playername,pass);


    print("-----");
    print(string3);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Fehler: Das ist das falsche Passwort");
    new string3[256];
    format(string3,sizeof(string3),"Spieler %s hat versuch sich mit dem falschen Passwort einzuloggen. aPW: %s",playername,pass);

    print("-----");
    print(string3);
    return 1;
    }
    }


    if(PlayerInfo[playerid][pBan] == 1)
    {
    SendClientMessage(playerid,braun,"Du wurdet gekickt, da du früher schon mal gebannt wurdest");
    Kick(playerid);


    new string2[256];
    format(string2,sizeof(string2),"Spieler %s wurde gekickt, da er gebannt ist",playername);


    return 1;
    }

    if(PlayerInfo[playerid][pPrison] == 1)
    {
    SetPlayerPos(playerid,264.4514,77.2993,1001.0391);
    SetPlayerInterior(playerid,6);
    ResetPlayerWeapons(playerid);


    new string4[256];
    format(string4,sizeof(string4),"Spieler %s ist ins Prison gewandert da er vorher darin geleavt ist",playername);
    print("-----");
    print(string4);
    return 1;
    }
    return 1;
    }


    Darin habe ich ein warn, wenn ich compile


    Zitat

    gamemodes\Mafia-Policev4.pwn(2134) : warning 225: unreachable code


    Dieser Warn bezieht sich auf die Zeile


    if(PlayerInfo[playerid][pBan] == 1)


    doch genau so , wenn ich diese Abfrage ausklammer bei


    if(PlayerInfo[playerid][pPrison] == 1)


    Weiß jemand woran das liegt ?


    MFG


    Hagi

  • Sowas kommt, wenn du einen return nicht am Ende einer Funktion und auch nicht in einem anderem Codeblock (if, while, ...) packst ;)
    Schaue dir mal deine if Abfragen an, dann wirst du feststellen, dass du immer returnst, so dass der restliche Code in gar keinem Falle aufgerufen werden kann!
    Der PAWN Compiler ist intelligenter als ich dachte ^^

    90% der Breadfish Mitglieder sind kiddys, wenn du mir auch zustimmst dann kopiere diesen Text in deine Signatur!