Login Fail

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 gerade einen Kleinen Bug entdeckt wenn ich mein Passwort falsch eingebe werde ich gespawnt am Zivispawn und der Dialog zum EInloggen kommt ???
    ich will das wenn ich mein Passwort flasch eingebe nicht gespawnt werde


    public OnPasswordResponse(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //Spieler laden


    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    sInfo[playerid][Skin] = cache_get_field_content_int(0,"skin",dbhandle);
    SetPlayerSkin(playerid,sInfo[playerid][Skin]);
    sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
    SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
    sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
    sInfo[playerid][slevel] = cache_get_field_content_int(0,"slevel",dbhandle);
    sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
    sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
    sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
    SendClientMessage(playerid,ROT,"*Erfolgreich eingeloggt.");
    SendClientMessage(playerid,weiß,"===============|WILLKOMMEN|===============");
    SendClientMessage(playerid,Orange,"!!! Playpoint-Reallife - we are the Gamer!!!");
    SendClientMessage(playerid,Orange,"!!! Das Orginale...alles andere ist eine Kopie !!!");
    SendClientMessage(playerid,weiß,"===============|WILLKOMMEN|===============");
    loadPlayerCars(playerid);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Das eigegeben Passwort ist fasch");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Willkommen auf Playpoint-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    }
    return 1;
    }

  • 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
    {
    SendClientMessage(playerid,ROT,"Gib bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Willkommen auf Red-Game0v3r-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    }
    }
    }


    Jeffry:

    Einmal editiert, zuletzt von snake112 ()

  • Ändere das auf jeden Fall mal zu:
    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
    {
    SendClientMessage(playerid,ROT,"Gib bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Willkommen auf Red-Game0v3r-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    }
    }
    return 1;
    }


    Wenn es immer noch nicht geht solltest du den Code mal debuggen, das heißt mit prints zwischen den Zeilen bestücken, um den Verlauf des Codes zu wissen, dann findest du heraus, warum du deim Zivi Spawn raus kommst.
    Wie du das machst steht hier: [ SCRIPTING ] Debugnachrichten

  • Wenn du das Debugging nicht hinbekommst, dann lade den ganzen Code hoch und erkläre Schritt für Schritt was du machst, wenn du dem Server beitrittst und ganz genau was passiert. Dann schaue ich mir den Code an und kann es so vielleicht nachvollziehen, warum du bei einem falschen Login gespawnt wirst. Der Fehler kann eigentlich überall sein, je nach dem wie komplex dein Code schon ist.

  • also ich gehe auf den Server dann kommt dies Hier so soll es auch sein


    so und wenn ich ein Flasches PW eingebe dann passiert dies hier



    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2


    public OnUserCheck(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    //Registrierung
    SendClientMessage(playerid,GELB,"*Es wurde noch kein Account von dir auf [RGR] gefunden!");
    SendClientMessage(playerid,GELB,"*wenn du bei uns spielen möchtest,erstelle dir bitte jetze ein Account!");
    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","Willkommen auf Red-Game0v3r-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    SendClientMessage(playerid,weiß, "*====================|{FFFF00} Willkommen zurück {FFFFFF}|====================*");
    SendClientMessage(playerid,0x33AA33AA, "*Dein Account wird geladen...");
    SendClientMessage(playerid,0x33AA33AA, "*Bitte gib nun dein Passwort ein, um dich einzuloggen!*");
    SendClientMessage(playerid,0xF60000F6, "*Hinweis: Das Server Script ist noch nicht Ganz fertig!*");
    }
    return 1;
    }


    public OnPasswordResponse(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //Spieler laden


    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    sInfo[playerid][Skin] = cache_get_field_content_int(0,"skin",dbhandle);
    SetPlayerSkin(playerid,sInfo[playerid][Skin]);
    sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
    SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
    sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
    sInfo[playerid][slevel] = cache_get_field_content_int(0,"slevel",dbhandle);
    sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
    sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
    sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
    SendClientMessage(playerid,ROT,"*Erfolgreich eingeloggt.");
    SendClientMessage(playerid,weiß,"===============|WILLKOMMEN|===============");
    SendClientMessage(playerid,Orange,"!!! Playpoint-Reallife - we are the Gamer!!!");
    SendClientMessage(playerid,Orange,"!!! Das Orginale...alles andere ist eine Kopie !!!");
    SendClientMessage(playerid,weiß,"===============|WILLKOMMEN|===============");
    loadPlayerCars(playerid);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Das eigegeben Passwort ist fasch");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Willkommen auf Playpoint-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    }
    return 1;
    }


    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
    {
    SendClientMessage(playerid,ROT,"Gib bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Willkommen auf Red-Game0v3r-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    }
    }
    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,false,"OnPlayerRegister","d",playerid);
    }
    else
    {
    //Kleiner als 4 Zeichen
    SendClientMessage(playerid,ROT,"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;
    }
    return 1;
    }


    public OnPlayerRegister(playerid)
    {
    sInfo[playerid][db_id] = mysql_insert_id();
    SendClientMessage(playerid, ROT, "Du hast dich Erfolgreich Registriert !");
    SendClientMessage(playerid, LEUCHTENDBLAU, "=====>Willkommen auf Red-Game0v3r-Reallife<=====");
    SetPlayerMoney(playerid, 2500);
    SetPlayerScore(playerid, 1);
    SetPlayerColor(playerid, 0xFF00FFFF);
    savePlayer(playerid);
    }


    Jeffry:

    Einmal editiert, zuletzt von snake112 ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • An dem geposteten Code liegt es nicht, da steht ja weder was von SpawnPlayer noch von SetPlayerPos. Es wäre interessant zu wissen, ob erst die Nachricht kommt, dass das Passwort falsch ist, oder ob er erst gespawnt wird. Füge da jeweils mal einen print ein (bei der Nachricht) und bei OnPlayerSpawn. Welcher der prints kommt zuerst?


    Außerdem: Nutzt du Filterscripts? Wenn ja, passiert der Fehler auch, wenn du die aus dem Server nimmst?


    Wenn du den Code debuggen könntest wäre die ganze Sache einfacher. Versuch es doch mal, bei allen Teilen vom Login und vom Spawn prints einzufügen (einfach "print("1");", dann paar Zeilen weiter print 2, usw...).

  • 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
    {
    SendClientMessage(playerid,ROT,"Gib bitte dein Passwort ein.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Willkommen auf Red-Game0v3r-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    printf("3");


    public OnPasswordResponse(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //Spieler laden


    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    sInfo[playerid][Skin] = cache_get_field_content_int(0,"skin",dbhandle);
    SetPlayerSkin(playerid,sInfo[playerid][Skin]);
    sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
    SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
    sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
    sInfo[playerid][slevel] = cache_get_field_content_int(0,"slevel",dbhandle);
    sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
    sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle);
    sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
    SendClientMessage(playerid,ROT,"*Erfolgreich eingeloggt.");
    SendClientMessage(playerid,weiß,"===============|WILLKOMMEN|===============");
    SendClientMessage(playerid,Orange,"!!! Playpoint-Reallife - we are the Gamer!!!");
    SendClientMessage(playerid,Orange,"!!! Das Orginale...alles andere ist eine Kopie !!!");
    SendClientMessage(playerid,weiß,"===============|WILLKOMMEN|===============");
    loadPlayerCars(playerid);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Das eigegeben Passwort ist fasch");
    printf("1");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Willkommen auf Playpoint-Reallife,\n\n\n\n Bitte logge dich nun ein!\n\n\n","Login","Abbrechen");
    }
    return 1;
    }


    [14:01:24] Incoming connection: 127.0.0.1:57175
    [14:01:24] [join] [RGR]Snake has joined the server (0:127.0.0.1)
    [14:01:30] 1
    [14:01:32] 1

  • Beitrag von xSnake ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen