Geld wird 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
  • Guten Abend.


    Ich habe ingame jetzt Stunts gemacht und hatte dadurch 240$ auf der hand.


    Normal sollte es gespeichert werden und nach dem Reloggen wieder da sein.


    Nun das geld ist nicht wieder erschienen.


    In den Myqsl-Logs steht leider auch kein fehler drin warum kein geld gesetzt wird.
    Hier der Code zu alles:



    Mysql Log:



    Spieler Enum:


    OnPlayerRequestClass:


    OnplayerConnect:


    OnPlayerDisconnect


    OnDialogResponse:


    OnUserCheck:


    OnUserRegister und OnUserLogin:


    SaveUserStats:

  • @XeroX da ich es auf localhost teste brauche ich für die Datenbank kein passwort angeben.


    Ich weiß einfach nicht wo mein fehler sein soll ob es wirklich daran liegt das ich es auf localhost teste und die datenbank kein passwort hat.

  • Moin,
    wird das Geld nicht gespeichert oder nicht geladen? Kann man irgendwie aus deiner Frage nicht heraus lesen...
    Du verwendest für das Geld eine eigene Variable und das Geld wird ja bei dem aktivierten Stunt Modus von Gta über giveplayermoney an den Spieler vergeben.
    Wenn dann müsstest du es in dieser Art machen: PlayerInfo[playerid][pmoney] = GetPlayerMoney(playerid); damit das Geld was du von GTA gesetzt bekommst auch in deine Variable übernommen wird.
    Aber solltest es etwas anpassen, da man jetzt sich "Geld cheaten" kann und dabei nichts passiert.

  • Ich weiß nicht genau ob es für den Stunt ein extra Public gibt, ansonsten frag ab ob der Spieler in einem Auto sitzt und der Fahrer ist und ob das Fahrzeug x kmh hat, wenn ja weißt du ihn das erhaltene Geld in deine Variable zu.

  • Du setzt ihn ja auch nicht das geld!



    PlayerInfo[playerid][pmoney] = GetPlayerMoney(playerid);


    stock SaveUserStats(playerid)
    {
    if(!PlayerInfo[playerid][eingeloggt])return 1;
    PlayerInfo[playerid][pmoney] = GetPlayerMoney(playerid);
    new query[256];
    mysql_format(handle,query,sizeof(query),"UPADTE account SET level = '%d',admin = '%d',money = '%d',fraktion = '%d',frank = '%d',spawn = '%d'WHERE id = '%d'",PlayerInfo[playerid][level],PlayerInfo[playerid][admin],PlayerInfo[playerid][pmoney],PlayerInfo[playerid][fraktion],PlayerInfo[playerid][frank],PlayerInfo[playerid][spawn]);
    mysql_pquery(handle,query);
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • @Trafico und wie kann ich das nun so machen das man sich kein geld ercheaten kann?

    In dem du ein anti cheat scriptest oder JunkBuster rein machst!

    Geld cheaten geht sowieso nicht.

    Ja mit ein guten anti cheat!

    Ich habe schon bei vielen serven gesehen wie spieler gebannt wurden wegen geldhack

    Ja durch ein anti cheat ;) bzw Timer der immer wieder druch alle spieler geht und diese überprüft

  • Man kann sich auf keinem Server Geld ercheaten. Da das Geld Serverseitig gespeichert wird.

    Das ist falsch. GetPlayerMoney = nicht serverseitig!



    s0beit arbeitet mit GivePlayerMoney
    und das lässt sich speichern!

    Nein, außer per GetPlayerMoney, was wiederum nicht serverseitig ist und du speicherst das gehackte Geld mit.



    Anti-Money-Hacks sind sehr aufwendig zu erstellen und es gibt dutzende Dinge die zu beachten sind.
    Das kann weder in 5 Minuten erklärt werden, noch in ein paar Stunden geschrieben werden.
    Ich habe auf meinem Server die Anti-Money-Hack Funktion über Jahre immer wieder verbessert und erweitert, eine 100%'ige Sicherheit kann aber nicht gewährleistet werden, vor allem wenn man sein Geld einfriert und Geld an Stationen ausgibt, die nicht Code-Seitig (Ammu Nation z.B.) das Geld abziehen.

  • Das ist falsch. GetPlayerMoney = nicht serverseitig!


    Nein, außer per GetPlayerMoney, was wiederum nicht serverseitig ist und du speicherst das gehackte Geld mit.


    Anti-Money-Hacks sind sehr aufwendig zu erstellen und es gibt dutzende Dinge die zu beachten sind.
    Das kann weder in 5 Minuten erklärt werden, noch in ein paar Stunden geschrieben werden.
    Ich habe auf meinem Server die Anti-Money-Hack Funktion über Jahre immer wieder verbessert und erweitert, eine 100%'ige Sicherheit kann aber nicht gewährleistet werden, vor allem wenn man sein Geld einfriert und Geld an Stationen ausgibt, die nicht Code-Seitig (Ammu Nation z.B.) das Geld abziehen.

    Ja habe ich auch nie behauptet
    aber bei der GivePlayerMoney Metode geht es
    es sei denn man hat ein eigenes geldsystem bzw gibt dem Spieler anders geld

  • Wenn man aber Ammu Nation und so per Script-Code macht sieht das dann anders aus mit den sicher gehen das man kein geld cheatet? @Jeffry

    Ja, du müsstest sämtliche Ingame Funktionen die Geld geben/abziehen im Code abfragst oder nachbaust und die Standard-Funktionen deaktivierst.
    Für manche Server mag das kein Problem sein, für die meisten Server könnte das aber eine ziemliche Einschränkung sein (oder ein enormer Aufwand, wenn alles Server-Seitig gecoded wird).

  • @Jeffry


    Folgende Situation:


    Wenn ein Spieler ein Stunt macht wird das Geld durch GivePlayerMoney gesetzt oder muss ich es extra anders angehen damit Spieler Geld bekommen können?


    Bilder zu den Stunt:


    mysql log:

    Code
    [06:41:11] [WARNING] mysql_connect: no password specified (entwicklung.p:317 -> entwicklung.p:62)
    [06:44:16] [ERROR] mysql_format: no value for specifier '%d' passed (entwicklung.p:394 -> entwicklung.p:105)
    [06:44:16] [ERROR] error #1065 while executing query "": Query was empty (entwicklung.p:395 -> entwicklung.p:105)


    http://www.pic-upload.de/view-32425056/sa-mp-018.png.html
    http://www.pic-upload.de/view-32425066/sa-mp-019.png.html

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen