Problem bei Mysql mit Spieler laden

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 Community!


    Ich habe (schon wieder -.-) ein Problem mit Mysql, dass ich weder durch Google noch Youtube noch die SUFU hier lösen konnte..
    Wenn ich mich auf meinem Server einlogge läuft das alles ohne Probleme er ruft meinen Stock auch auf nur läd er ihn nicht..
    Das ist der Stock:
    stock LoadPlayer(playerid)
    {
    //Datenbank ID
    cache_get_field_content_int(0,"ID",PlayerInfo[playerid][db_id]);
    //Level
    cache_get_field_content_int(0,"LEVEL",PlayerInfo[playerid][pLevel]);
    SetPlayerScore(playerid,PlayerInfo[playerid][pLevel]);
    //Adminlevel
    cache_get_field_content_int(0,"ALEVEL",PlayerInfo[playerid][pAdmin]);
    //Geld
    cache_get_field_content_int(0,"BARGELD",PlayerInfo[playerid][pGeld]);
    SetPlayerMoney(playerid,PlayerInfo[playerid][pGeld]);
    cache_get_field_content_int(0,"BANKGELD",PlayerInfo[playerid][pBank]);
    //Skin
    cache_get_field_content_int(0,"SKIN",PlayerInfo[playerid][pSkin]);
    //Eingeloggt-Nachricht
    print("LoadPlayer");
    SpawnPlayer(playerid);
    }


    Und das ist die Zeile in meiner Datenbank in der ich selbst gespeichert werde:


    Wenn ich online gehe habe ich weder den Admin Level, noch das Geld :/ Ich hoffe ihr könnt mir helfen..


    MfG Simon!

    • Offizieller Beitrag

    Vielleicht solltest du noch den Teil zeigen wo du die Daten aus der Tabelle holst


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Das war eben meine Frage ^^
    Weil ich irgendwas nicht ganz verstanden hab eben mit dem holen der Daten :/
    Das ist der ganze Login Prozess:


    Der Dialog für die Passwort eingabe:
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new name[MAX_PLAYER_NAME],passwort[35];
    GetPlayerName(playerid,name,sizeof(name));
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    LoginPlayer(playerid,passwort);
    print("DIALOG_LOGIN");
    return 1;
    }
    SCM(playerid,bblau,"[INFO]: Gib dein Passwort ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login auf MVS ","Bitte Logge dich mit deinem Passwort ein. ","Login","Abbrechen");
    return 1;
    }
    SCM(playerid,frot,"[FEHLER]: Du hast den Login bei MVS Abgebrochen !");
    KickPlayer(playerid);
    return 1;
    }


    Der Stock "LoginPlayer"
    stock LoginPlayer(playerid,passwort[35])
    {
    print("LoginPlayer1");
    new password[50];
    cache_get_field_content(0,"PASSWORT",password);
    if(password[49] == passwort[34])
    {
    SCM(playerid,bblau,"[INFO]: Du hast dich erfolgreich eingeloggt");
    print("LoginPlayer2");
    LoadPlayer(playerid);
    return 1;
    }
    else
    {
    new str[128];
    SCM(playerid,frot,"[FEHLER]: Dein Passwort Stimmt nicht!");
    print("LoginPlayer3");
    format(str,128,"{FF0000}Dein eingegebenes Passwort war falsch!\n{FFFFFF}Gib unten dein Passwort ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login auf MVS ",str,"Login","Abbrechen");
    return 1;
    }
    }


    Und danach kommt eben der stock LoadPlayer ^^... Nur weiß ich nicht wie ich eben die daten Lade :/ .. Mir hat zwar jemand geholfen das war aber irgendwie falsch ... Darum frage ich jetzt hier^^... seegras

    Einmal editiert, zuletzt von Simon2202 ()

  • Hallo,


    du musst MySQL schon sagen, welche Daten du abfragen willst.
    Da ich nicht weis, welches MySQL Plugin du nutzt, musst du folgenden Code eventuell ein wenig umbauen.



    stock LoginPlayer(playerid,passwort[35])
    {
    print("LoginPlayer1");
    new password[50];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    mysql_query("SELECT PASSWORT FROM deinetablle WHERE name LIKE '%s' LIMIT 1", name); //Den Code musst du an deine Datenbank anpassen. Das Limit 1 bedeutet nur, dass der erste gefundene Datensatz ausgegeben wird.
    cache_get_field_content(0,"PASSWORT",password);
    if(password[49] == passwort[34])
    {
    SCM(playerid,bblau,"[INFO]: Du hast dich erfolgreich eingeloggt");
    print("LoginPlayer2");
    LoadPlayer(playerid);
    return 1;
    }
    else
    {
    new str[128];
    SCM(playerid,frot,"[FEHLER]: Dein Passwort Stimmt nicht!");
    print("LoginPlayer3");
    format(str,128,"{FF0000}Dein eingegebenes Passwort war falsch!\n{FFFFFF}Gib unten dein Passwort ein!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login auf MVS ",str,"Login","Abbrechen");
    return 1;
    }
    }


    Und dein LoadPlayer

    stock LoadPlayer(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    nysql_query("SELECT * FROM deinetabelle WHERE name LIKE '%s'", name); //SELECT * bedeutet: Frage alle Felder der Tabelle ab
    //Datenbank ID
    cache_get_field_content_int(0,"ID",PlayerInfo[playerid][db_id]);
    //Level
    cache_get_field_content_int(0,"LEVEL",PlayerInfo[playerid][pLevel]);
    SetPlayerScore(playerid,PlayerInfo[playerid][pLevel]);
    //Adminlevel
    cache_get_field_content_int(0,"ALEVEL",PlayerInfo[playerid][pAdmin]);
    //Geld
    cache_get_field_content_int(0,"BARGELD",PlayerInfo[playerid][pGeld]);
    SetPlayerMoney(playerid,PlayerInfo[playerid][pGeld]);
    cache_get_field_content_int(0,"BANKGELD",PlayerInfo[playerid][pBank]);
    //Skin
    cache_get_field_content_int(0,"SKIN",PlayerInfo[playerid][pSkin]);
    //Eingeloggt-Nachricht
    print("LoadPlayer");
    SpawnPlayer(playerid);
    }


    Ist jetzt ausm Kopf rausgeschrieben, vielleicht hilfts dir ja.


    MfG
    Wepper

    Mit freundlichem Gruß
    Weper