seroff

Players Count in Team Menu [Optimal] 3.0.5 By kramesa+Seroff

Jul 11th, 2016
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.43 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fakemeta>
  3.  
  4. const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0
  5.  
  6. new StrN[3]=0,g_menu[33]=0,bool:ChooseTeam_Used[33], bool:DetectVIPMap[33];
  7.  
  8. public plugin_init()
  9. {
  10. register_plugin("Players Count in Team Menu [Optimal]" , "3.0.5" , "kramesa+Seroff" );
  11. register_message(get_user_msgid("ShowMenu"), "MenuTeam");
  12. register_message(get_user_msgid("VGUIMenu"), "VGUITeam");
  13. register_clcmd("chooseteam", "OpenMenu");
  14. register_clcmd("jointeam", "j_OpenMenu");
  15. register_menu("chooseteam", KEYSMENU, "chooseteam_menu");
  16. register_menu("jointeam", KEYSMENU, "jointeam_menu");
  17. register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0");
  18. new entity = -1;
  19. if((engfunc(EngFunc_FindEntityByString, entity, "classname", "info_vip_start")) > 0)
  20. {
  21. DetectVIPMap[0] = true;
  22. }
  23. else
  24. {
  25. DetectVIPMap[0] = false;
  26. }
  27. }
  28.  
  29. public j_OpenMenu(id)
  30. {
  31. if(ChooseTeam_Used[id] == true)
  32. {
  33. menu_cancel(id);
  34. client_print_center(id, "Только один раз можно сменить команду за раунд!");
  35. return PLUGIN_HANDLED;
  36. }
  37. if(DetectVIPMap[0] == false)
  38. {
  39. menu_cancel(id);
  40. join_OpenMenu(id);
  41. return PLUGIN_HANDLED;
  42. }
  43. return PLUGIN_CONTINUE;
  44. }
  45.  
  46. public join_OpenMenu(id){
  47. new Arg[3],NumArg;
  48. read_argv(1,Arg,charsmax(Arg));
  49. if(!equal(Arg,"")){
  50. NumArg=str_to_num(Arg);
  51. switch(NumArg){
  52. case 1,2:jointeam_m(id, NumArg);
  53. case 5:jointeam_m(id, random_num(1,2));
  54. case 6:engclient_cmd(id,"jointeam", "6");
  55. }
  56. }else{
  57. TeamMenu(id);
  58. }
  59. return PLUGIN_CONTINUE;
  60. }
  61.  
  62. public Event_HLTV_New_Round(id)
  63. {
  64. arrayset(ChooseTeam_Used, false, sizeof(ChooseTeam_Used));
  65. }
  66.  
  67. public client_authorized(id)
  68. {
  69. ChooseTeam_Used[id] = false;
  70. g_menu[id]=0;
  71. }
  72.  
  73. public OpenMenu(id)
  74. {
  75. if(ChooseTeam_Used[id] == true)
  76. {
  77. menu_cancel(id);
  78. client_print_center(id, "Только один раз можно сменить команду за раунд!");
  79. return PLUGIN_HANDLED;
  80. }
  81. if(DetectVIPMap[0] == false)
  82. {
  83. menu_cancel(id);
  84. TeamMenu(id);
  85. return PLUGIN_HANDLED;
  86. }
  87. return PLUGIN_CONTINUE;
  88. }
  89.  
  90.  
  91.  
  92. public MenuTeam(msg, des, rec)
  93. {
  94. if(DetectVIPMap[0] == false)
  95. {
  96. static const TeamSelect[] = "#Team_Select";
  97. static sz_Menu[sizeof(TeamSelect)];
  98. get_msg_arg_string(4, sz_Menu, charsmax(sz_Menu));
  99. if(!equal( sz_Menu, TeamSelect))
  100. {
  101. return PLUGIN_CONTINUE;
  102. }
  103. set_pdata_int(rec, 205, 0);
  104. if(ChooseTeam_Used[rec]==false){
  105. TeamMenu(rec);
  106. }
  107. return PLUGIN_HANDLED;
  108. }
  109. return PLUGIN_CONTINUE;
  110. }
  111.  
  112. public VGUITeam(msg, des, rec)
  113. {
  114. if(get_msg_arg_int(1) != 2)
  115. {
  116. return PLUGIN_CONTINUE;
  117. }
  118. TeamMenu(rec);
  119. return PLUGIN_HANDLED;
  120. }
  121.  
  122. get_users(Team[]){
  123. static iPlayers[32],iNum=0
  124. get_players(iPlayers, iNum, "hce",Team);
  125. return iNum
  126. }
  127.  
  128. public TeamMenu(id)
  129. {
  130. if(ChooseTeam_Used[id] == true)
  131. {
  132. menu_cancel(id);
  133. client_print_center(id, "Только один раз можно сменить команду за раунд!");
  134. return PLUGIN_HANDLED;
  135. }
  136. new Users[124];
  137. formatex(Users,charsmax(Users),"\r1. \wТеррористы \y[\r%d\y]^n\r2. \wКонтр-Террористы \y[\r%d\y]^n^n",get_users("TERRORIST"), get_users("CT"));
  138. static menu[512], len;
  139. len = 0;
  140. len += formatex(menu[len], charsmax(menu) - len, "\yВыбор команды^n^n");
  141. len += formatex(menu[len], charsmax(menu) - len, Users);
  142. len += formatex(menu[len], charsmax(menu) - len, "\r5. \wСлучайная команда^n");
  143. len += formatex(menu[len], charsmax(menu) - len, "\r6. \wСпектаторы^n^n");
  144. new Keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_5|MENU_KEY_6
  145. if(g_menu[id]!=0){
  146. len += formatex(menu[len], charsmax(menu) - len, "\r0. \wВыход^n^n");
  147. Keys |= MENU_KEY_0
  148. }
  149. show_menu(id, Keys, menu, -1, "chooseteam");
  150. g_menu[id]++;
  151. return PLUGIN_CONTINUE;
  152. }
  153.  
  154. public chooseteam_menu(id, key)
  155. {
  156. switch(key)
  157. {
  158. case 0:
  159. {
  160. jointeam_m(id,1);
  161. }
  162. case 1:
  163. {
  164. jointeam_m(id,2);
  165. }
  166. case 4:
  167. {
  168. jointeam_m(id, random_num(1,2));
  169. }
  170. case 5:
  171. {
  172. engclient_cmd(id, "jointeam","6");
  173. }
  174. case 9:
  175. {
  176. menu_cancel(id);
  177. }
  178. }
  179. return PLUGIN_HANDLED
  180. }
  181.  
  182. public jointeam_m(id, team)
  183. {
  184. static menu[512], len;
  185. len = 0;
  186. len += formatex(menu[len], charsmax(menu) - len, "\yВыберите ваш внешний вид^n^n");
  187. switch(team){
  188. case 1:{
  189. len += formatex(menu[len], charsmax(menu) - len, "\r1. \wPhoenix Connexion^n");
  190. len += formatex(menu[len], charsmax(menu) - len, "\r2. \wElite Crew^n");
  191. len += formatex(menu[len], charsmax(menu) - len, "\r3. \wArctic Avengers^n");
  192. len += formatex(menu[len], charsmax(menu) - len, "\r4. \wGuerilla Warface^n");
  193. }
  194. case 2:{
  195. len += formatex(menu[len], charsmax(menu) - len, "\r1. \wSeal Team 6^n");
  196. len += formatex(menu[len], charsmax(menu) - len, "\r2. \wGSG-9^n");
  197. len += formatex(menu[len], charsmax(menu) - len, "\r3. \wSAS^n");
  198. len += formatex(menu[len], charsmax(menu) - len, "\r4. \wGIGN^n");
  199. }
  200. }
  201. len += formatex(menu[len], charsmax(menu) - len, "^n\r5. \wСлучайный выбор^n");
  202. num_to_str(team,StrN,2);
  203. new Keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5
  204. show_menu(id, Keys, menu, -1, "jointeam");
  205. set_msg_block(114, BLOCK_ONCE);
  206. return PLUGIN_CONTINUE;
  207. }
  208.  
  209. public jointeam_menu(id, key)
  210. {
  211. engclient_cmd(id, "jointeam",StrN);
  212. switch(key)
  213. {
  214. case 0:
  215. {
  216. engclient_cmd(id, "joinclass","1");
  217. }
  218. case 1:
  219. {
  220. engclient_cmd(id, "joinclass","2");
  221. }
  222. case 2:
  223. {
  224. engclient_cmd(id, "joinclass","3");
  225. }
  226. case 3:
  227. {
  228. engclient_cmd(id, "joinclass","4");
  229. }
  230. case 4:
  231. {
  232. engclient_cmd(id, "joinclass","5");
  233. }
  234. }
  235. show_menu(id, 0, "^n^n^n^n^n^n^n^n^n", 1, "jointeam");
  236. ChooseTeam_Used[id] = true;
  237. return 1;
  238. }
  239.  
  240. stock register_menu(const title[],keys,const function[],outside=0)
  241. {
  242. register_menucmd(register_menuid(title,outside),keys,function);
  243. }
  244.  
  245. client_print_center(id,Message[]=""){
  246. message_begin(MSG_ONE, get_user_msgid("TextMsg"), .player=id)
  247. write_byte(print_center);
  248. write_string(Message);
  249. message_end();
  250. }
Advertisement
Add Comment
Please, Sign In to add comment