Account system spackt[MYSQL]

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Servus ,
    ich habe ein problem undswar das mein
    Geld und Skin nicht ladet genau wie der rest.
    Wenn ich es ingame setze dann speichert das irgendwie nicht ( fraktion zmb )
    aber per Datenbank geht das.



    Mein Enum :
    enum SpielerInfo{
    level,
    eingeloggt,
    id,
    alevel,
    geld,
    fraktion,
    rang,
    schange,
    WLevel,
    skin,
    knast,
    ngknast,
    hstatus,
    sjob
    }


    OnPlayerDisconnect
    if(sInfo[playerid][eingeloggt]==0)return 1;//Speichert keine leute die nicht eingeloggt sind
    new query[256];
    new query2[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',geld='%i', skin='%i' , alevel='%i', fraktion='%i', rang='%i', schange='%i', WLevel='%i', knast='%i', ngknast='%i' , hstatus='i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),GetPlayerSkin(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][schange],GetPlayerWantedLevel(playerid),sInfo[playerid][knast],sInfo[playerid][ngknast],sInfo[playerid][hstatus],sInfo[playerid][id]);
    format(query,sizeof(query),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");
    mysql_function_query(dbhandle,query2,false,"","");


    Wenn das Passwort richtig ist(Lade funktion)
    sInfo[playerid][eingeloggt] = 1;
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);
    sInfo[playerid][id] = cache_get_field_content_int(0,"id",dbhandle);
    GivePlayerMoney(playerid,cache_get_field_content_int(0,"geld",dbhandle));
    sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",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][schange] = cache_get_field_content_int(0,"schange",dbhandle);
    sInfo[playerid][knast] = cache_get_field_content_int(0,"knast",dbhandle);
    sInfo[playerid][ngknast] = cache_get_field_content_int(0,"ngknast",dbhandle);
    sInfo[playerid][hstatus] = cache_get_field_content_int(0,"hstatus",dbhandle);
    sInfo[playerid][sjob] = cache_get_field_content_int(0,"sjob",dbhandle);
    SetPlayerWantedLevel(playerid,cache_get_field_content_int(0,"WLevel",dbhandle));
    SetPlayerSkin(playerid,cache_get_field_content_int(0,"skin",dbhandle));
    FahrzeugvonDB(playerid);


    Ich hoffe mir kann einer helfen.


    MFG dreamer

    Einmal editiert, zuletzt von iTsTiMe ()

  • Schalte mal den MySQL Debug Modus an und poste dann hier was im Server_log steht.


    Außerdem
    format(query,sizeof(query),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);


    Zu
    format(query2,sizeof(query2),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);

  • format(query2,sizeof(query2),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);


    Speichert immer noch nicht. In der MYSQL Log ist am anfang nichts. Jedoch wenn ich was ingame geändert habe zmb /makeleader und somit meine fraktion geändert habe und mich auslogge kommt dieser
    error :


    "[15:25:53] [ERROR] CMySQLQuery::Create - no query and orm object specified"

  • Versuche mal:
    mysql_function_query(dbhandle,query,false,"","");
    mysql_function_query(dbhandle,query2,false,"","");


    zu:
    mysql_query(query);
    mysql_query(query2);


    Da du ja kein weiteres Callback aufrufst.


    Falls das auch nichts hilft bin ich raus, da ich mich nicht genauers mit dem Cache-MySQL auskenne.


  • Geht nicht ^^.
    Man leute wir sind so eine riesige Community von Scriptern bis Designern etc und da kann mir nur 1ner helfen? :(


  • SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
    sInfo[playerid][skin] = cache_get_field_content_int(0,"skin",dbhandle);

    unter onplayerspawn

    SetPlayerSkin(playerid,sInfo[playerid][skin]);



    if(sInfo[playerid][eingeloggt]==0)return 1;//Speichert keine leute die nicht eingeloggt sind
    new query[256],query2[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',geld='%i', skin='%i' , alevel='%i', fraktion='%i', rang='%i', schange='%i', WLevel='%i', knast='%i', ngknast='%i' , hstatus='i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][skin],sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][schange],GetPlayerWantedLevel(playerid),sInfo[playerid][knast],sInfo[playerid][ngknast],sInfo[playerid][hstatus],sInfo[playerid][id]);
    format(query,sizeof(query),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");
    mysql_function_query(dbhandle,query2,false,"","");


    das SetPlayerMoney:

    SetPlayerMoney(playerid,money)
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,money);
    return 1;
    }

    damit der Spieler nicht durch irgendeinen Bug mehr Geld bekommt als er hat.


  • Ich habs jetzt nicht getestet das Problem ist das ganze system spackt.
    Nicht nur Geld und Skin.
    //Edit
    Jetzt gehts weil ich die 2te Query rausgenommen habe
    aber ich will ja auch einen job hinzufügen dies bugt aber dann irgendwie ^^.

    Einmal editiert, zuletzt von iTsTiMe ()

  • Für den Job der dir noch fehlt das was ich bereits vorhin sagte:
    format(query,sizeof(query),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);


    zu:
    format(query2,sizeof(query2),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);



    Oder das gesamte zu:
    if(sInfo[playerid][eingeloggt]==0)return 1;//Speichert keine leute die nicht eingeloggt sind
    new query[256];
    format(query,sizeof(query),"UPDATE user SET level='%i',geld='%i', skin='%i' , alevel='%i', fraktion='%i', rang='%i', schange='%i', WLevel='%i', knast='%i', ngknast='%i' , hstatus='i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][skin],sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][schange],GetPlayerWantedLevel(playerid),sInfo[playerid][knast],sInfo[playerid][ngknast],sInfo[playerid][hstatus],sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");
    format(query,sizeof(query),"UPDATE user SET sjob='%i' WHERE id='%i'",sInfo[playerid][sjob],sInfo[playerid][id]);
    mysql_function_query(dbhandle,query,false,"","");