seroff

CMD SHOW 3.0 By Seroff

Jan 10th, 2017
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.35 KB | None | 0 0
  1. #include <amxmodx>
  2.  
  3. #define LOG_FILE "addons/amxmodx/logs/cmd_show_logs.log"
  4. #define INI_FILE "addons/amxmodx/configs/cmd_show.ini"
  5. #define CONFIG_FILE "addons/amxmodx/configs/cmd_show.cfg"
  6.  
  7. #define szFlag ADMIN_KICK
  8.  
  9. new i_logs, i_bad, i_bantype, i_bantime,i_info,i_Immunity,Array:g_ArrayNotShow,Array:g_ArrayBadShow;
  10.  
  11. new PLUGIN[][]={
  12. "CMD SHOW",
  13. "3.0",
  14. "Seroff"
  15. };
  16.  
  17. public plugin_init()
  18. {
  19. register_plugin(PLUGIN[0],PLUGIN[1],PLUGIN[2]);
  20. i_logs=register_cvar("cmd_logs_enabled","1");
  21. i_bad=register_cvar("cmd_badshow_use","1");
  22. i_bantype=register_cvar("cmd_bantype","0");
  23. i_bantime=register_cvar("cmd_bantime","10080");
  24. i_info=register_cvar("cmd_infotype","1");
  25. i_Immunity=register_cvar("cmd_adm_immunity","1");
  26. }
  27.  
  28. public plugin_cfg()
  29. {
  30. g_ArrayNotShow=ArrayCreate(1024);
  31. g_ArrayBadShow=ArrayCreate(1024);
  32. if(!file_exists(CONFIG_FILE)){
  33. new szFileComment[33];
  34. formatex(szFileComment,sizeof(szFileComment)-1,"// %s v%s By %s^n",PLUGIN[0],PLUGIN[1],PLUGIN[2]);
  35. write_file(CONFIG_FILE,szFileComment,-1);
  36. write_file(CONFIG_FILE,"cmd_logs_enabled ^"1^" // Включить логи?",-1);
  37. write_file(CONFIG_FILE,"cmd_badshow_use ^"1^" // Проверять на плохие команды",-1);
  38. write_file(CONFIG_FILE,"cmd_bantype ^"0^" // Тип наказания: 0 - кик, 1 - бан по ip, 2 - advanced bans, 3 - AMXBANS 5, 4 - AMXBANS 6, 5 - SuperBan, 6 - Fresh Bans",-1);
  39. write_file(CONFIG_FILE,"cmd_bantime ^"10080^" // Время бана если тип наказания не равен 0",-1);
  40. write_file(CONFIG_FILE,"cmd_infotype ^"1^" // Куда сообщать админам: 0 - в чат и в консоль, 1 - в консоль, 2 - в чат",-1);
  41. write_file(CONFIG_FILE,"cmd_adm_immunity ^"1^" // Иммунитет для админов",-1);
  42. write_file(CONFIG_FILE,"^n^n",-1);
  43. write_file(CONFIG_FILE,"echo ^"^"",-1);
  44. write_file(CONFIG_FILE,"echo ^"CMD SHOW Config Executed^"",-1);
  45. write_file(CONFIG_FILE,"echo ^"^"",-1);
  46. write_file(CONFIG_FILE,"",-1);
  47. }
  48. if(!file_exists(INI_FILE)) set_fail_state("File ^"cmd_show.ini^" not found");
  49. new sBuffer[512],sLine,sLen,sCase;sLine=0;sCase=0;
  50. while(read_file(INI_FILE,sLine,sBuffer,64,sLen)!=0)
  51. {
  52. if(!sBuffer[0]||sBuffer[0]==';'||(sBuffer[0]=='/'&&sBuffer[1]=='/'))
  53. {
  54. sLine++;
  55. continue;
  56. }
  57. if(equal(sBuffer[0],"[NotShow]")) {
  58. sCase=1;
  59. }
  60. if(equal(sBuffer[0],"[BadShow]")) {
  61. sCase=2;
  62. }
  63. switch(sCase){
  64. case 1: ArrayPushString(g_ArrayNotShow,sBuffer);
  65. case 2: ArrayPushString(g_ArrayBadShow,sBuffer);
  66. }
  67. sLine++;
  68. }
  69. if(!ArraySize(g_ArrayNotShow) || !ArraySize(g_ArrayBadShow)) set_fail_state("Not info -> cmd_show.ini");
  70. server_cmd("exec %s",CONFIG_FILE);
  71. return 0;
  72. }
  73.  
  74.  
  75. public client_command(id)
  76. {
  77. if(!is_user_connected(id) || get_pcvar_num(i_Immunity)==1&&get_user_flags(id) & szFlag) return 0;
  78. new name[32],cmd[128], temp[128],i,s_Buffer[64];
  79. get_user_name(id, name, sizeof(name)-1);
  80. read_argv(0, temp, 127);
  81. if(!temp[0])return 0;
  82. for(i=0;i<ArraySize(g_ArrayNotShow);i++){
  83. ArrayGetString(g_ArrayNotShow,i,s_Buffer,63);
  84. if(equal(temp,s_Buffer)){
  85. return 0;
  86. }
  87. }
  88. if(get_pcvar_num(i_bad)==1){
  89. for(i=0;i<ArraySize(g_ArrayBadShow);i++){
  90. ArrayGetString(g_ArrayBadShow,i,s_Buffer,63);
  91. if(equal(temp,s_Buffer)){
  92. user_punish(id,s_Buffer);
  93. }
  94. }
  95. }
  96. for(i=0; i < read_argc (); i++){
  97. read_argv(i, temp, 127);
  98. format(cmd, 127, "%s %s", cmd, temp);
  99. }
  100. if(get_pcvar_num(i_logs))
  101. {
  102. log_to_file(LOG_FILE,"%s >> %s: [%s ]", get_user_flags(id) & szFlag ? "Admin" : "Player", name, cmd)
  103. }
  104. for(new client=1; client < 33; client++){
  105. if(get_user_flags(client) & szFlag){
  106. new content_msg[192];
  107. formatex(content_msg,sizeof(content_msg)-1,"^3%s ^1>> ^4%s^1: [^3%s ^1]", get_user_flags(id) & szFlag ? "Admin" : "Player", name, cmd);
  108. switch(get_pcvar_num(i_info)){
  109. case 0:{
  110. user_console(client,content_msg);
  111. ChatColor(client,content_msg);
  112. }
  113. case 1:{
  114. user_console(client,content_msg);
  115. }
  116. case 2:{
  117. ChatColor(client,content_msg);
  118. }
  119. }
  120. }
  121. }
  122. return 0;
  123. }
  124.  
  125. public user_punish(id,const szReason[],any:...){
  126. new sIp[16], sAuthid[34], sName[33],BanTime=get_pcvar_num(i_bantime),sUserid = get_user_userid(id);
  127. get_user_authid(id, sAuthid, sizeof(sAuthid)-1);
  128. get_user_name(id, sName, sizeof(sName)-1);
  129. get_user_ip(id, sIp, sizeof(sIp)-1,1);
  130. switch(get_pcvar_num(i_bantype))
  131. {
  132. case 0:
  133. {
  134. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  135. server_cmd("kick #%d %s обнаружен!",sUserid,szReason);
  136. }
  137. case 1:
  138. {
  139. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  140. server_cmd("addip %d %s;writeip",BanTime,sIp);
  141. }
  142. case 2:
  143. {
  144. if(containi(sAuthid,"STEAM_0:")!=-1)
  145. {
  146. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  147. server_cmd("amx_ban #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
  148. }
  149. else
  150. {
  151. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  152. server_cmd("amx_banip #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
  153. }
  154. }
  155. case 3:
  156. {
  157. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  158. server_cmd("amx_ban %d #%d ^"%s обнаружен!^"",BanTime,sUserid,szReason);
  159. }
  160. case 4:
  161. {
  162. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  163. server_cmd("amx_ban #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
  164. }
  165. case 5:
  166. {
  167. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  168. server_cmd("amx_superban #%d %d ^"%s обнаружен!^"",sUserid,BanTime,szReason);
  169. }
  170. case 6:
  171. {
  172. ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 использует запрещёную команду ^3[^4%s^3]^1!", sName, szReason);
  173. server_cmd("fb_ban %d #%d ^"%s обнаружен!^"",BanTime,sUserid,szReason);
  174. }
  175. }
  176. }
  177.  
  178. stock user_console(id,const msg_content[],any:...){
  179. new msg[192];
  180. vformat(msg, sizeof(msg)-1, msg_content, 3);
  181. format(msg,sizeof(msg)-1,"%s^n",msg);
  182. message_begin(MSG_ONE, 8, {0,0,0}, id);
  183. write_string(msg);
  184. message_end();
  185. }
  186.  
  187. /* Сток цветного чата */
  188. stock ChatColor(const id, const input[], any:...)
  189. {
  190. new count = 1, players[32]
  191. static msg[191]
  192. vformat(msg, 190, input, 3)
  193. replace_all(msg, 190, "!g", "^4") // Зелёный
  194. replace_all(msg, 190, "!y", "^1") // Стандартный
  195. replace_all(msg, 190, "!t", "^3") // Цвет команды
  196. if (id) players[0] = id; else get_players(players, count, "ch")
  197. {
  198. for (new i = 0; i < count; i++)
  199. {
  200. if (is_user_connected(players[i]))
  201. {
  202. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  203. write_byte(players[i]);
  204. write_string(msg);
  205. message_end();
  206. }
  207. }
  208. }
  209. }
Add Comment
Please, Sign In to add comment