Probleme mitm Geld

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
  • Jo Leute,
    habe heute mal versucht das Textdraw der clientseitigen Geldanzeige zu überdecken, habe ich auch mit nem eigenen Textdraw jetzt gemacht.
    Jedoch soll ja jetzt das aktuelle Geld immer beim Textdraw angezeigt werden. Dazu habe ich GivePlayerMoney ersetzt durch die, mit den serverseitigen Variablen.
    Jedoch wird das Geld nie richtig angezeigt. Ich glaube auch, dass ich es falsch lade, denn nach dem speichern ist es in der Datenbank wieder automatisch auf 0.
    Das Crashdetect Plugin spuckt mir das aus:

    Zitat

    [14:06:12] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
    [14:06:12] [debug] Stack pointer (STK) is 0xF1B6C, heap pointer (HEA) is 0xF1B40
    [14:06:12] [debug] #806 0002ed18 in public OnPlayerLoaded () from efrp.amx


    Jedoch gebe ich da nur das Geld:
    Und zwar so:
    cache_get_row(0,4,data); SpielerInfo[playerid][pGeld] = strval(data);


    Speichern tue ich so:
    format(query,sizeof query,"UPDATE `accounts` SET `Name` = '%s',`Passwort` = '%s',`Level` ='%d',`Kills` ='%d',`Tode` ='%d',`Fraktion` ='%d',`Leader` ='%d',`Banned` ='%d',`Admin` ='%d',`Geld` ='%d',",SpielerInfo[playerid][pName],SpielerInfo[playerid][pPasswort],SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pKills],SpielerInfo[playerid][pTode],SpielerInfo[playerid][pFraktion],SpielerInfo[playerid][pLeader],SpielerInfo[playerid][pBanned],SpielerInfo[playerid][pAdmin],SpielerInfo[playerid][pGeld]);
    format(query2,sizeof query2,"`Tutorial` = '%d',`Alter` = '%d',`Geschlecht` = '%d',`Banner` = '%s',`Grund` = '%s',`GPCI` = '%s',`Timebann` = '%d',Muted ='%d' WHERE `Name` = '%s'",SpielerInfo[playerid][pTutorial],SpielerInfo[playerid][pAlter],SpielerInfo[playerid][pGeschlecht],SpielerInfo[playerid][pBanner],SpielerInfo[playerid][pGrund],SpielerInfo[playerid][pGpci],SpielerInfo[playerid][pTimebann],SpielerInfo[playerid][pMuted],SpielerInfo[playerid][pName]);
    strcat(query,query2);
    mysql_function_query(mysql_connectionhandle,query,false,"","");


    Meine "Ersetzen" Funktionen:
    stock LA_SetPlayerMoney(playerid,amount) {
    SpielerInfo[playerid][pGeld] = amount;
    GivePlayerMoney(playerid,amount);
    new str[40];
    format(str,sizeof str,"%d Euro",SpielerInfo[playerid][pGeld]);
    TextDrawSetString(GeldAnzeige[playerid],str);
    return true;
    }


    stock LA_GivePlayerMoney(playerid,amount) {
    SpielerInfo[playerid][pGeld] += amount;
    GivePlayerMoney(playerid,SpielerInfo[playerid][pGeld]);
    new str[40];
    format(str,sizeof str,"%d Euro",SpielerInfo[playerid][pGeld]);
    TextDrawSetString(GeldAnzeige[playerid],str);
    return 1;
    }


    stock LA_ResetPlayerMoney(playerid) {
    SpielerInfo[playerid][pGeld] = 0;
    ResetPlayerMoney(playerid);
    new str[40];
    format(str,sizeof str,"%d Euro",SpielerInfo[playerid][pGeld]);
    TextDrawSetString(GeldAnzeige[playerid],str);
    return 1;
    }


    stock LA_GetPlayerMoney(playerid) {
    return SpielerInfo[playerid][pGeld];
    }


    Ich hoffe ihr könnt helfen.


    Mfg

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • erhöhe mal deine Heapspace
    mit #pragma dynamic


    Sowas kann davon kommen , wenn man zu viele zu große Variabeln erstellt oder diese dann global sind .
    Das könnte unteranderem daran liegen das du viele (große) Variabeln erstellst und oder sie Global sind.

  • erhöhe mal deine Heapspace
    mit #pragma dynamic


    Sowas kann davon kommen , wenn man zu viele zu große Variabeln erstellt oder diese dann global sind .
    Das könnte unteranderem daran liegen das du viele (große) Variabeln erstellst und oder sie Global sind.


    Hallo, das ist jetzt nicht mehr nötig, da die Warnungen jetzt nicht mehr kommen.
    Jedoch wird das Geld immer noch nicht ordnungsgemäß geladen. Wenn ich in der Tabelle was einstelle, wird es nicht in der Textdraw Leiste angezeigt, sondern immer 0, daher ist
    danach auf immer wieder 0 in der Tabelle.
    Speichere oder Lade ich das Geld falsch ?


    MFG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.


  • Hallo, das ist jetzt nicht mehr nötig, da die Warnungen jetzt nicht mehr kommen.
    Jedoch wird das Geld immer noch nicht ordnungsgemäß geladen. Wenn ich in der Tabelle was einstelle, wird es nicht in der Textdraw Leiste angezeigt, sondern immer 0, daher ist
    danach auf immer wieder 0 in der Tabelle.
    Speichere oder Lade ich das Geld falsch ?


    MFG


    dazu kann ich leider keine aussage genau machen das musst du testen ich sehe hier keinen fehler beim laden als auch beim auslesen .
    wird ihrgend was in der log angezeigt
    oder wenn du es per server.log haben willst.


    Code
    public OnQueryError( errorid, error[], callback[], query[], connectionHandle ){
        printf("EID: %d | Error: %s | callback: %s | Query: %s", errorid, error, callback, query);
        return 1;
    }


    Zum testen schau einfach mal das du die Sachen in der tabelle einträgst es könnte auch sein das du ein kleinen fehler gemacht hast in der ordnung
    beim laden zum beispiel.

  • dazu kann ich leider keine aussage genau machen das musst du testen ich sehe hier keinen fehler beim laden als auch beim auslesen .
    wird ihrgend was in der log angezeigt
    oder wenn du es per server.log haben willst.


    Code
    public OnQueryError( errorid, error[], callback[], query[], connectionHandle ){
        printf("EID: %d | Error: %s | callback: %s | Query: %s", errorid, error, callback, query);
        return 1;
    }


    Zum testen schau einfach mal das du die Sachen in der tabelle einträgst es könnte auch sein das du ein kleinen fehler gemacht hast in der ordnung
    beim laden zum beispiel.


    Hallo,
    den Callback habe ich schon in meinem GM. Er gibt mir keinen Query Error aus. ich glaube eher die "Methode" müsste falsch sein.


    MFG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • gut dann weißt du das es auf jedenfall nicht am Sql Syntax liegt , jedoch wie schon gesagt ich kann es nur vermuten
    ich kann leider keine direkten aussagen darüber treffen ob es nicht ladet oder speichert, wie schon gesagt ich erkenne keinen fehler
    und kann nur prognosen machen.


    was meist du mit Methode ? ^^

  • Hi,


    mit Methode meine ich, dass ich zwar das Geld in den SpielerEnum laden lasse, aber dann iwie das Geld nicht übermittelt wird,
    da es immer 0 ist :O


    MFG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • könnte ich mir nicht vorstellen dazu könntest es noch notfalls printen ausserdem sieht man es in der mysql.log welche daten ausgelesen werden
    zu dme kannst ja gerne mal ein screen machen von der datenbank.


    Und wie schon angefragt hast du das mal ausprobiert in dem du ein wert in der datenbank gesetzt hast ob das geladen wird oder wenn du den wert ingame setzt ob er gespeichert wird.

  • Jup, habs mir kurz ausprinten lassen, das Geld wird übermittelt.
    Jetzt komischerweiße funktioniert es auch einwandfrei.
    Danke dir .


    #closerequest

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.