Advertisement
Face9000

[Face9000] Anti Speed Hack

Jul 13th, 2015
2,863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.20 KB | None | 0 0
  1. //Anti SpeedHack by Face9000 - This filterscript can be used as external script or you can implement it in your gamemode.
  2. //Just copy the callbacks and functions i used here.
  3.  
  4. #include <a_samp>
  5. #include <foreach>
  6.  
  7. forward AntiSpeedHack();
  8. new SpeedWarnings[MAX_PLAYERS];
  9.  
  10. #define red "{FF002B}"
  11. #define MAX_SPEED_WARNINGS 3 //After 3 warnings by the ANTICHEAT, ban the player. You can edit it as you want.
  12. #define MAX_SPEED 450 //450km/h is good enough, this will count high jumps and shit (such as Mount Chilliad jump).
  13.  
  14. new VehicleNames[][] =
  15. {
  16.   "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster",
  17.   "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  18.   "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
  19.   "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach",
  20.   "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow",
  21.   "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
  22.   "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic",
  23.   "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",
  24.   "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher",
  25.   "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
  26.   "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher",
  27.   "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain",
  28.   "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck",
  29.   "Fortune", "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan",
  30.   "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder",
  31.   "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster",
  32.   "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  33.   "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30",
  34.   "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  35.   "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car", "Police Car", "Police Car",
  36.   "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs",
  37.   "Boxville", "Tiller", "Utility Trailer"
  38. };
  39.  
  40. public OnFilterScriptInit()
  41. {
  42.     print("\n--------------------------------------");
  43.     print("Anti SpeedHack By Face9000 Loaded.");
  44.     print("--------------------------------------\n");
  45.     SetTimer("AntiCheat", 1000, 1);
  46.     return 1;
  47. }
  48.  
  49. public OnFilterScriptExit()
  50. {
  51.     print("\n--------------------------------------");
  52.     print("Anti SpeedHack By Face9000 Unloaded.");
  53.     print("--------------------------------------\n");
  54.     return 1;
  55. }
  56.  
  57. main()
  58. {
  59.     print("\n----------------------------------");
  60.     print("Anti SpeedHack By Face9000 Loaded.");
  61.     print("----------------------------------\n");
  62. }
  63.  
  64. //Stocks And Functions Needed For Anti SpeedHack Check
  65. stock GetPlayerSpeed(playerid,bool:kmh)
  66. {
  67.   new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
  68.   if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),Vx,Vy,Vz); else GetPlayerVelocity(playerid,Vx,Vy,Vz);
  69.   rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz,2)));
  70.   return kmh?floatround(rtn * 100 * 1.61):floatround(rtn * 100);
  71. }
  72.  
  73. stock IsATrain(vehicleid)
  74. {
  75.     switch(GetVehicleModel(vehicleid))
  76.     {
  77.         case 449,537,538,569,570,590: return 1;
  78.     }
  79.     return 0;
  80. }
  81.  
  82. stock IsAPlane(vehicleid)
  83. {
  84.     switch(GetVehicleModel(vehicleid))
  85.     {
  86.         case 460,464,476,511,512,513,519,520,553,577,592,593: return 1;
  87.     }
  88.     return 0;
  89. }
  90. /*-----------------------------------------------------*/
  91.  
  92. public OnPlayerConnect(playerid)
  93. {
  94.     SpeedWarnings[playerid] = 0;
  95.     SetPVarInt(playerid, "spawned", 0);
  96.     return 1;
  97. }
  98.  
  99. public OnPlayerRequestClass(playerid, classid)
  100. {
  101.     SetPVarInt(playerid, "spawned", 0);
  102.     return 1;
  103. }
  104.  
  105. public OnPlayerDeath(playerid, killerid, reason)
  106. {
  107.     SetPVarInt(playerid, "spawned", 0);
  108.     return 1;
  109. }
  110.  
  111. public OnPlayerSpawn(playerid)
  112. {
  113.     SetPVarInt(playerid, "spawned", 1);
  114.     return 1;
  115. }
  116.  
  117. public AntiSpeedHack()
  118. {
  119.     foreach (new i : Player)
  120.     {
  121.     new currentspeed = GetPlayerSpeed(i,true);
  122.     if(currentspeed > MAX_SPEED)
  123.     {
  124.     new tmpcar = GetPlayerVehicleID(i), surf = GetPlayerSurfingVehicleID(i);
  125.     if(!IsAPlane(tmpcar) && !(GetPlayerState(i) == PLAYER_STATE_PASSENGER) && !(IsATrain(tmpcar)) && surf == INVALID_VEHICLE_ID && GetPVarInt(i, "spawned") == 1)
  126.     {
  127.     new sendername[MAX_PLAYER_NAME];
  128.     GetPlayerName(i, sendername, sizeof(sendername));
  129.     new vehicleid = GetPlayerVehicleID(i);
  130.     new Float:hp; GetVehicleHealth(vehicleid, hp);
  131.     new string[150];
  132.     format(string, sizeof(string), "** System Report: Possible speedhack by %s (%d) (%d km/h) in a %s with %.2f VehHp.",sendername,i,currentspeed,VehicleNames[GetVehicleModel(GetPlayerVehicleID(i))-400],hp);
  133.     SendClientMessageToAll(-1, string); //Edit it for your own system, by default is showing to ALL players.
  134.     SpeedWarnings[i]++; //Increase checks to be sure we get few false positives.
  135.     if(SpeedWarnings[i] >= MAX_SPEED_WARNINGS) //For MAX_SPEED_WARNING check the #define to edit it as you want.
  136.     {
  137.     new ok[128];
  138.     new IP[16];
  139.     GetPlayerIp(i, IP, sizeof(IP));
  140.    
  141.     //Ban Message - Add your ban logging system or other related to bans.
  142.     format(ok, sizeof(ok), "** System Ban: %s (%d) - Speedhack (%d km/h)", sendername,i,currentspeed);
  143.     SendClientMessageToAll(-1, ok);
  144.     Ban(i);
  145.     //
  146.    
  147.     SpeedWarnings[i] = 0; //Resets the speed hack warnings.
  148.     }
  149.     }
  150.     }
  151.     }
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement