Spielerdaten Laden problem

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 Leute,


    ich habe versuche ja mein Server auf MYSQL umzustellen allerdings habe ich da ein problem
    wenn ich diese LoadPlayer Funktion ausführe macht mein Server probleme er läd keine Befehle gar nichts mehr warum?


    #define TABLENAME "users"


    stock LoadPlayer(playerid)
    {
    new Data[100];
    new rcnt=1;
    new Field[64];
    new query[128];
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pname,sizeof(pname));
    MySQLCheck();
    format(query,sizeof(query),"SELECT * FROM `"TABLENAME"` WHERE Username = '%s'",pname);
    mysql_store_result();
    mysql_fetch_row(Data);
    mysql_strtok(Field, "|", Data);


    while (mysql_strtok(Field, "|", "")==1)
    {
    if(rcnt==2)PlayerInfo[playerid][pID]=strval(Field);
    if(rcnt==3)PlayerInfo[playerid][pUsername]=strval(Field);
    if(rcnt==4)PlayerInfo[playerid][pKey]=strval(Field);
    if(rcnt==5)PlayerInfo[playerid][pMoney]=strval(Field);
    if(rcnt==6)PlayerInfo[playerid][pAuto]=strval(Field);
    rcnt++;
    }
    return 1;
    }


    ich hoffe ihr findet den Fehler


    mfg Dedi



    2 Mal editiert, zuletzt von Tomi93 ()

  • if(strcmp(PlayerInfo[playerid][Password],(Kommt drauf an ob Dialog oder DCMD),false))
    So ist ne Abfrage von nem Passwort.


    Würde halt wenn der Spieler Connected und schon Registriert ist nur das Passwort Laden.
    Dann kannst du es auch abfragen.

  • if(strcmp(PlayerInfo[playerid][Password],(Kommt drauf an ob Dialog oder DCMD),false))


    sry aber was soll ich damit anfangen?
    Kommt drauf an ob Dialog oder DCMD ähm..??
    eig. wird ja bei /login das PW abgefragt


    dcmd_login(playerid, params[])
    {
    if(LoggedIn[playerid])
    {
    return SendClientMessage(playerid,RED,">> Du bist bereits eingeloggt <<");
    }
    if(!AccRegistered[playerid])
    {
    return SendClientMessage(playerid,RED,">> Dieser Account existiert nicht bitte benutze /register <Dein Passwort> um dich zu registrieren <<");
    }
    if(!strlen(params))
    {
    return SendClientMessage(playerid,RED,">> Hilfe: /login <Dein Passwort> <<");
    }
    LoginPlayer(playerid,params);
    return true;
    }


    LoginPlayer(playerid,pass[])
    {
    new
    pName[MAX_PLAYER_NAME],
    query[256];


    GetPlayerName(playerid,pName,sizeof(pName));
    MySQLCheck();

    mysql_real_escape_string(pName,pName);
    mysql_real_escape_string(pass,pass);
    format(query,sizeof(query),"SELECT Money FROM `"TABLENAME"` WHERE Username = '%s' AND Password = '%s' LIMIT 1",pName,pass);
    mysql_query(query,LOGIN_THREAD_ID);
    LOGIN_PLAYER_ID = playerid;
    return 1;
    }


    case LOGIN_THREAD_ID:
    {
    if(IsPlayerConnected(LOGIN_PLAYER_ID))
    {
    mysql_store_result();
    if(mysql_num_rows() == 1)
    {
    LoadPlayer(LOGIN_PLAYER_ID);
    GivePlayerMoney(LOGIN_PLAYER_ID,PlayerInfo[LOGIN_PLAYER_ID][pMoney]);
    if(PlayerInfo[LOGIN_PLAYER_ID][pAuto] == 1)
    {
    format(string,sizeof(string),"(pAuto: %d)",PlayerInfo[LOGIN_PLAYER_ID][pAuto]);
    SendClientMessage(LOGIN_PLAYER_ID,GREY,string);
    halt(2);
    }
    else
    {
    format(string,sizeof(string),"(pAuto: %d)",PlayerInfo[LOGIN_PLAYER_ID][pAuto]);
    SendClientMessage(LOGIN_PLAYER_ID,GREY,string);
    halt(2);
    }
    LoggedIn[LOGIN_PLAYER_ID] = true;
    SendClientMessage(LOGIN_PLAYER_ID,GREY,"Du hast dich erfolgreich eingeloggt.");
    mysql_free_result();
    }
    else
    {
    Wrongattempt[LOGIN_PLAYER_ID] += 1;
    if(Wrongattempt[LOGIN_PLAYER_ID] >= 3)
    {
    SendClientMessage(LOGIN_PLAYER_ID,RED,">> Du hast 3mal dien Passwort falsch eingegeben, du wurdest gekickt");
    mysql_free_result();
    return Kick(LOGIN_PLAYER_ID);
    }
    mysql_free_result();
    SendClientMessage(LOGIN_PLAYER_ID,RED,">> Falsches Passwort <<");
    }
    }
    LOGIN_PLAYER_ID = INVALID_PLAYER_ID;
    return 0;
    }


    //Edit vll. hilft das ja ein bisschen weiter ^^ aber ich glaube das hat mit dem laden nichts zu tun sondern mit den mysql_.. zeugs das da was falsch ist im original von dir Kavkus war es ja samp_mysql



    2 Mal editiert, zuletzt von Tomi93 ()

  • Hey Dedi, habe eben was herausgefunden, was ich vorher nicht wusste.
    Da es ja 2 Mysql plugins gibt, hab ich das Schlechtere verwendet, dies war mein fehler.
    Deswegen würde ich dich bitten wieder das andere runterzuladen das wiederum samp_mysql entspricht.


    mfg Kavkus

  • das hilft mir nicht
    ich könnte ja mit dem System was ModernTopia hat die Accounts speichern das ist ja noch kein problem
    das Problem ist ich kann keine Fahrzeuge speichern unter MYSQL mit dem MordernTopia System
    und darum wollte ich ein neues Account System das genau so aufgebaut ist wie man auch Autos speichern könnte