Erfahrungspunkte werden nicht gespeichert

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


    habe heute folgendes Problem:


    Ich habe in meinem Script ein normales EP System, noch nichts besonderes, auch noch nicht ganz fertig.
    Mit einem Befehl (/ep) kann ich mir ingame 20 Erfahrungspunkte geben, dieser Befehl dient zum testen.
    Der Befehl funktioniert auch. und die Erfahrungspunkte werden ingame in meinem Stats angezeigt, das heißt also ich habe die EP.
    Nun habe ich das Problem, dass die EP nach einem Relogg wieder weg sind, bzw auf 0 sind.
    Ich lasse eigentlich alles ganz normal speichern und laden, kann aber auch sein das irgendwo ein Fehler ist, den ich übersehen habe.
    Hier mal die Zeilen:



    //enum wo uEP drin ist
    enum _sInfo
    {
    uEP
    }


    //Der Befehl mit dem ich mir EP geben kann
    cmd:ep(playerid,params[])
    {
    SpielerInfo[playerid][uEP]+= 20;
    SendClientMessage(playerid,FARBE_INFO,"Du hast dir 20 Erfahrunspunkte gegeben!");
    return 1;
    }


    //Hier wird alles gespeichert
    stock SavePlayer(playerid)
    {
    new query[500];
    #define SA SpielerInfo[playerid]
    format(query, sizeof(query), "UPDATE `accounts` SET Adminlevel='%d',Score='%d',Sprache='%d',Geld='%d',Erfahrung='%d' WHERE
    `Name`='%s';",SA[uAdmin],SA[uScore],SA[uSprache],SA[uGeld],SA[uEP],PlayerName(playerid));
    mysql_tquery(MysqlConnection, query, "","");
    #undef SA
    }


    //Hier wird alles geladen
    forward LoadPlayer(playerid);
    public LoadPlayer(playerid)
    {
    if(!IsPlayerConnected(playerid)) return 1;
    SpielerInfo[playerid][uAdmin] = cache_get_field_content_int(0, "Admin");
    SpielerInfo[playerid][uScore] = cache_get_field_content_int(0, "Score");
    SpielerInfo[playerid][uGeld] = cache_get_field_content_int(0, "Geld");
    SpielerInfo[playerid][uEP] = cache_get_field_content_int(0, "Erfahrung");
    CreateThings(playerid);
    return 1;
    }


    Die Datenbankspalte in der alles gespeichert wird, heißt accounts, und die Spalte für die Erfahrungspunkte heißt "Erfahrung".
    Leider finde ich den Fehler nicht, und frage deshalb mal hier nach.


    Danke im Voraus.


    MfG
    Anthony

  • Was steht so im Server Log?
    stock SavePlayer(playerid)
    {
    new query[500];
    #define SA SpielerInfo[playerid]
    format(query, sizeof(query), "UPDATE `accounts` SET Adminlevel='%d',Score='%d',Sprache='%d',Geld='%d',Erfahrung='%d' WHERE `Name`='%s';",SA[uAdmin],SA[uScore],SA[uSprache],SA[uGeld],SA[uEP],PlayerName(playerid));
    printf("Speichere: %s", query);
    mysql_tquery(MysqlConnection, query, "","");
    #undef SA
    }


    Und steht etwas im MySQL Log?

  • Das kommt im MySQL Log, was auch immer das sein soll :p


    [14:42:23] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'Adminlevel' in 'field list'
    [14:42:24] [ERROR] CMySQLQuery::Execute[] - (error #1054) Unknown column 'Adminlevel' in 'field list'


    ansonsten wird das geprintet:


    [14:42:23] Speichere: UPDATE `accounts` SET Adminlevel='5',Score='0',Sprache='0',Geld='10000',Erfahrung='140' WHERE `Name`='Anthony_Lopes';