seroff

Anti Faker By Seroff

Feb 23rd, 2020
452
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.13 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <hamsandwich>
  3.  
  4. #define LOG_FILE "addons/amxmodx/logs/fake_detector.log"
  5.  
  6. new PLUGIN[][]={
  7. "Anti Faker",
  8. "1.0",
  9. "Seroff"
  10. };
  11.  
  12. new eDeafault[][]={
  13. "+forward",
  14. "-forward",
  15. "+jump",
  16. "-jump",
  17. "+duck",
  18. "-duck",
  19. "+back",
  20. "-back",
  21. "+left",
  22. "-left",
  23. "+right",
  24. "-right",
  25. "+showscores",
  26. "-showscores",
  27. "+attack",
  28. "-attack",
  29. "+attack2",
  30. "-attack2",
  31. "+moveup",
  32. "-moveup",
  33. "+movedown",
  34. "-movedown",
  35. "-mlook",
  36. "+mlook",
  37. "+moveleft",
  38. "-moveleft",
  39. "+moveright",
  40. "-moveright",
  41. "+reload",
  42. "-reload",
  43. "+klook",
  44. "-klook",
  45. "+speed",
  46. "-speed",
  47. "-commandmenu",
  48. "m_pitch",
  49. "rate",
  50. "hideconsole",
  51. "fps_max",
  52. "cl_updaterate",
  53. "cl_cmdrate",
  54. "ex_interp",
  55. "record"
  56. }
  57.  
  58. new i_logs,i_banreason,i_banmess,i_bantime,is_banned[33],Trie:sBadCommands;
  59.  
  60. public plugin_init() {
  61. register_plugin(PLUGIN[0],PLUGIN[1],PLUGIN[2]);
  62. register_message(get_user_msgid("TextMsg"), "stTextmsg");
  63.  
  64. sBadCommands=TrieCreate();
  65. i_logs=register_cvar("feke_logs_enabled","1");
  66. i_banreason=register_cvar("feke_reason","FakePlayer Detected!");
  67. i_banmess=register_cvar("feke_banmess","amx_ban [time] [userid] [reason]");
  68. i_bantime=register_cvar("feke_bantime","10080");
  69. register_srvcmd("gg_bb","ggbb_user");
  70. register_event("ResetHUD", "UserSpawn", "b");
  71. for(new i=0;i<sizeof(eDeafault);i++){
  72. TrieSetCell(sBadCommands, eDeafault[i], 1);
  73. }
  74. }
  75.  
  76. public ggbb_user(id){
  77. static sArgv[64];
  78. static sArgv1[64];
  79. read_argv(1, sArgv, 63);
  80. read_argv(2, sArgv1, 63);
  81. PunishPlayer(str_to_num(sArgv1),sArgv);
  82. }
  83.  
  84. public plugin_end() {
  85. TrieDestroy(sBadCommands);
  86. }
  87.  
  88. public stTextmsg(msg_id,msg_dest,id){
  89. static sArgv[64];
  90.  
  91. read_argv(0, sArgv, 63);
  92. remove_quotes(sArgv); trim(sArgv);
  93. new szArg2[32];
  94. get_msg_arg_string(2, szArg2, 31);
  95.  
  96. if (equal(szArg2, "#Game_unknown_command") ){
  97. if(is_banned[id])return;
  98. if(TrieKeyExists(sBadCommands, sArgv)){
  99. is_banned[id]=1;
  100. server_cmd("gg_bb ^"%s^" ^"%d^"",sArgv,id);
  101. }
  102. }
  103. }
  104.  
  105. public client_putinserver(id){
  106. is_banned[id]=0;
  107. }
  108.  
  109. #define TASKER_ID 242134123401322
  110.  
  111. public UserSpawn(id){
  112. if(!task_exists(id+TASKER_ID))set_task(0.2,"check_user",id+TASKER_ID);
  113. }
  114.  
  115. public check_user(id){
  116. id-=TASKER_ID;
  117. if(!is_user_alive(id))return;
  118. for(new i=0;i<sizeof(eDeafault);i++){
  119. console_cmd(id,eDeafault[i]);
  120. }
  121. }
  122.  
  123.  
  124. public PunishPlayer(id, const Value[]){
  125. if(is_user_alive(id)) user_kill(id,1);
  126. new szUserId[10], szSteam[33], szIp[17], szTime[10], szBanString[128],izReason[128],sName[32]
  127. formatex(szUserId, charsmax(szUserId), "#%d", get_user_userid(id));
  128. get_pcvar_string(i_banmess,szBanString,charsmax(szBanString));
  129. get_pcvar_string(i_banreason,izReason,charsmax(izReason));
  130. get_user_authid(id, szSteam, charsmax(szSteam));
  131. get_user_ip(id, szIp, charsmax(szIp), 1);
  132. get_user_name(id,sName,31);
  133. get_pcvar_string(i_bantime, szTime, charsmax(szTime));
  134. replace(szBanString, charsmax(szBanString), "[userid]", szUserId);
  135. replace(szBanString, charsmax(szBanString), "[steam]", szSteam);
  136. replace(szBanString, charsmax(szBanString), "[ip]", szIp);
  137. replace(szBanString, charsmax(szBanString), "[reason]", izReason);
  138. replace(szBanString, charsmax(szBanString), "[time]", szTime);
  139. if(get_pcvar_num(i_logs))log_to_file(LOG_FILE,"%s >> %s: [%s]", sName, Value, izReason);
  140. server_cmd("%s", szBanString);
  141. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 наказан по причине ^3[^4%s^3]^1!", sName, izReason);
  142. }
  143.  
  144. /* Сток цветного чата */
  145. stock ChatColor(const id, const input[], any:...)
  146. {
  147. new count = 1, players[32]
  148. static msg[191]
  149. vformat(msg, 190, input, 3)
  150. replace_all(msg, 190, "!g", "^4") // Зелёный
  151. replace_all(msg, 190, "!y", "^1") // Стандартный
  152. replace_all(msg, 190, "!t", "^3") // Цвет команды
  153. if (id) players[0] = id; else get_players(players, count, "ch")
  154. {
  155. for (new i = 0; i < count; i++)
  156. {
  157. if (is_user_connected(players[i]))
  158. {
  159. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  160. write_byte(players[i]);
  161. write_string(msg);
  162. message_end();
  163. }
  164. }
  165. }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment