HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4.  
  5. #define PLUGIN "Ban Name"
  6. #define VERSION "1.0"
  7. #define AUTHOR "i dont know who"
  8.  
  9. #define FILE "names_banned.ini"
  10.  
  11. new Array:a_ban_names,
  12. array_size,
  13. look_file,
  14. g_cfg[64];
  15.  
  16. public plugin_init() {
  17. register_plugin(PLUGIN, VERSION, AUTHOR);
  18.  
  19. register_concmd("amx_ban_name", "fnBanName", ADMIN_BAN, "<#userid, AuthID or nick>");
  20. register_concmd("amx_addnick", "fnBanName", ADMIN_BAN, "<nick>");
  21.  
  22. set_task(1.5, "load_names");
  23. }
  24.  
  25. public load_names() {
  26. get_configsdir(g_cfg, charsmax(g_cfg));
  27. formatex(g_cfg, charsmax(g_cfg), "%s/%s", g_cfg, FILE);
  28.  
  29. if(a_ban_names) ArrayDestroy(a_ban_names);
  30. a_ban_names = ArrayCreate(48, 16);
  31.  
  32. new File = fopen(g_cfg, "rt");
  33.  
  34. if(File) {
  35. new Name[48];
  36. while(!feof(File)) {
  37. fgets(File, Name, charsmax(Name));
  38.  
  39. trim(Name);
  40.  
  41. if(!Name[0])
  42. continue;
  43.  
  44. ArrayPushString(a_ban_names, Name);
  45. }
  46.  
  47. array_size = ArraySize(a_ban_names);
  48.  
  49. fclose(File);
  50. look_file = 1;
  51. }
  52. else {
  53. look_file = 2;
  54. log_amx("Brak '%s' na serwerze", g_cfg);
  55. }
  56. }
  57.  
  58. public fnBanName(id, level, cid) {
  59. if(!cmd_access(id, level, cid, 2) || look_file == 0)
  60. return PLUGIN_HANDLED;
  61.  
  62. new param[48], target;
  63. read_argv(0, param, charsmax(param));
  64. new bool:isBan = equali(param, "amx_ban_name") ? true : false;
  65. read_argv(1, param, charsmax(param));
  66. if(isBan) {
  67. target = cmd_target(id, param);
  68. if(!target)
  69. return PLUGIN_HANDLED;
  70.  
  71. get_user_name(target, param, charsmax(param));
  72. }
  73. if(checkName(param)) {
  74. console_print(id, "Neved miatt kitiltva!");
  75. return PLUGIN_HANDLED;
  76. }
  77. write_file(g_cfg, param);
  78. console_print(id, "Zbanowano!");
  79.  
  80. ArrayPushString(a_ban_names, param);
  81. array_size = ArraySize(a_ban_names);
  82.  
  83. if(isBan)
  84. server_cmd("amx_kick #%d ^"Valtoztatsd meg a neved!^"", get_user_userid(target));
  85.  
  86. return PLUGIN_HANDLED;
  87. }
  88.  
  89. bool:checkName(name[]) {
  90. new szName[48], bool:check, i;
  91.  
  92. for(i=0; i<array_size; i++) {
  93. ArrayGetString(a_ban_names, i, szName, charsmax(szName));
  94.  
  95. if(equali(name, szName)) {
  96. check = true;
  97.  
  98. break;
  99. }
  100. }
  101.  
  102. return check;
  103. }
  104.  
  105. public client_putinserver(id) {
  106. if(is_user_bot(id))
  107. return PLUGIN_CONTINUE;
  108.  
  109. if(array_size) {
  110. new name[48];
  111. get_user_name(id, name, charsmax(name));
  112. if(checkName(name))
  113. server_cmd("amx_kick #%d ^"Valtoztatsd meg a neved!^"", get_user_userid(id));
  114. }
  115. else if(look_file != 2)
  116. set_task(2.0, "client_putinserver", id);
  117.  
  118. return PLUGIN_CONTINUE;
  119. }
  120.  
  121. public client_infochanged(id) {
  122. if(is_user_bot(id))
  123. return PLUGIN_CONTINUE;
  124.  
  125. new newName[48], oldName[48];
  126. get_user_info(id, "name", newName, charsmax(newName));
  127. get_user_name(id, oldName, charsmax(oldName));
  128.  
  129. if(!equali(newName, oldName) && checkName(newName))
  130. server_cmd("amx_kick #%d ^"Valtoztatsd meg a neved!^"", get_user_userid(id));
  131.  
  132. return PLUGIN_CONTINUE;
  133. }