Register und Login System

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 Breadfishler,



    Bei meinem Login/Register System bekomme ich keine Errors/Warnings, aber die Spielerdatei wird nicht und somit muss ich mich ständig beim Reloggen wieder Registrieren....


    Hier mal die ganzen sachen Stocks usw. falls ich etwas vergessen habe schreibt es bitte :)
    Hier die Stocks:
    stock Register(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich Regestriert!");
    SpielerReset(playerid);
    return 1;
    }


    stock Login(playerid,key[])
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),false))
    {
    SendClientMessage(playerid,GREEN,"Du hast dich erfolgreich eingeloggt!");
    SpielerLaden(playerid);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Falsches Passwort");
    Kick(playerid);
    }
    return 1; //betroffene Zeile
    }


    stock SpielerSpeichern(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    dini_IntSet(Spieler,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Spieler,"level",sSpieler[playerid][level]);
    dini_IntSet(Spieler,"Fraktion",sSpieler[playerid][Fraktion]);
    }
    return 1;
    }


    stock SpielerLaden(playerid)
    {
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SetPlayerScore(playerid,dini_Int(Spieler,"level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Spieler,"Adminlevel");
    sSpieler[playerid][level] = dini_Int(Spieler,"level");
    sSpieler[playerid][Fraktion] = dini_Int(Spieler,"Fraktion");
    sSpieler[playerid][slogin] = 1;
    }
    return 1; //betroffene Zeile
    }


    stock SpielerReset(playerid)
    {
    sSpieler[playerid][Adminlevel] = 0;
    sSpieler[playerid][level] = 0;
    sSpieler[playerid][Fraktion] = 0;
    return 1;
    }


    die Dialog defines


    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2


    Hier OnPlayerConnect:
    public OnPlayerConnect(playerid)
    {
    //Login
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SendClientMessage(playerid,GELB,"Herzlich Willkommen zurück");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gebe Dein Passwort ein","Login","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid,GELB,"Herzlich Willkommen auf New Generation Reallife");
    //Register
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte wähle ein Passwort um deinen Account zu erstellen","Registrieren","Abbrechen");
    }


    OnPlayerDialogRespone:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    //========Login==================
    if(dialogid == DIALOG_LOGIN)
    {
    if(response == 0)
    {
    Login(playerid,MD5_Hash(inputtext));
    }
    else if(!response)
    {
    SendClientMessage(playerid,ROT,"Du hast deinen Login abgebrochen!");
    Kick(playerid);
    Login(playerid,MD5_Hash(inputtext));
    }
    }
    else if(dialogid == DIALOG_REGISTER)
    {
    if(response == 0)
    {
    if(strlen(inputtext) < 6)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Bitte wähle ein Passwort um deinen Account zu erstellen","Registrieren","Abbrechen");
    return SendClientMessage(playerid, GELB, "Dein Passwort muss aus mindestens 6 Zeichen bestehen.");
    }
    else
    {
    SendClientMessage(playerid,GELB,"[SERVER]Du hast dich Erfolgreich Registriert!");
    SpawnPlayer(playerid);
    Register(playerid,MD5_Hash(inputtext));
    }
    }
    else if(!response)
    {
    SendClientMessage(playerid,ROT,"Du hast die Registration abgebrochen!");
    Kick(playerid);
    }
    }
    return 1;
    }


    Vielen Dank an alle im Vorraus! :):)