Problem mit Register/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,


    ich habe mit einem Tut ein Register/Login System gescriptet.
    Nun kommen Errors.
    Errors & die Zeilen stehen hier:

    Zeile (166) : Nicht erreichbarer Code
    Zeile (172) : Falsche Parameter (zuwenige/zuviele)
    Zeile (178) : Falsche Parameter (zuwenige/zuviele)
    Zeile (414) : Falsche Parameter (zuwenige/zuviele)
    Zeile (424) : warning 209: function "OnDialogResponse" should return a value
    Zeile (424) : Unbekannte Funktion
    Zeile (426) : Unbekannte Funktion
    Zeile (430) : Unbekannte Funktion
    Zeile (432) : Unbekannte Funktion
    Zeile (434) : Unbekannte Funktion
    Zeile (438) : Unbekannte Funktion
    Zeile (440) : Unbekannte Funktion
    Zeile (440 -- 441) : Unbekannte Funktion
    Zeile (440 -- 444) : Unbekannte Funktion
    Zeile (440 -- 444) : Zuviele Fehler in einer Zeile


    return 1;

    new Spieler[64]; //Zeile 166
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {


    {
    SendClientMessage(playerid,COL_RED,"Herzlich Willkommen auf San Francisco Roleplay"); //Zeile 172
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde in unserer Datenbank gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COL_RED,"Herzlich Willkommen auf San Francisco Roleplay"); //Zeile 178
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COL_RED,"Du hast den Authenfizierungs Prozess abgebrochen..."); //Zeile 414
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    Login(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    if(dialogid == REGISTER) //Zeile 424
    {
    if(response == 0) //Zeile 426
    {
    SendClientMessage(playerid,Blau,"Du hast den Registrierungs Vorgang abgebrochen");
    Kick(playerid);
    return 1; //Zeile 430
    }
    if(response == 1)//Zeile 432
    {
    if(!strlen(inputtext)) //Zeile 434
    {
    SendClientMessage(playerid,Blau,"Bitte gebe ein Passwort ein");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    return 1; //Zeile 438
    }
    Register(playerid,MD5_Hash(inputtext)); //Zeile 440
    return 1;
    }
    }
    return 1; //Zeile 444
    }


    Hoffentlich kann mir jemand helfen :)


    Mfg Mike

    2 Mal editiert, zuletzt von DHDesign ()

  • Hallo :)


    Nun kommen noch diese Errors:


    Zeile (136) : warning 225: unreachable code
    Zeile (165) : warning 225: unreachable code
    Zeile (168) : warning 225: unreachable code
    Zeile (174) : error 035: argument type mismatch (argument 2)
    Zeile (180) : error 035: argument type mismatch (argument 2)
    Zeile (417) : error 035: argument type mismatch (argument 2)
    Zeile (457) : warning 217: loose indentation
    Zeile (469) : warning 217: loose indentation



    new Spieler[64]; //168
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    SendClientMessage(playerid,COL_RED,"Herzlich Willkommen auf San Francisco Roleplay"); //174
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde in unserer Datenbank gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COL_RED,"Herzlich Willkommen auf San Francisco Roleplay"); //180
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    return 1;
    }
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COL_RED,"Du hast den Authenfizierungs Prozess abgebrochen..."); //417
    Kick(playerid);
    return 1;
    }


    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);
    SpielerReset(playerid);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich registriert");
    SpawnPlayer(playerid);
    return 1; //469
    }

  • Warum auf Pastebin? Konnte die 3 Errors beheben habe nun noch 2 Warnings...


    Zeile (168) : warning 225: unreachable code
    Zeile (469) : warning 217: loose indentation



    new Spieler[64]; //168
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {


    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);
    SpielerReset(playerid);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich registriert");
    SpawnPlayer(playerid);
    return 1; //469
    }

  • Die Zeile wurde falsch eingerückt...
    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);
    SpielerReset(playerid);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich registriert");
    SpawnPlayer(playerid);
    return 1; //469 FALSCH EINGERÜCKT! ;)
    }


    Mein Schatz:*

  • Okay ;)
    Eigentlich funktioniert alles, man kann sich registrieren und in den Scriptfiles wird auch eine Datei mit den dem Name erstellt.
    Das Problem ist wen man neu connected muss man sich immer und immer wieder neu registrieren....
    Hier das ganze Register/Login Script:


    #include <Dini>
    #include <MD5>


    #define REGISTER 1
    #define LOGIN 2


    enum SpielerDaten
    {
    Adminlevel,
    Level,
    Fraktion,
    Team,
    sLogin
    };


    new sSpieler[MAX_PLAYERS][SpielerDaten];


    public OnPlayerConnect(playerid)
    {
    SendClientMessage(playerid,Admin,"Herzlich Willkommen auf San Francisco Roleplay");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    new pName[MAX_PLAYER_NAME];
    new string[48];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "%s hat den Server Betreten.", pName);
    SendClientMessageToAll(0xAAAAAAAA, string);
    return 1;


    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,Blau,"Herzlich Willkommen auf San Francisco Roleplay");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde in unserer Datenbank gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Blau,"Herzlich Willkommen auf San Francisco Roleplay");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    return 1;
    }
    }


    sSpieler[playerid][sLogin] = 0;
    SpielerSpeichern(playerid);
    new pName[MAX_PLAYER_NAME];
    new string[56];

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == LOGIN)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Blau,"Du hast den Authenfizierungs Prozess abgebrochen...");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    Login(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    if(dialogid == REGISTER)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Blau,"Du hast den Registrierungs Vorgang abgebrochen");
    Kick(playerid);
    return 1;
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,Blau,"Bitte gebe ein Passwort ein");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    return 1;
    }
    Register(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    return 1;
    }


    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }


    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);
    SpielerReset(playerid);
    dini_Create(Spieler);
    dini_Set(Spieler,"Passwort",key);
    dini_IntSet(Spieler,"Adminlevel",0);
    dini_IntSet(Spieler,"Level",0);
    dini_IntSet(Spieler,"Fraktion",0);
    dini_IntSet(Spieler,"Team",0);
    SendClientMessage(playerid,Blau,"Du hast dich erfolgreich registriert");
    SpawnPlayer(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,Blau,"Login erfolgreich . . . Spielerdaten werden geladen!");
    SpielerLaden(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Blau,"Das eingebene Passwort ist inkorrekt!");
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","{FEFEFE}Dein {FF9600}Account {FEFEFE}wurde in unserer Datenbank gefunden, bitte gebe nun dein Passwort ein und logge dich somit ein.","Login","Abbrechen");
    return 1;
    }
    }


    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]);
    dini_IntSet(Spieler,"Team",sSpieler[playerid][Team]);
    }
    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][Team] = dini_Int(Spieler,"Team");
    sSpieler[playerid][sLogin] = 1;
    SpawnPlayer(playerid);
    }
    return 1;
    }


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


    //Login
    stock IstSpielerLogged(playerid)
    {
    if(sSpieler[playerid][sLogin] == 1) return 1;
    return 0;
    }


    //Edit 1 Code bearbeitet

    Einmal editiert, zuletzt von DHDesign ()

  • 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))
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Einloggen","Bitte gib dein Passwort ein!","Einloggen","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    }


    das bei onplayerconnect

  • Jetzt habe ich 2 Warnings.


    Zeile (168) : warning 225: unreachable code
    Zeile (180) : warning 209: function "OnPlayerConnect" should return a value


    new Spieler[64]; //168
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Einloggen","Bitte gib dein Passwort ein!","Einloggen","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    }
    } //180

    Ich probier es trotzdem mal aus.


    //Edit Funktioniert leider immer noch nicht. Nach reconnect muss ich mich neu registrieren...

  • new Spieler[64]; //168
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
    if(dini_Exists(Spieler))
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Einloggen","Bitte gib dein Passwort ein!","Einloggen","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte wähle ein Passwort um dir einen Account zu erstellen!","Registrieren","Abbrechen");
    }
    } //180