seroff

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

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