Anti-Waffenhack

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
  • Es ist kein Anti-Waffenhack.
    Es ist ein Bad-Weapon System.. Etwas was mein 12 Jähriger Bruder scripten kann und das ohne sonderliche vorkentnisse.
    Ausserdem gibts sowas schon.. Aber wirklich gute AntiWeaponHack systeme fehlen.

  • Als 10% aufm Desktop, keine Ahnung wie Du darauf kommst, trotzdem kann man drehen und Wenden wie man will. Dieses "Callback" ist nun mal für andere Sachen gedacht.


    Für was soll denn das sonst sein, als für Anticheats?


    Im Changelog steht das sogar explizit drin

    Zitat

    Added OnPlayerUpdate, a callback fired for every player network update. This will help server-side anti-cheat.

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

    Margarete Stokowski

  • Firefan? Kann er das, ja? Ohne Pawn-Kenntnisse? Alles klar.


    Dann ist es halt ein "Verbotene-Waffen-Erkenn-System", mein Gott.. Es bannt jedenfalls Spieler die eine verbotene Waffe trägt - und SPieler die verbotenes machen werden gebannt.

    Liebe Grüße


    Marcel

  • Naja was soll man sagen...


    Was ich dir noch mit geben kann, ist:
    Das man das kleine System etwas Dynamischer machen kann , wie z.B Bools benutzen, Hier mal ein Beispiel:

    new bool:Waffenerlaubnis;

    Dann Könnte man eine Schleife machen:



    if(Waffenerlaubnis == false)
    {
    Ban(playerid);
    }

  • Naja, das ist nicht wirklich gut :thumbdown:
    Und meines Wissens nach ist GetPlayerWeapon(playerid); nicht geeignet, da es nicht richtig funktioniert.
    GetPlayerWeaponState ist besser :thumbup:


    /e und ein ResetPlayerWeapons(playerid); vor einem Ban ist ziemlich sinnlos :rolleyes:
    Für die Mühe 2/10 :pinch:

  • Man kann auch viele Resourcen sparen wenn man das so macht


    #include <a_samp>



    public OnFilterScriptInit()
    {
    print("Forbidden Weapon FS Loaded");
    }


    public OnFilterScriptExit()
    {
    print("Forbidden Weapon FS Unloaded");
    }



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys & KEY_FIRE && ForbiddenWeap(playerid) && !IsPlayerAdmin(playerid))
    {
    new pname[MAX_PLAYER_NAME];
    new string[124];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(string, sizeof(string), "SERVER: %s has been banned! Reason: Forbidden weapon", pname);
    SendClientMessageToAll(0xffffffff,string);
    print(string);
    BanEx(playerid,string);
    return 1;
    }
    return 0;
    }


    stock ForbiddenWeap(playerid)
    {
    new weap = GetPlayerWeapon(playerid);
    if( weap == 35 || weap == 36 || weap == 37 || weap == 38 || weap == 39 || weap == 40 || weap == 41 || weap == 42 || weap == 43 || weap == 44 || weap == 45)
    {
    return true;
    }
    return false;
    }


    //===========================Forbidden Weapons==================================
    //id 35 = Rocket Launcher
    //id 36 = HS Rocket Launcher
    //id 37 = Flamethrower
    //id 38 = Minigun
    //id 39 = Satchel Charge
    //id 40 = Detonator
    //id 41 = Spraycan
    //id 42 = Fire Extinguisher
    //id 43 = Camera
    //id 44 = Nightvision Goggles
    //id 45 = Thermal Goggles


    Ja es stimmt, der Spieler kann sich die Waffe cheaten, jedoch wird er gebannt wenn er sie abfeuert ;)