Anti Moneyhack kickt mich?

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
  • Hey Leute,


    habe in meinem Selfmade ein Anti-Moneyhack System erstellt, doch irgendwie wenn ich in den PnS fahre und das Geld niedriger gesetzt werden soll kickt es mich:


    public OnPlayerMoneyCheck()
    {
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(GetPlayerMoney(i) > PlayerInfo[i][pGeld])
    {
    GetPlayerName(i, pName, MAX_PLAYER_NAME);
    PlayerInfo[i][pBanned] = 1;
    new string[500];
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(i, Name, sizeof(Name));
    format(string,sizeof(string),"{0xFF2800FF}[ANTI - CHEAT]{0xFFFFFFFF}%s hat vom System einen permanenten Spielauschluss erhalten. Grund: {0xFF2800FF}Moneyhackversuch",Name);
    SendClientMessageToAll(COLOR_WHITE,string);
    Kick(i);
    }
    if(GetPlayerMoney(i) < PlayerInfo[i][pGeld])
    {
    new Money;
    PlayerInfo[i][pGeld] = Money;
    }
    }
    return 1;
    }


    Jemand ne Idee?


  • Du kannst höchstens das Geld auf den alten Stand zurücksetzen letzten, Kick & Ban ist nicht so vorteilhaft, da das Geld was vom PnS, Casino etc. abgezogen wird immer noch mit GivePlayerMoney arbeitet, MFG. :D


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Aber wenn die Variable doch auf das Geld gesetzt wird ist das doch in Ordnung oder?


    Nein du kannst mit Serverseitigen Geld keine Bans / Kicks verteilen, sobald jemand den PnS benutzt oder die Casino Tische, wird er gebannt. Also du kannst nur "ResetPlayerMoney(playerid)" ausführen lassen (wäre auch am sinnvollsten)


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Interessant.


    Wieso setzt du dein Geld auf 0?


    Dein Fehler:
    Du prüfst zuerst ob das Geld des Spielers mehr ist, als dem Script bekannt ist - vollkommen in Ordnung.
    Dann prüfst du ob das Geld des Spielers weniger ist - auch OK
    Wenn dies der Fall ist, setzt du das auf 0
    new Money;
    PlayerInfo[i][pGeld] = Money;
    Das ist falsch.
    Du solltest es eher das aktuelle Geld zuweisen (GetPlayerMoney).
    Denn wenn du das nicht machst, kannst du nur mehr Geld haben, als das Script ansich weis, das du hast(was für ein Satzbau :D)


    Da 200 > 0


    ;)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Danke BlackAce <3 Du hast Recht es funktioniert :) DANKEEEEE