Script probleme

  • Guten morgen,


    Habe ein großes problem habe von mrmonat die tutorials geschaut habe bis zu dem punkt login und register usw.. gemacht .
    Jetzt ist das problem bei ihm hat das geklappt bei mir nicht. Wenn ich auf den Server joine und dann mich registriere dann bekomme ich auch einen eintrag in der datenbank.
    Aber... wenn ich dann /q mache und mit dem selben namen wieder on gehe bekomme ich nciht das login fenster sondern wieder das registrieren fenster.
    Und er legt mit dem selben namen noch einen eintrag an in der datenbank.



    MFG. GZUZ_187


  • public OnUserCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    //Registrierung
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
    }
    else
    {
    //Login
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gibt bitte dein Passwort ein:","Okay","Abbrechen");
    }
    return 1;
    }



    public OnPlayerConnect(playerid)
    {
    //Login/Register
    new name[MAX_PLAYER_NAME],query[128];
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s'",name);
    GetPlayerName(playerid,name,sizeof(name));
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
    return 1;
    }



    public OnPasswordResponse(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //Passwort richtig
    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    }
    else
    {
    //Passwort falsch
    SendClientMessage(playerid,c_red,"Das eingegebene Passwort ist falsch.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib bitte dein Passwort ein:","Okay","Abbrechen");
    }
    return 1;
    }



    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][db_id] = cache_insert_id(dbhandle);
    sInfo[playerid][eingeloggt]=1;
    return 1;
    }



    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM user WHERE username='%s' AND password='%s'",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswordResponse","i",playerid);
    }
    else
    {
    //Keine Eingabe
    SendClientMessage(playerid,c_red,"Gibt bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Gib bitte dein Passwort ein:","Okay","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }
    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],query[128],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>3)
    {
    //Registrierungsfunktion
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO user (username,password) VALUES ('%s','%s') ",name,passwort);
    mysql_function_query(dbhandle,query,true,"OnPlayerRegister","i",playerid);
    }
    else
    {
    //Kleiner als 4 Zeichen
    SendClientMessage(playerid,c_red,"Dein Passwort muss mindestens 4 Zeichen lang sein.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Gib bitte dein gewünschtes Passwort an:","Okay","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }

    2 Mal editiert, zuletzt von GZUZ_187 ()