Register System: man kann sich mit Enter einloggen brauche hilfe

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
  • Normalerweise vergleichst du in einer Anfrage, ob der inputtext mit dem gespeicherten Passwort übereinstimmt. Strcmp gibt auch 0 zurück, wenn einer der strings leer ist. Du musst also noch && strlen(inputtext) einfügen

  • Das ist der Code:


    if(dialogid == REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast den Vorgang abgebrochen und wurdest gekickt");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_ROT,"Dein Passwort erfüllt die Vorraussetzungen nicht!");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Register","Wolkommen,\nDu hast noch kein Account bei uns erstellt.\nBitte beachte das du niemanden deine Account Daten gibst.\n\nTipp: Nimm nicht etwas wie 123 oder Passwort\nEs könnte sonst dein Account gefährden","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    return 1;
    }
    }
    }
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast den Vorgang abgebrochen und wurdest gekickt");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    return 1;
    }
    Und 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,"Name",Sname);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Geld",0);
    dini_IntSet(Spieler,"VIP",0);
    dini_IntSet(Spieler,"Clan",0);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Baned",0);
    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,COLOR_WEIß,"Erfolgreich eingeloggt!");
    SendClientMessage(playerid,COLOR_WEIß,"Um zu spawnen, klicke auf den Spawn Button!"); //Kann sein dass das bei dir nicht nötig ist
    SpielerLaden(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_ROT,"Das Passwort ist falsch!");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Wilkommen,\nDein Account wurde gefunden.\nLogge dich mit deinem Passwort ein:","Login","Schließen");
    return 1;
    }
    }

  • if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_ROT,"Du hast den Vorgang abgebrochen und wurdest gekickt");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(strlen(inputtext)) return ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das Passwort war nicht lang genug, wiederhole die Eingabe!","Login","");
    Login(playerid,inputtext);
    return 1;
    }
    }