Anti Moneyhack geht nicht

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
  • Moin Moin,
    wie ihr oben lesen könnt habe ich Probleme mit dem Anti Moneyhack.
    Ich habe das bei mir auf meinem Server mit s0beit getestet und ich habe das Geld wirklich, sprich ich kann mir damit alles Kaufen was ich möchte.


    Kommen wir mal zum Anti Moneyhack

    else if(GetPlayerMoney(i) > ACNewMoney[i])return SCMToAllF(Rot,"Spieler '%s' wurde vom Server gekickt. Grund: Moneyhack!",SAC_Name),Kicks(i);


    Alles was mit ACNewMoney zu tun hat

    ACNewMoney[MAX_PLAYERS],



    for(; r<MAX_PLAYERS; r++)
    {
    if(!IsPlayerConnected(r))continue;
    GetPlayerHealth(r,health); ACNewHealth[r] = health;
    GetPlayerArmour(r,armour); ACNewArmour[r] = armour;
    ACNewMoney[r] = GetPlayerMoney(r);
    ResetPlayerWeapons(r);
    }



    public GivePlayerMoneyEx(playerid,money){
    ACNewMoney[playerid] = GetPlayerMoney(playerid) + money;
    return GivePlayerMoney(playerid,money);
    }


    public SetPlayerMoneyEx(playerid,money){
    ACNewMoney[playerid] = money;
    return GivePlayerMoney(playerid,money);
    }



    Ich habe überall GivePlayerMoneyEx im script ( sollte ich benutzen laut Hersteller des Anti Cheats )


    Kann mir jemand helfen ?



    Ps: Das gleiche ist auch mit Waffen.



    Mfg Saphire

    2 Mal editiert, zuletzt von Saphire ()

  • Mach es viel einfacher

    new money[playerid];
    onplayerconnect(playerid) { money[playerid] = 0; }
    GetPlayerMoneyEx(playerid) {return money[playerid]; }
    GivePlayerMoneyEx(playerid, amount) { money[playerid] += amount; }


    Dann bei Sachen zum kaufen bspw.

    ocmd:
    {
    if ( GetPLayerMoneyEx(playerid) < 3000 ) return SCM(playerid,-1,"Du hast nicht genug Geld");
    }

    ik bin der vito c:


  • public GivePlayerMoneyEx(playerid,money){
    ACNewMoney[playerid] += money;
    ResetPlayerMoney(playerid);
    return GivePlayerMoney(playerid,ACNewMoney[playerid]);
    }


    public SetPlayerMoneyEx(playerid,money){
    ACNewMoney[playerid] = money;
    ResetPlayerMoney(playerid);
    return GivePlayerMoney(playerid,ACNewMoney[playerid]);
    }


    Bedanke dich bitte, wenn du den Beitrag als hilfreich empfandest!




  • Hat auch nichts gebracht.
    Ich kann mir trotzdem GeldCheaten und das Geld bleibt auch.



    Mfg Saphire

  • Im Endeffekt kann es dir ja egal sein ob bei ihm Visuell das Geld noch da ist solang der Server weiß das es nicht der Fall ist.
    Wenn du willst das dein Geld immer wieder berechtigt wird dann musst du wohl oder übel das Geld für den Client jedes mal in einem timer oder in einer anderen häufig aufgerufenen Methode zurücksetzen.
    In diesem Fall wird das Geld nur "richtig" Angezeigt falls er vom Server Geld hinzu/abgezogen bekommt.


    Wenn dies nicht das Problem ist solltest du es genauer beschreiben.

  • Es stimmt schon, er hat das Geld zwar nicht aber es wird ja angezeigt.
    Gehen wir mal davon aus das er 50.000$ hat und sich 1.000.000 Cheatet.
    Dieses Geld steht ja bei Ihm. Nun kann er sich mit 1 Mio kaufen was er will.
    Zwar landet er im Minus aber trotzdem hat er das was er gekauft hat.
    Das möchte ich verhindern, ich möchte nicht das er überhaupt die Chance hat sich was zu kaufen.

  • for(new r = 0; r<MAX_PLAYERS; r++)
    {
    if(!IsPlayerConnected(r))continue;
    GetPlayerHealth(r,health); ACNewHealth[r] = health;
    GetPlayerArmour(r,armour); ACNewArmour[r] = armour;
    ACNewMoney[r] = GetPlayerMoney(r);
    ResetPlayerWeapons(r);
    }