MySQL laden 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
  • // MySQL
    #define db_host "127.0.0.1"
    #define db_user "root"
    #define db_pass ""
    #define db_data "abc"


    new dbhandle;
    forward OnUserCheck(playerid);
    forward OnPasswordResponse(playerid);
    // MySQL


    enum SpielerDaten
    {
    sID,
    sLevel,
    sGeld,
    EXP,
    Job,
    JobSkill,
    Fraktion,
    FraktionRank,
    Adminlevel,
    Banned,
    TimeBan,
    isLoggedIn,
    };


    new SpielerInfo[MAX_PLAYERS][SpielerDaten];


    public OnGameModeInit()
    {
    UsePlayerPedAnims();
    DisableInteriorEnterExits();


    SetGameModeText("Old School Roleplay v.0.1");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

    // MySQL
    dbhandle = mysql_connect(db_host,db_user,db_data,db_pass);
    return 1;
    }


    public OnGameModeExit()
    {
    mysql_close(dbhandle);
    return 1;
    }


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);


    new query[256];
    format(query,sizeof(query),"SELECT id FROM accounts WHERE username='%s'",pName(playerid));
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    SavePlayer(playerid);
    ResetPlayer(playerid);
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid==DIALOG_REGISTER)
    {
    if(response)
    {
    new query[256], passwort[28];
    if(strlen(inputtext)>3)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"INSERT INTO accounts (username,password) VALUES ('%s','%s')",pName(playerid),passwort);
    mysql_function_query(dbhandle,query,false,"","");
    SendClientMessage(playerid,LightGreen,"Ihr Passwort wurde akzeptiert, bitte merken Sie es sich gut.");
    SpielerInfo[playerid][sLevel] = 1;
    SetPlayerScore(playerid,SpielerInfo[playerid][sLevel]);
    SpielerInfo[playerid][sGeld] = 10000;
    GivePlayerMoney(playerid,SpielerInfo[playerid][sGeld]);
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid,Red,"Ihr Passwort ist nicht lang genug, bitte verwenden Sie min. 4 Zeichen.");
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registration","Bitte geben Sie Ihr Passwort ein.","Registration","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }
    if(dialogid==DIALOG_LOGIN)
    {
    if(response)
    {
    new query[256], passwort[28];
    if(strlen(inputtext)>0)
    {
    mysql_escape_string(inputtext,passwort,dbhandle);
    format(query,sizeof(query),"SELECT * FROM accounts WHERE username='%s' AND password='%s'",pName(playerid),passwort);
    mysql_function_query(dbhandle,query,true,"OnPasswortResponse","i",playerid);
    SendClientMessage(playerid,LightGreen,"Ihr Passwort wurde akzeptiert, Sie wurde nun eingeloggt.");
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid,Red,"Sie haben ein falsches Passwort eingegeben, bitte versuchen sie es erneut.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte geben Sie Ihr Passwort ein.","Login","Abbrechen");
    }
    }
    else
    {
    Kick(playerid);
    }
    return 1;
    }
    return 1;
    }


    public OnUserCheck(playerid)
    {
    new num_rows, num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==0)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registration","Bitte geben Sie Ihr Passwort ein.","Registration","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte geben Sie Ihr Passwort ein.","Login","Abbrechen");
    }
    return 1;
    }


    public OnPasswordResponse(playerid)
    {
    new num_rows, num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    SpielerInfo[playerid][isLoggedIn] = 1;
    SpielerInfo[playerid][sLevel] = cache_get_field_content_int(0,"level",dbhandle);
    SetPlayerScore(playerid,SpielerInfo[playerid][sLevel]);
    SpielerInfo[playerid][sGeld] = cache_get_field_content_int(0,"geld",dbhandle);
    SetPlayerMoney(playerid,SpielerInfo[playerid][sGeld]);
    SpielerInfo[playerid][EXP] = cache_get_field_content_int(0,"exp",dbhandle);
    SpielerInfo[playerid][Job] = cache_get_field_content_int(0,"job",dbhandle);
    SpielerInfo[playerid][JobSkill] = cache_get_field_content_int(0,"jobskill",dbhandle);
    SpielerInfo[playerid][Fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle);
    SpielerInfo[playerid][FraktionRank] = cache_get_field_content_int(0,"fraktionrank",dbhandle);
    SpielerInfo[playerid][Adminlevel] = cache_get_field_content_int(0,"adminlevel",dbhandle);
    SpielerInfo[playerid][Banned] = cache_get_field_content_int(0,"banned",dbhandle);
    }
    else
    {
    SendClientMessage(playerid,Red,"Sie haben ein falsches Passwort eingegeben, bitte versuchen sie es erneut.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte geben Sie Ihr Passwort ein.","Login","Abbrechen");
    }
    return 1;
    }


    stock ResetPlayer(playerid)
    {
    SpielerInfo[playerid][sLevel] = 0;
    SpielerInfo[playerid][sGeld] = 0;
    SpielerInfo[playerid][EXP] = 0;
    SpielerInfo[playerid][Job] = 0;
    SpielerInfo[playerid][JobSkill] = 0;
    SpielerInfo[playerid][Fraktion] = 0;
    SpielerInfo[playerid][FraktionRank] = 0;
    SpielerInfo[playerid][Adminlevel] = 0;
    SpielerInfo[playerid][Banned] = 0;
    SpielerInfo[playerid][TimeBan] = 0;
    return 1;
    }


    stock SavePlayer(playerid)
    {
    new query[256];
    format(query,sizeof(query),"UPDATE accounts SET level='%i', geld='%i', exp='%i', job='%i', fraktion='%i', fraktionrank='%i', adminlevel='%i', banned='%i', timeban='%i' WHERE username='%s'",SpielerInfo[playerid][sLevel],SpielerInfo[playerid][sGeld],SpielerInfo[playerid ][EXP],SpielerInfo[playerid][Job],SpielerInfo[playerid][Fraktion],SpielerInfo[playerid][FraktionRank],SpielerInfo[playerid][Adminlevel],SpielerInfo[playerid][Banned],SpielerInfo[playerid][TimeBan],pName(playerid));
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }
    Mein Problem ist, dass das Passowrt z.B. 123456 nicht ausgelesen wird, ich kann nach dem erstellen und neu connecten 123 eingeben und es geht trotzdem und selbst wenn ich es richtig eingebe lädt er nicht alles aus was gespeichert wurde.
    Ich habe mehrmals rüber geschaut und vieles versucht, doch es klappt einfach nicht. MySQL.log git auch keine Errors wieder, er lädt einfach nur nicht richtig.


    MfG