Login-System Verbuggt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Login-System Verbuggt

    Moin Leute,

    mein Login-System ist irgendwie verbuggt!
    Egal was für ein Passwort ich eingebe, ich werde eingeloggt!
    Sachen:

    Unter OnPlayerConnect
    [pwn]if(IsPlayerNPC(playerid))return 1;
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
    }[/pwn]

    Unter OnDialogResponse:


    [pwn]
    if(dialogid==DIALOG_REGISTER)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Hallo schön das du zu uns gefunden hast.\n Gib bitte das gewünschte Passwort ein.","Register","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }

    if(dialogid==DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Schön das du wieder zurück gefunden hat\n Gib dein Passwort ein!","Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }
    [/pwn]

    Die Stocks:

    [pwn]stock Register(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);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
    SetPlayerScore(playerid,1);
    SetPVarInt(playerid,"loggedin",1);
    SetPVarInt(playerid,"Schein",0);
    SetPVarInt(playerid,"Skin",299);
    SetPVarInt(playerid,"Personalausweiß",0);
    SetPVarInt(playerid,"Wanteds",0);
    SetPVarInt(playerid,"AmmuSperre",0);
    SetPVarInt(playerid,"Leader",0);
    GivePlayerMoney(playerid,10000);
    SetPVarInt(playerid,"BankGuthaben",350);
    SpielerSpeichern(playerid);
    return 1;

    }

    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);

    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,ROT,"Du bist noch gebannt. Komm später wieder.");
    Kick(playerid);
    return 1;
    }

    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
    return 1;
    }
    }



    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"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    SetPVarInt(playerid,"Paytime",dini_Int(Spielerdatei,"Paytime"));
    SetPVarInt(playerid,"Skin",dini_Int(Spielerdatei,"Skin"));
    SetPVarInt(playerid,"Schein",dini_Int(Spielerdatei,"Schein"));
    SetPVarInt(playerid,"Personalausweiß",dini_Int(Spielerdatei,"Personalausweiß"));
    SetPVarInt(playerid,"Wanteds",dini_Int(Spielerdatei,"Wanteds"));
    SetPVarInt(playerid,"AmmuSperre",dini_Int(Spielerdatei,"AmmuSperre"));
    SetPVarInt(playerid,"Leader",dini_Int(Spielerdatei,"Leader"));
    SetPVarInt(playerid,"BankGuthaben",dini_Int(Spielerdatei,"BankGuthaben"));

    if(GetPVarInt(playerid,"Baned")==1)
    {
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);

    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,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
    dini_IntSet(Spielerdatei,"Paytime",GetPVarInt(playerid,"Paytime"));
    dini_IntSet(Spielerdatei,"Skin",GetPVarInt(playerid,"Skin"));
    dini_IntSet(Spielerdatei,"Schein",GetPVarInt(playerid,"Schein"));
    dini_IntSet(Spielerdatei,"Personalausweiß",GetPVarInt(playerid,"Personalausweiß"));
    dini_IntSet(Spielerdatei,"Wanteds",GetPVarInt(playerid,"Wanteds"));
    dini_IntSet(Spielerdatei,"AmmuSperre",GetPVarInt(playerid,"AmmuSperre"));
    dini_IntSet(Spielerdatei,"Leader",GetPVarInt(playerid,"Leader"));
    dini_IntSet(Spielerdatei,"BankGuthaben",GetPVarInt(playerid,"BankGuthaben"));

    }

    return 1;
    }
    [/pwn]

    Ich hoffe einer findet den Fehler ;)

    MFG
  • Hey Jan_,
    strcmp löst bei mir immer gleich "hui-buh" aus. Ich bin da echt immer unsicher, ich denke so ergeht es dir auch. Ich würde an deiner Stelle die strcmp-Abfrage schon bei OnDialogResponse => DIALOG_LOGIN stellen, dann hast du es "gleich hinter dir". :P
    Ansonsten habe ich hier mal eine strcmp-Abfrage aus meinem Script:
    [pwn]if(strcmp(getName(playerid), Haus[getNearestHouse(playerid)][hOwner], true))[/pwn]
    Angepasst auf dein Code sähe das so aus, probiere es mal!:
    [pwn]if(strcmp(key, dini_Get(Spielerdatei,"Passwort"), true))[/pwn]

    Grüße!