Simpler Anti Moneyhack

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

  • forward moneyCheck();
    new playerCash[MAX_PLAYERS] = ; // Das musste mit der Variable definieren, die in seiner Spielerdatei steht. Damit wird das abgeglichen


    public OnGameModeInit()
    {
    SetTimer("moneyCheck", 10000, true);
    return true;
    }


    public moneyCheck() {
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(GetPlayerMoney(i) > playerCash[i]) {
    // Kick, Ban, whatever
    }
    }
    }


    Gerade selbst gemacht. Der Nachteil ist, das du das Geld des Spielers immer direkt in seine Spielerdatei schreiben musst, da er sonst gekickt wird. Ist ungetestet.

  • Hab meins noch etwas umgeschrieben, hier mal zusammengefügt:



    forward moneyCheck();
    new playerCash[MAX_PLAYERS];
    public OnGameModeInit()
    {
    SetTimer("moneyChack", 10000, true);
    return 1;
    }


    public moneyCheck() {
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(GetPlayerMoney(i) != playerCash[i]) {
    // Kick, Ban, whatever
    }
    }
    }


    stock n_GivePlayerMoney(playerid, c) {
    playerCash[playerid] += c;
    GivePlayerMoney(playerid, c);
    return true;
    }


    Thx Neo.

    2 Mal editiert, zuletzt von hearteyy ()

  • Ich würde höchstens überprüfen ob das Geld mehr ist als das was die Variable wiedergibt,
    so hat man die Probleme mit dem Pay'nSpray Shop nicht und wer sich halt weniger Geld setzt,
    macht dies auf eigene kosten zudem noch überprüfen ob das Geld über Null ist
    da es dort auch noch einen Haken gibt, zu wenig = Plus Bereich ^^

    Mfg. BlackFoX_UD_ alias [BFX]Explosion