946ben's Antis v3.1

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
  • Was ist das


    Es handelt sich hierbei um ein Anti-Cheat-System, dass mehrere Sachen verbieten oder auch verhindern kann.
    Ich konnte es leider nur mit mir selber testen, deshalb kann ich nicht genau sagen, wie es bei mehreren Spielern arbeitet, jedoch sollte es eigentlich funktionieren.
    Man kann selber einstellen, was verboten ist.
    Anders als bei den meisten Anti-Cheat-Systemen kann man hier nicht einfach nur Vergehen bestrafen, sondern sie auch verhindern.



    Was kann bestraft werden


    Folgende Sachen können mit einem Kick bzw. Bann bestraft werden:

    • Jetpack
    • DriveBy/Totparken (Fahrer)
    • DriveBy (allgemein; bitte beachten dass nur eins von beidem aktiviert sein darf)
    • Minigun
    • Flammenwerfer
    • Raketenwerfer
    • HS-Raketenwerfer
    • Paketbomben
    • Motorsäge
    • Molotv Cocktails
    • Geld-Hacks (Hinweise weiter unten bitte beachten)



    Was kann verhindert werden


    Folgende Sachen können auf Wunsch unmöglich gemacht werden (durch Waffen abnehmen):

    • DriveBy (Fahrer)
    • DriveBy (Allgemein)



    Infos zum Anti-Geld-Hack


    Der Anti-Geld-Hack funktioniert so, dass das Geld Serverside gemacht wird. Damit das funktioniert, muss auch der Gamemode und alle anderen FilterScripts (wo mit Geld gearbeitet wird) editiert werden.
    Überall wo das Geld verändert wir muss direkt drunter sowas hier:
    SetPVarInt(playerid, "A_MONEY", GetPVarInt(i, "A_MONEY")+wert);
    Wird Geld abgezogen muss das + durch ein - ersetzt werden und der Wert muss dann natürlich auch so gesetzt werden wie der Wert von GivePlayerMoney.
    Wer sowas nicht möchte kann die Anti-Money-Hack auch einfach abschalten.



    Wie konfiguriere ich das ganze


    Die einzelnen Sachen die verboten sein sollen, kann man ganz einfach selbst bestimmen.
    In der folgenden Passage muss man einfach unerwünschtes auskommentieren:
    // Welche Sachen sollen verboten werden: einfach auskommentieren oder anders herum
    #define ANTI_JETPACK // Jetpack
    #define ANTI_MINIGUN // Minigun
    //#define ANTI_DRIVEBY1 // DriveBy-Kills/Totparken (Nur als Fahrer)
    #define ANTI_DRIVEBY2 // DriveBy-Kills/Totparken (Auch als Beifahrer)
    #define ANTI_FLAME // Flammenwerfer
    #define ANTI_ROCKET // Raketenwerfer
    #define ANTI_HS // HS-Raketenwerfer
    #define ANTI_STACHEL // Paketbomben
    #define ANTI_CHAIN // Motorsäge
    #define ANTI_MOLOTOV // Molotov Cocktails
    #define ANTI_INT // Interior-Kills
    #define ANTI_MONEY // Geld-Hacks (bitte Hinweise in der Vorstellung beachten)
    // -------------------------------------------------------------------------------
    // Welche Sachen sollen verhindert werden (Durch Waffen abnehmen etc.)
    #define NO_DRIVEBY1 // DriveBy (Fahrer) -> Waffen abnehmen
    #define NO_DRIVEBY2 // DriveBy (Allgemein) -> Waffen abnehmen
    // -------------------------------------------------------------------------------


    Ob man gekickt oder gebannt werden soll, kann man hier einstellen:
    // -------------------------------------------------------------------------------
    // Was soll womit bestraft werden (In Kick bzw. Ban umändern)
    #define P_DRIVEBY Kick // DriveBy-Strafe
    #define P_WEAPON Ban // Waffen-Hack-Strafe
    #define P_JETPACK Ban // JetPack-Hack-Strafe
    #define P_INTKILL Kick // Strafe für Interior-Kill
    #define P_MONEY Ban // Strafe für Money-Hacks
    // -------------------------------------------------------------------------------



    Zum Schluss noch der Pastebinlink:
    http://pastebin.com/TRzvxcEW



    Was kommt in nächsten Version
    -/



    Changelog
    -Kick/Ban einstellbar
    -Anti-Interior-Kill Bug behoben
    -Man kann jetzt auch die Strafe für Anti-Interior-Kill einstellen
    -Mega-Bug beim DriveBy verhindern gefixt
    -Anti-Money-Hack
    -Ressourcensparender durch Abfragen, ob der Player überhaupt connected ist
    -Durch Abfragen, ob man tunt sollte dies keine Probleme mehr machen


    Edits:
    Edit 01: Neue Version
    Edit 02: Edit1 eingefügt :D
    Edit 03: Rechtschreibfehler
    Edit 04: Noch einer ;(
    Edit 05: Neue Version (das geht schnell :D)
    Edit 06: Und nochmal ne neue Version
    Edit 07: Aussichten auf neue Version
    Edit 08: Neue Version
    Edit 09: Fehler bei der Money-Hack Info
    Edit 10: Überschrift bearbeitet
    Edit 11: Update

    11 Mal editiert, zuletzt von Ternary ()

  • Das Filterscript bietet nur gegen offensichtlichen Hacks Schutz aber nicht gegen Geld oder ähnliche Hacks.
    Daher bewerte ich es für nicht brauchbar da es einfach viele andere gibt die auch so sind und besser.


    Dennoch schätze ich es das du deine Zeit darin investiert hast und es jetzt gratis anbietest.

  • Ich mach ma kurz ein paar Anmerkungen:


    for(new i=0; i<13; i++)
    {
    weapons[playerid][i] = 0;
    ammos[playerid][i] = 0;
    }
    Was zu Hölle wird das?
    Nutze doch einfach
    ResetPlayerWeapons


    for (new i=0; i<13; i++)
    {
    GetPlayerWeaponData(playerid, i, weapons[playerid][i], ammos[playerid][i]);
    weapons[playerid][i] = 0;
    ammos[playerid][i] = 0;
    }
    Und Was ist das?
    ResetPlayerWeapons FTW?
    Wenn du das so lässt bekommt der Spieler seine Waffen nicht wieder -> ist total Wirkungslos deine Methode


    Außerdem hab ich dir schoma gesagt das strings mit 128 Zeichen total überflüssig sind, wenn sie nicht vollständig genutzt werden

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

    Margarete Stokowski


  • 12 Sachen? Wow echt super anti-cheat. Schade nur, dass es sehr vergleichbar mit dem ist, welches du kritisiert hast.
    Gucken wir uns mal die 12 funktionen an:


    Folgende Sachen können mit einem Kick bzw. Bann bestraft werden:

    • Jetpack
    • DriveBy/Totparken (Fahrer)
    • DriveBy (allgemein; bitte beachten dass nur eins von beidem aktiviert sein darf)
    • Minigun
    • Flammenwerfer
    • Raketenwerfer
    • HS-Raketenwerfer
    • Paketbomben
    • Motorsäge
    • Molotv Cocktails
    • Geld-Hacks (Hinweise weiter unten bitte beachten)


    Ist jetzt nicht so der hammer. Denn wenn man mal die mehrfach aufgezaehlten funktionen weglaesst besitzt dein anti-cheat 4 verschiedene funktionen, denn die ganzen waffen verbote sind recht oft aufgezaehlt und eigentlich genau das gleiche, wie in dem von dir kritisierten Script, nur dass du via hardcoding es ein wenig leichter gemacht hast es zu konfigurieren. Wobei du das mit den anti-weapon zeugs recht unprofessionell und nicht sehr ressourcen schonend geloest hast (fuer jede einzelne verbotene waffe jeweils 500 spieler durchlaufen).
    Bei dem anti-money cheat hast du dir ja auch nicht viel muehe gegeben. Nur einmal die interne Variable auf 0 gesetzt und in einem timer ueberprueft, ob der Spieler mehr Geld hat als in der Variable. Nichtmal dem Nutzer einen SetPlayerMoney/GivePlayerMoney Befehl zur Verfuegung gestellt, sondern der Nutzer muss sich selbst darum bemuehen die PVar Variable im Blick zu haben. (Btw. SetPVarInt(playerid, "A_MONEY", 0); sollte auch in ein #ifdef, sonst hat man fur jeden Spieler eine unbenutzte Variable die nur Speicherplatz wegnimmt.)


    Was kann verhindert werden
    Folgende Sachen können auf Wunsch unmöglich gemacht werden (durch Waffen abnehmen):

    • DriveBy (Fahrer)
    • DriveBy (Allgemein)


    Unmoeglich? Nicht.


    Nicht zu erwaehnen, dass man mit dem bekanntesten sa-mp cheat tool einfach jeden 'mal so eben' bannen, oder kicken kann, wenn die OnPlayerDeath funktionen aktiviert sind. Echt cooler anti-cheat den du da hast. :)
    Ich wuerde nicht behaupten, dass dein anti-cheat sonderlich besser ist, als der von 'philipps13'. Mehr funktionen, aber sonst? Sicherer? Wenn jeder gekickt/gebannt wird ist der Server sicherer, aber ob er dann noch seine Funktion erfuellt? Einfacher zu nutzen? Nicht wirklich.
    Hoehere Konfigurabilitaet sicherlich, aber wuerde sich durch eine ini-datei, wie bei junkbuster noch leichter zu konfiguriren lassen.


    PS.:
    if(IsPlayerInAnyVehicle(killerid) || GetPlayerVehicleSeat(killerid) == 0)
    {
    format(string, sizeof(string), "[ANTI] %s wurde wegen DriveBy (Fahrer) bestraft.", GetName(killerid));
    Fahrer bestraft? Ok..

  • Ich wollt dir vorhin nochwas sagen, aber ich musste halt weg :D
    Also mach ich das hier
    Hoffe du verzeihst mir das.


    Es geht um dein Anti-Money ^^


    Wenn du jetzt durch Stuntbonus Geld bekommst wirst du gebannt ^^
    Einfach abschalten
    EnableStuntBonusForAll(0);//1 eingeschaltet 0 ausgeschaltet


    Außerdem, stimmt das Geld nicht wenn der Spieler Geld Spielsided ausgibt, damit mein ich Modshops oder Ammnunations, am besten mit GetPlayerMoney < GetPVarInt -> SetPVarInt abreiten

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

    Margarete Stokowski

  • SBIKA


    Die einzige Möglichkeit wäre, dass man die Waffen bekommt, während man im Auto ist.
    Dies ist meines erachtens nur dann möglich wenn man:
    1. Mit dem Auto ins ammunation reinfährt
    2. Man sich die Waffen hackt


    Und was ich da geschrieben hab, war nicht gemeint "Ahhh, meins ist viel besser als deins", sondern war ein Tipp.
    Wenn er Kritik vertragen kann, wird er sich mein System und auch andere Systeme angucken, und schauen was er an seinem verbessern kann.
    Und wenn meins dir oder ihm nicht gefällt, dann ist es halt so. Ich zwinge hier keine es zu benutzen und schon erst recht nicht, es zu mögen.
    Man kann es halt nicht jedem gerecht machen. Und solange es nur einen einzigen User gibt, dem es hilft und es ihn freut, ist es mir recht.
    Ich habe es gemacht weil mir langweilig war, nicht weil ich mal grade Lust hatte, mit meinem andere zu übertreffen und dann runterzumachen.
    Das war und wird nie meine Absicht sein.