Advertisement
Guest User

Anti-Cheat c0.2a

a guest
Aug 21st, 2010
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.78 KB | None | 0 0
  1. /*
  2.  
  3.     HellBeast's Anti-Cheat..
  4.     Visit HellBeast.Net for more project info.
  5.    
  6.     Money Hack notes...
  7.     This system isn't 100% accurate, Just to let you know.
  8. */
  9.  
  10. #include <a_samp>
  11. #include <dini>
  12.  
  13. #define MaxSpeed 230
  14. #define RED 0xFB0000FF
  15.  
  16. new AGWeap[MAX_PLAYERS]; // Admin Given Weap
  17. new SpeedHacker[MAX_PLAYERS]; // Speed Hacks
  18. new Interior[MAX_PLAYERS]; // Interior Hack
  19. new Cash[MAX_PLAYERS];
  20.  
  21. forward Weapon();
  22. forward Speed();
  23. forward JetPack();
  24. forward ACLog(string[]);
  25. forward SendClientMessageToAdmins(color,string[],alevel);
  26. forward MoneyHack();
  27.  
  28. public ACLog(string[])
  29. {
  30.     new entry[128];
  31.     format(entry, sizeof(entry), "%s\r\n",string);
  32.     new File:hFile;
  33.     hFile = fopen("Anti-Cheat.log", io_append);
  34.     if (hFile)
  35.     {
  36.         fwrite(hFile, entry);
  37.         fclose(hFile);
  38.     }
  39. }
  40.  
  41. public Speed()
  42. {
  43.     for(new i = 0; i < MAX_PLAYERS; i++)
  44.     {
  45.         if(IsPlayerConnected(i) == 1) // Are they connected
  46.         {
  47.             if(GetPlayerSpeed(i) >= MaxSpeed) // Max Speed
  48.             {
  49.                 if(!IsPlayerNPC(i)) // Are they an NPC?
  50.                 {
  51.                     if(!IsPlayerAdmin(i)) // Are they admin?
  52.                     {
  53.                         new playerState = GetPlayerState(i);
  54.                         if(playerState == PLAYER_STATE_DRIVER) // Are they Driving?
  55.                         {
  56.                             new G = GetVehicleModel(GetPlayerVehicleID(i)); // Are they not iin a plane
  57.                             if(G == 592 || G == 577 || G == 511 || G == 512 || G == 593 || G == 520 || G == 553 || G == 476 || G == 519 || G == 460 || G == 513 || G == 425)
  58.                             {
  59.                                 return 1;
  60.                             }
  61.                             else
  62.                             {
  63.                                 SpeedHacker[i] += 1;
  64.                                 new pname[MAX_PLAYER_NAME], string[128];
  65.                                 GetPlayerName(i, pname, sizeof(pname));
  66.                                 format(string, sizeof(string), "ReportBot: %s[%d] is a possible speed hacker! /spec %d to find out!", pname, i, i);
  67.                                 SendClientMessageToAdmins(RED, string, 1);
  68.                             }
  69.                             if(SpeedHacker[i] >= 3)
  70.                             {
  71.                                 AntiCheatReport(i, "Speed Hack");
  72.                             }
  73.                         }
  74.                     }
  75.                 }
  76.             }
  77.         }
  78.     }
  79.     return 1;
  80. }
  81.  
  82. public Weapon()
  83. {
  84.     for(new p = 0; p < MAX_PLAYERS; p++)
  85.     {
  86.         if(IsPlayerConnected(p))
  87.         {
  88.             if(!IsPlayerAdmin(p))
  89.             {
  90.                 if(AGWeap[p] == 0)
  91.                 {
  92.                     new weapons[13][2];
  93.                     for (new i = 0; i < 13; i++)
  94.                     {
  95.                         GetPlayerWeaponData(p, i, weapons[i][0], weapons[i][1]);
  96.                         switch(weapons[i][0])
  97.                         {
  98.                             case 35..38,44,45: AntiCheatReport(p, "Weapon Hacks");
  99.                         }
  100.  
  101.                     }
  102.                 }
  103.             }
  104.         }
  105.     }
  106.     return 1;
  107. }
  108.  
  109. public JetPack()
  110. {
  111.     for(new i;i<MAX_PLAYERS;i++)
  112.     {
  113.         if(IsPlayerConnected(i))
  114.         {
  115.             if(!IsPlayerAdmin(i))
  116.             {
  117.                 if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
  118.                 {
  119.                     AntiCheatReport(i, "Jetpack");
  120.                 }
  121.             }
  122.         }
  123.     }
  124.     return 1;
  125. }
  126.  
  127. public MoneyHack()
  128. {
  129.     for(new i; i < MAX_PLAYERS; i++)
  130.     {
  131.         if(IsPlayerConnected(i))
  132.         {
  133.             if(!IsPlayerAdmin(i))
  134.             {
  135.                 if(GetPlayerMoney(i) != Cash[i])
  136.                 {
  137.                     AntiCheatReport(i, "Money Hack");
  138.                 }
  139.             }
  140.         }
  141.     }
  142.     return 1;
  143. }
  144.  
  145. public OnPlayerDisconnect(playerid, reason)
  146. {
  147.     SpeedHacker[playerid] = 0;
  148.     return 1;
  149. }
  150.  
  151. public OnPlayerSpawn(playerid)
  152. {
  153.     AGWeap[playerid] = 0;
  154.     return 1;
  155. }
  156.  
  157. public OnFilterScriptInit()
  158. {
  159.     SetTimer("Weapon",5000,1);
  160.     SetTimer("Speed",5000,1);
  161.     SetTimer("JetPack",5000,1);
  162.     SetTimer("MoneyHack",5000,1);
  163.    
  164.     print("HellBeast's Anti-Cheat System v0.1");
  165.    
  166.     return 1;
  167. }
  168.  
  169. public OnPlayerInteriorChange(playerid,newinteriorid,oldinteriorid)
  170. {
  171.     if(Interior[playerid] != 0)
  172.     {
  173.         AntiCheatReport(playerid, "Interior Hack");
  174.     }
  175.     return 1;
  176. }
  177.  
  178. stock GetPlayerSpeed(playerid)
  179. {
  180.     new Float:ST[4];
  181.     if(IsPlayerInAnyVehicle(playerid))
  182.     GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
  183.     else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
  184.     ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 179.28625;
  185.     return floatround(ST[3]);
  186. }
  187.  
  188. stock AntiCheatReport(playerid, reason[])
  189. {
  190.  
  191.     new pname[MAX_PLAYER_NAME], string[128];
  192.     format(string, sizeof(string), "I have been caught hacking! [Reason: %s]",reason);
  193.     SendPlayerMessageToAll(playerid, string);
  194.     GetPlayerName(playerid, pname, sizeof(pname));
  195.     printf("%s has been banned for %s",pname,reason);
  196.     format(string, sizeof(string), "%s has been banned for %s\n\r",pname,reason);
  197.     ACLog(string);
  198.     BanEx(playerid, reason);
  199.     return 1;
  200. }
  201.  
  202. public SendClientMessageToAdmins(color,string[],alevel)
  203. {
  204.     for(new i = 0; i < MAX_PLAYERS; i++)
  205.     {
  206.         if(IsPlayerConnected(i))
  207.         {
  208. //          if (PlayerInfo[i][Admin] >= alevel)
  209. //          {
  210.                 SendClientMessage(i, color, string);
  211.                 printf("%s", string);
  212. //          }
  213.         }
  214.     }
  215.     return 1;
  216. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement