[Problem] Login/register

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
  • Hey,
    ich habe ein selbstgemachtes Login/register system gemacht, doch es speicher beim regestrieren nix.... Keine errors. Keine Warns.


    Hier:
    #include <dini>
    #include <dubd>


    enum sDaten
    {
    passwort[128],
    pLevel,
    pTut,
    pSex,
    pAlter,
    pGeld,
    pBGeld,
    pFahrschein,
    pWSchein,
    pSkin,
    pWanteds,
    pKills,
    pTode,
    pRespekt,
    pAdmin,
    pTelNr
    };
    new SpielerInfo[MAX_PLAYERS][sDaten];


    new bool:loggedin[MAX_PLAYERS];


    forward SavePlayer(playerid);
    forward LoadPlayer(playerid);


    public OnPlayerConnect(playerid)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    if(dini_Exists(save))
    {
    SendClientMessage(playerid, FARBE, "Willkommen auf [SERVERNAME]");
    SendClientMessage(playerid, FARBE, "Benutze: /login [passwort]");
    }
    else if(!dini_Exists(save))
    {
    SendClientMessage(playerid, FARBE, "Willkommen auf [SERVERNAME]");
    SendClientMessage(playerid, FARBE, "Um Spielen zu können, musst du dich regestrieren.");
    SendClientMessage(playerid, FARBE, "Benutze: /register [passwort]");
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SavePlayer(playerid);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    if(loggedin[playerid] == false)
    {
    SendClientMessage(playerid, FARBE, "Du musst dich Einloggen bevor du spawnst!");
    Kick(playerid);
    }
    SetPlayerSkin(playerid, dini_Int(save,"Skin"));
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new spieler[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid, FARBE, "Benutzung: /register [Passwort]");
    }
    else
    {
    new save[40];
    format(save, sizeof(save),"Spieler/%s.ini",spieler);
    if(!dini_Exists(save))
    {
    dini_Create(save);
    dini_IntSet(save,"passwort", udb_hash(strget(cmdtext,1)));
    SendClientMessage(playerid, FARBE, "Du hast dich erfolgreich regestriert.");
    SendClientMessage(playerid, FARBE, "Jetzt folgt ein kleines Tutorial!");
    LoadPlayer(playerid);
    loggedin[playerid] = true;
    }
    else
    {
    if(dini_Exists(save))
    {
    SendClientMessage(playerid, FARBE, "Der Account ist bereits registriert");
    }
    }
    }
    return 1;
    }

    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    if(!strlen(strget(cmdtext,1)))
    {
    SendClientMessage(playerid, FARBE, "Benutzung: /login [Passwort]");
    }
    else
    {
    new save[40], s2[256];
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save))
    {
    s2 = dini_Get(save,"passwort");
    if(strval(s2) == udb_hash(strget(cmdtext,1)))
    {
    loggedin[playerid] = true;
    SendClientMessage(playerid, FARBE, "Du hast dich erfolgreich eingeloggt.");
    LoadPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid, FARBE, "Passwort Falsch!");
    }
    }
    }
    return 1;
    }


    return 0;
    }


    public LoadPlayer(playerid)
    {
    new spieler[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    new save[40];
    format(save,sizeof(save),"/Spieler/%s.ini",spieler);
    SpielerInfo[playerid][pLevel] = dini_Int(save,"Level");
    SpielerInfo[playerid][pKills] = dini_Int(save,"Kills");
    SpielerInfo[playerid][pTode] = dini_Int(save,"Tode");
    SpielerInfo[playerid][pTut] = dini_Int(save,"Tutorial");
    SpielerInfo[playerid][pSex] = dini_Int(save,"Geschlecht");
    SpielerInfo[playerid][pAlter] = dini_Int(save,"Alter");
    SpielerInfo[playerid][pGeld] = dini_Int(save,"Geld");
    SpielerInfo[playerid][pBGeld] = dini_Int(save,"Bank-Geld");
    SpielerInfo[playerid][pFahrschein] = dini_Int(save,"Fuehrerschein");
    SpielerInfo[playerid][pWSchein] = dini_Int(save,"Waffenschein");
    SetPlayerWantedLevel(playerid, dini_Int(save,"Wanteds"));
    SpielerInfo[playerid][pRespekt] = dini_Int(save,"Respekt");
    SpielerInfo[playerid][pAdmin] = dini_Int(save,"Admin");
    SpielerInfo[playerid][pTelNr] = dini_Int(save,"Telefon-Nummer");
    SpawnPlayer(playerid);
    return 1;
    }


    public SavePlayer(playerid)
    {
    new spieler[MAX_PLAYER_NAME];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    new save[40];
    format(save,sizeof(save),"/Spieler/%s.ini",spieler);
    dini_IntSet(save,"Level",SpielerInfo[playerid][pLevel]);
    dini_IntSet(save,"Kills",SpielerInfo[playerid][pKills]);
    dini_IntSet(save,"Tode",SpielerInfo[playerid][pTode]);
    dini_IntSet(save,"Tutorial",SpielerInfo[playerid][pTut]);
    dini_IntSet(save,"Geschlecht",SpielerInfo[playerid][pSex]);
    dini_IntSet(save,"Alter",SpielerInfo[playerid][pAlter]);
    dini_IntSet(save,"Geld",SpielerInfo[playerid][pGeld]);
    dini_IntSet(save,"Bank-Geld",SpielerInfo[playerid][pBGeld]);
    dini_IntSet(save,"Fuehrerschhein",SpielerInfo[playerid][pFahrschein]);
    dini_IntSet(save,"Waffenschein",SpielerInfo[playerid][pWSchein]);
    dini_IntSet(save,"Wanteds",GetPlayerWantedLevel(playerid));
    dini_IntSet(save,"Respekt",SpielerInfo[playerid][pRespekt]);
    dini_IntSet(save,"Admin",SpielerInfo[playerid][pAdmin]);
    dini_IntSet(save,"Telefon-Nummer",SpielerInfo[playerid][pTelNr]);
    return 1;
    }


    Hoffe ihr findet den fehler :/


    MfG
    Melle :thumbup:


    /Edit Pls helft mir ^^


    /Edit² kommt schon -.-

    2 Mal editiert, zuletzt von {NeRo} ()

  • Kommt den irgeneine Nachricht, wenn du /register machst?
    Also z. B. "Du hast dich erfolgreich registriert..."?
    Wenn nein, dann solltest du das strget bei jedem strcmp rauslöschen.
    Ich weiß jetzt nicht ob die Befehle auch mit gehen, aber ich kenns normal so:
    if(strcmp(cmdtext, "/register", true) == 0)


    //Edit: Schwachsinn, du überträgst ja garkeine Parameter!
    Benutz dcmd in Verbindung mit sscanf, ist das beste was du machen kannst.