Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
83
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 <colorchat>
  3.  
  4. #define PLUGIN "Krotka Pilka na Cheatera"
  5. #define VERSION "1.0"
  6. #define AUTHOR "JAILBREAK TEAM"
  7.  
  8. #define FLAGA ADMIN_BAN
  9. #define FLAGAMIN ADMIN_KICK
  10.  
  11. #define ForPlayers(%1) for(new %1 = 1; %1 <= 32; %1++)
  12.  
  13. new const banMenuCommands[][] =
  14. {
  15. "/b"
  16. };
  17.  
  18. new const banMenuCommandsIP[][] =
  19. {
  20. "/bi"
  21. };
  22.  
  23. new const banMenuCommandsSID[][] =
  24. {
  25. "/bs"
  26. };
  27.  
  28.  
  29. public plugin_init()
  30. {
  31. register_plugin(PLUGIN, VERSION, AUTHOR);
  32.  
  33. registerCommands(banMenuCommands, sizeof(banMenuCommands), "menuChoice");
  34. registerCommands(banMenuCommandsIP, sizeof(banMenuCommandsIP), "playerChoiceIP");
  35. registerCommands(banMenuCommandsSID, sizeof(banMenuCommandsSID), "playerChoiceSID");
  36. }
  37.  
  38. public menuChoice(index)
  39. {
  40. if(!(get_user_flags(index) & FLAGA))
  41. {
  42. return PLUGIN_HANDLED;
  43. }
  44.  
  45. new menuIndex = menu_create("\yKrotka-Pilka by\r JAILBREAK TEAM^n\yWybierz sposob na zbanowanie:", "menuChoice_handler"),
  46. menuCallback = menu_makecallback("accesMenu");
  47.  
  48. menu_additem(menuIndex, "Zbanuj na \rIP", _, _, menuCallback);
  49. menu_additem(menuIndex, "Zbanuje na \rSID", _, _, menuCallback);
  50.  
  51. menu_display(index, menuIndex);
  52.  
  53. return PLUGIN_HANDLED;
  54. }
  55.  
  56. public menuChoice_handler(index, menu, item)
  57. {
  58. menu_destroy(menu);
  59.  
  60. if(item == MENU_EXIT)
  61. {
  62. return PLUGIN_HANDLED;
  63. }
  64.  
  65. choosePlayer(index, item);
  66.  
  67. return PLUGIN_HANDLED;
  68. }
  69.  
  70. public choosePlayer(index, type)
  71. {
  72. new menuIndex = menu_create("\yWybierz gracza(IP):", "banMenu_handler"),
  73. menuCallback = menu_makecallback("accessMenu"),
  74. menuData[8],
  75. userName[33];
  76.  
  77. ForPlayers(i)
  78. {
  79. if(!is_user_connected(i) || i == index)
  80. {
  81. continue;
  82. }
  83.  
  84. get_user_name(i, userName, charsmax(userName));
  85.  
  86. formatex(menuData, charsmax(menuData), "%i#%i", i, type);
  87.  
  88. menu_additem(menuIndex, userName, menuData, _, menuCallback);
  89. }
  90.  
  91. menu_display(index, menuIndex);
  92.  
  93. return PLUGIN_HANDLED;
  94. }
  95.  
  96. public accessMenu(index)
  97. {
  98. if(get_user_flags(index) & FLAGA)
  99. {
  100. return ITEM_ENABLED;
  101. }
  102.  
  103. return ITEM_DISABLED;
  104. }
  105.  
  106. public banMenu_handler(index, menu, item)
  107. {
  108. if(item == MENU_EXIT)
  109. {
  110. menu_destroy(menu);
  111.  
  112. return PLUGIN_HANDLED;
  113. }
  114.  
  115. new target,
  116. selectedOption,
  117. menuData[8],
  118. playerIndexData[3],
  119. chosenOptionData[3],
  120. blank;
  121.  
  122. menu_item_getinfo(menu, item, blank, menuData, charsmax(menuData), _, _, blank);
  123.  
  124. menu_destroy(menu);
  125.  
  126. split(menuData, playerIndexData, charsmax(playerIndexData), chosenOptionData, charsmax(chosenOptionData), "#");
  127.  
  128. target = str_to_num(playerIndexData);
  129. selectedOption = bool:str_to_num(chosenOptionData);
  130.  
  131. if(!is_user_connected(target))
  132. {
  133. ColorChat(index, YELLOW, "[Krotka-Pilka]^x01 Gracza^x03 %i^x01 nie ma na serwerze!");
  134.  
  135. return PLUGIN_HANDLED;
  136. }
  137.  
  138. banPlayer(index, target, bool:selectedOption);
  139.  
  140. return PLUGIN_HANDLED;
  141. }
  142.  
  143. public banPlayer(admin, target, bool:ip)
  144. {
  145. new mapName[32],
  146. adminName[33],
  147. targetName[33],
  148. banTypeData[33];
  149.  
  150. get_mapname(mapName, charsmax(mapName));
  151.  
  152. get_user_name(admin, adminName, charsmax(adminName));
  153.  
  154. if(ip)
  155. {
  156. get_user_ip(target, banTypeData, charsmax(banTypeData));
  157.  
  158. server_cmd("amx_banip ^"0^" ^"%d^" ^"CHEATER^" ", banTypeData)
  159. }
  160. else
  161. {
  162. get_user_authid(target, banTypeData, charsmax(banTypeData));
  163.  
  164. server_cmd("amx_ban ^"0^" ^"%d^" ^"CHEATER^" ", banTypeData);
  165. }
  166.  
  167. log_to_file("[Krotka-Pilka]_Bany_SID.log", "[Zbanowany: %s (%s)][Admin: %s][Mapa: %s][Typ bana: %s]", targetName, banTypeData, adminName, mapName, ip ? "IP" : "SID");
  168.  
  169. return PLUGIN_CONTINUE;
  170. }
  171.  
  172. stock registerCommands(const array[][], arraySize, function[])
  173. {
  174. #if !defined ForRange
  175.  
  176. #define ForRange(%1,%2,%3) for(new %1 = %2; %1 <= %3; %1++)
  177.  
  178. #endif
  179.  
  180. #if AMXX_VERSION_NUM < 183
  181.  
  182. ForRange(i, 0, arraySize - 1){
  183. ForRange(j, 0, 1){
  184. register_clcmd(fmt("%s %s", !j ? "say" : "say_team", array[i]), function);
  185. }
  186. }
  187.  
  188. #else
  189.  
  190. new newCommand[33];
  191.  
  192. ForRange(i, 0, arraySize - 1){
  193. ForRange(j, 0, 1){
  194. formatex(newCommand, charsmax(newCommand), "%s %s", !j ? "say" : "say_team", array[i]);
  195. register_clcmd(newCommand, function);
  196. }
  197. }
  198.  
  199. #endif
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement