Advertisement
Guest User

Untitled

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