Login 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
  • habe ein login problem ich kan jedes x belibige passwort eingeben und ich komme rein.
    manchmal is vor dem passwort in der txt son zeichen üy also über dem y zwei punkte.


    stock Anmelden(playerid,key[])
    {
    new Spielerdatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",Name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SpielerLaden(playerid);
    SendClientMessage(playerid,FARBE_GRUEN,"Willkommen, du hast dich mit Erfolg eingeloggt!");
    SpawnPlayer(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"FALSCHES PASSWORT");
    ShowPlayerDialog(playerid,DIALOG_ANMELDEN,DIALOG_STYLE_INPUT,"Anmelden","Willkommen dein Account wurde gefunden.\nGebe bitte dein Passwort ein:","Anmelden","Abbrechen");
    return 1;
    }
    }

  • stock Registrieren(playerid,key[])
    {
    new Spielerdatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",Name);
    dini_Create(Spielerdatei);
    SetPVarInt(playerid,"loggedin",1);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"Level",0);
    dini_IntSet(Spielerdatei,"Money",0);
    dini_IntSet(Spielerdatei,"aLevel",0);
    dini_IntSet(Spielerdatei,"Fraktion",0);
    dini_IntSet(Spielerdatei,"Ban",0);
    dini_IntSet(Spielerdatei,"Führerschein",0);
    dini_IntSet(Spielerdatei,"Flugzeug Schein",0);
    dini_IntSet(Spielerdatei,"Motorradschein",0);
    dini_IntSet(Spielerdatei,"LKW Schein",0);
    dini_IntSet(Spielerdatei,"Heli Schein",0);
    dini_IntSet(Spielerdatei,"Boot Schein",0);
    SendClientMessage(playerid,FARBE_GRUEN,"Herzlichen Glueckwunsch, du hast dich Erfolgreich Registriert!");
    SpawnPlayer(playerid);
    return 1;
    }


    stock Anmelden(playerid,key[])
    {
    new Spielerdatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",Name);
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SpielerLaden(playerid);
    SendClientMessage(playerid,FARBE_GRUEN,"Willkommen, du hast dich mit Erfolg eingeloggt!");
    SpawnPlayer(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"FALSCHES PASSWORT");
    ShowPlayerDialog(playerid,DIALOG_ANMELDEN,DIALOG_STYLE_INPUT,"Anmelden","Willkommen dein Account wurde gefunden.\nGebe bitte dein Passwort ein:","Anmelden","Abbrechen");
    return 1;
    }
    }


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    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,"Money",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"aLevel",GetPVarInt(playerid,"aLevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Ban",GetPVarInt(playerid,"Ban"));
    dini_IntSet(Spielerdatei,"Führerschein",GetPVarInt(playerid,"Führerschein"));
    dini_IntSet(Spielerdatei,"Motorradschein",GetPVarInt(playerid,"Motorradschein"));
    dini_IntSet(Spielerdatei,"LKW Schein",GetPVarInt(playerid,"LKW Schein"));
    dini_IntSet(Spielerdatei,"Heli Schein",GetPVarInt(playerid,"Heli Schein"));
    dini_IntSet(Spielerdatei,"Flugzeug Schein",GetPVarInt(playerid,"Flugzeug Schein"));
    dini_IntSet(Spielerdatei,"Boot Schein",GetPVarInt(playerid,"Boot Schein"));
    return 1;
    }
    return 1;
    }


    stock SpielerLaden(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"));
    SetPlayerMoney(playerid,dini_Int(Spielerdatei,"Money"));
    SetPVarInt(playerid,"aLevel",dini_Int(Spielerdatei,"aLevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Führerschein",dini_Int(Spielerdatei,"Führerschein"));
    SetPVarInt(playerid,"Motorradschein",dini_Int(Spielerdatei,"Motorradschein"));
    SetPVarInt(playerid,"LKW Schein",dini_Int(Spielerdatei,"LKW Schein"));
    SetPVarInt(playerid,"Heli Schein",dini_Int(Spielerdatei,"Heli Schein"));
    SetPVarInt(playerid,"Flugzeug Schein",dini_Int(Spielerdatei,"Flugzeug Schein"));
    SetPVarInt(playerid,"Boot Schein",dini_Int(Spielerdatei,"Boot Schein"));
    SetPVarInt(playerid,"Ban",dini_Int(Spielerdatei,"Ban"));
    SetPVarInt(playerid,"loggedin",1);
    if(GetPVarInt(playerid,"Ban") == 1)
    {
    GameTextForPlayer(playerid,"~r~Du bist Gebannt",4,1);
    Kick(playerid);
    return 1;
    }
    return 1;
    }

  • Lass dir mal beide Passwörter in deiner Anmelde-Funktion ausgeben, das eingetippte sowie das gespeicherte:
    printf("Passwort: %s | %s",key,dini_Get(Spielerdatei,"Passwort"));
    damit kannst du ausschließen, dass das Passwort falsch an die Funktion übergeben wird bzw. falsch aus der Datei gelesen wird.


    edit: Oh total überlesen

    Zitat

    manchmal is vor dem passwort in der txt son zeichen üy also über dem y zwei punkte.

    . Hast du deine Spieler-Datei mit dem Editor geöffnet und bearbeitet?


  • stock Anmelden(playerid,key[])
    {
    new Spielerdatei[64];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",Name);
    printf("Passwort: %s | %s",key,dini_Get(Spielerdatei,"Passwort"));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SpielerLaden(playerid);
    SendClientMessage(playerid,FARBE_GRUEN,"Willkommen, du hast dich mit Erfolg eingeloggt!");
    SpawnPlayer(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"FALSCHES PASSWORT");
    ShowPlayerDialog(playerid,DIALOG_ANMELDEN,DIALOG_STYLE_INPUT,"Anmelden","Willkommen dein Account wurde gefunden.\nGebe bitte dein Passwort ein:","Anmelden","Abbrechen");
    return 1;
    }
    }


    Danach müsste im Serverlog "Passwort: ... | ..." stehen. Ich glaube aber eher es liegt daran, dass du die Datei von Hand bearbeiten wolltest. Kann dir zwar gerade nicht genau sagen woran es liegt, aber wenn du die Datei mit dem normalen Windows Editor öffnest und speicherst stimmt manchmal etwas mit den Zeichen nicht mehr. (Vielleicht kann ja jemand genauer erläutern wieso das so ist etc.)