Anti-Weapon-Cheat

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
  • Hallo. Unser Scripter sucht derzeit ein Anti-Weapon-Cheat was so aufgebaut ist:


    - Per GivePlayerWeaponEx(playerid, weaponid, ammo); Einem Spieler die Waffen geben wodurch Variablen gesetzt werden.
    - Per ResetPlayerWeaponsEx(playerid); Dem Spieler alle Waffen entnehmen und Variablen auf 0 setzen.
    - Jede Sekunde 1 Timer durchgehen lassen, der checkt ob die Variablen alle mit den Waffen übereinstimmen.
    Wenn man sich dann eine Waffe hackt wird man gebannt/gekickt.
    Das soll dann aber auch 100% funktionieren da er keine Fehlbanns haben möchte.
    Und es soll auch nichts passieren, wenn ein Admin per /givegun einem Spieler bspw. eine Minigun gibt.
    Nur wenn man die Waffen cheatet.


    Danke ! 8o


    © by me :D

  • @Apfel
    Anscheinend nicht, er befürchtet dass es dann zu Fehlbanns kommt.


    DarkShadow.
    Welches Include? Er hat kein Include, das System hat er ja ebenfalls noch nicht.


    €dit:
    Ich soll euch das hier von ihm geben.
    Wenn man sich mit /gun eine Waffe macht, wird man trotzdem gebannt.

    Spoiler anzeigen


    stock CheckWeapons(playerid)
    {
    new string[128];
    new curWeapons[13], curAmmo[13];
    for(new x=0;x<13;x++){
    GetPlayerWeaponData(playerid, x, curWeapons[x], curAmmo[x]);
    if((curWeapons[x] && curAmmo[x]) != (Spieler[playerid][pWeapon][x] && Spieler[playerid][pAmmo][x]))
    {
    format(string, sizeof(string), "%s wurde vom Server gekickt, Grund: Waffenhack", GetName(playerid));
    SendClientMessageToAll(COLOR_DARKRED, string);
    Kick(playerid);
    }
    }
    return 1;
    }

    Spoiler anzeigen
    CMD:gun(playerid, params[])
    {
    new gunID;
    if(sscanf(params, "i", gunID))return 1;
    GivePlayerWeaponEx(playerid, gunID, 9999);
    return 1;
    }

    Spoiler anzeigen
    CMD:gun2(playerid, params[])
    {
    new gunID;
    if(sscanf(params, "i", gunID))return 1;
    GivePlayerWeapon(playerid, gunID, 9999);
    return 1;
    }

    Spoiler anzeigen
    stock GivePlayerWeaponEx(playerid, gunid, ammo)
    {
    new slot = GetWeaponSlot(gunid);
    Spieler[playerid][pWeapon][slot] = gunid;
    Spieler[playerid][pAmmo][slot] = ammo;
    GivePlayerWeapon(playerid, gunid, ammo);
    return 1;
    }

    Spoiler anzeigen
    stock ResetPlayerWeaponsEx(playerid)
    {
    for(new x=0;x<13;x++){
    Spieler[playerid][pWeapon][x] = 0;
    Spieler[playerid][pAmmo][x] = 0;
    ResetPlayerWeapons(playerid);
    }
    return 1;
    }

    Spoiler anzeigen
    stock GetWeaponSlot(weaponid)
    {
    new slot;
    switch(weaponid)
    {
    case 0,1: slot = 0;
    case 2 .. 9: slot = 1;
    case 10 .. 15: slot = 10;
    case 16 .. 18, 39: slot = 8;
    case 22 .. 24: slot =2;
    case 25 .. 27: slot = 3;
    case 28, 29, 32: slot = 4;
    case 30, 31: slot = 5;
    case 33, 34: slot = 6;
    case 35 .. 38: slot = 7;
    case 40: slot = 12;
    case 41 .. 43: slot = 9;
    case 44 .. 46: slot = 11;
    }
    return slot;
    }


    © by me :D