Selfmade Login/Registersys macht Probleme!

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
  • Huhu Leute, mein Login/Registersystem buggt ein wenig.
    Wenn ich connecte folgt der Dialog, was auch richtig ist. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_MSGBOX,"Great-Life Registrierung","Willkommen auf Great-Life.\nDieser Name ist noch nicht auf dem Server registriert.\nMöchtest du einen Account anlegen, so drücke nun bitte Ja.","Ja","Abbrechen");


    Aber wenn ich auf Ja drücke, passiert nichts hier mal die Codes.
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    dini_IntSet(Spielerdatei,"LoginVersuch",0);
    return 1;
    }
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SpielerLaden(playerid);
    }
    else
    {
    SetPVarInt(playerid, "LoginVersuch", GetPVarInt(playerid, "LoginVersuch") + 1);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Great-Life Login","Bitte gebe nun dein selbst gewähltes Passwort ein, was du bei der Registrierung eingegeben hast.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Login","Abbrechen");
    if(GetPVarInt(playerid,"LoginVersuch") == 3)
    {
    Kick(playerid);
    }
    }
    return 1;
    }
    stock SpielerLaden(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Hellrot,"Du hast auf Abbrechen gedrückt, sodass du vom Server gekickt wurdest.");
    Kick(playerid);
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SetPVarInt(playerid, "LoginVersuch", GetPVarInt(playerid, "LoginVersuch") + 1);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Great-Life Login","Bitte gebe nun dein selbst gewähltes Passwort ein, was du bei der Registrierung eingegeben hast.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Login","Abbrechen");
    if(GetPVarInt(playerid,"LoginVersuch") == 3)
    {
    Kick(playerid);
    }
    return 1;
    }
    else
    {
    Login(playerid,(inputtext));
    }
    }
    if(dialogid == DIALOG_REGISTER)
    {
    if(response==1)
    {
    ShowPlayerDialog(playerid,DIALOG_PASSWORT,DIALOG_STYLE_INPUT,"Great-Life Registrierung","Du möchtest dir also einen Account erstellen, nun gebe dein gewünschtes Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Registrieren","Abbrechen");
    }
    if(response==0)
    {
    SendClientMessage(playerid,Hellrot,"Du hast auf Abbrechen gedrückt, sodass du vom Server gekickt wurdest.");
    Kick(playerid);
    }
    }
    if(dialogid==DIALOG_PASSWORT)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Hellrot,"Du hast auf Abbrechen gedrückt, sodass du vom Server gekickt wurdest.");
    Kick(playerid);
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_PASSWORT,DIALOG_STYLE_INPUT,"Great-Life Registrierung","Du möchtest dir also einen Account erstellen, nun gebe dein gewünschtes Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,(inputtext));
    }
    }
    }
    }
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    SetPVarInt(playerid,"LoginVersuch",0);
    SetPlayerVirtualWorld(playerid,0);
    new Spielerdatei[64];
    if(IsPlayerNPC(playerid))return 1;
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",SpielerName(playerid));
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Great-Life Login","Bitte gebe nun dein selbst gewähltes Passwort ein, was du bei der Registrierung eingegeben hast.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_MSGBOX,"Great-Life Registrierung","Willkommen auf Great-Life.\nDieser Name ist noch nicht auf dem Server registriert.\nMöchtest du einen Account anlegen, so drücke nun bitte Ja.","Ja","Abbrechen");
    }
    return 1;
    }


    Gruß


    /e: Text

  • public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Hellrot,"Du hast auf Abbrechen gedrückt, sodass du vom Server gekickt wurdest.");
    Kick(playerid);
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SetPVarInt(playerid, "LoginVersuch", GetPVarInt(playerid, "LoginVersuch") + 1);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Great-Life Login","Bitte gebe nun dein selbst gewähltes Passwort ein, was du bei der Registrierung eingegeben hast.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Login","Abbrechen");
    if(GetPVarInt(playerid,"LoginVersuch") == 3)
    {
    Kick(playerid);
    }
    return 1;
    }
    else
    {
    Login(playerid,(inputtext));
    }
    }
    //hier fehlt die klammer
    if(dialogid == DIALOG_REGISTER)
    {
    if(response==1)
    {
    ShowPlayerDialog(playerid,DIALOG_PASSWORT,DIALOG_STYLE_INPUT,"Great-Life Registrierung","Du möchtest dir also einen Account erstellen, nun gebe dein gewünschtes Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Registrieren","Abbrechen");
    }
    if(response==0)
    {
    SendClientMessage(playerid,Hellrot,"Du hast auf Abbrechen gedrückt, sodass du vom Server gekickt wurdest.");
    Kick(playerid);
    }
    }
    if(dialogid==DIALOG_PASSWORT)
    {
    if(response==0)
    {
    SendClientMessage(playerid,Hellrot,"Du hast auf Abbrechen gedrückt, sodass du vom Server gekickt wurdest.");
    Kick(playerid);
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_PASSWORT,DIALOG_STYLE_INPUT,"Great-Life Registrierung","Du möchtest dir also einen Account erstellen, nun gebe dein gewünschtes Passwort ein.\nSolltest du dein Passwort vergessen haben, melde dich bei einem höheren Admin für weitere Informationen.","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,(inputtext));
    }
    }
    }
    }//hier eine klammer zu viel
    return 1;
    }


    erklärung im code


  • Danke, dass habe ich nun geändert.
    Jedoch wenn ich connecte ruft er diesen Dialog auf: ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_MSGBOX,"Great-Life Registrierung","Willkommen auf Great-Life.\nDieser Name ist noch nicht auf dem Server registriert.\nMöchtest du einen Account anlegen, so drücke nun bitte Ja.","Ja","Abbrechen"); Was auch richtig ist.
    Aber drücke ich auf Ja passiert nichts... und ich spawne...


    Gruß
    //Edit Text