Advertisement
Guest User

plg

a guest
Apr 21st, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.09 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <cstrike>
  3.  
  4. int Team1[5];
  5. int Team2[5];
  6.  
  7. public Plugin:myinfo =
  8. {
  9. name = "clanwar plugin",
  10. author = "awyx",
  11. description = "simple clanwar / pug menu, you can do 1v1's, 2v2, 3v3, 4v4 and 5v5",
  12. version = "1.0"
  13.  
  14. }
  15. public void OnPluginStart()
  16. {
  17. RegConsoleCmd("sm_clanwar", MenuPrincipal);
  18. }
  19.  
  20. public void OnMapStart()
  21. {
  22. for(int i = 0; i < 5 ; i++)
  23. {
  24. Team1[i] = -1;
  25. Team2[i] = -1;
  26. }
  27. }
  28.  
  29. public Action MenuPrincipal(int client, int args) // menu principal / main menu
  30. {
  31. Handle menu1 = CreateMenu(MenuMainHandler);
  32. SetMenuTitle(menu1, "Menu Clanwar:");
  33. AddMenuItem(menu1, "1", "1v1"); // 1 = selected item , 1v1 = o que aparece no jogo
  34. AddMenuItem(menu1, "2", "2v2");
  35. AddMenuItem(menu1, "3", "3v3");
  36. AddMenuItem(menu1, "4", "4v4");
  37. AddMenuItem(menu1, "5", "5v5");
  38. DisplayMenu(menu1, client, MENU_TIME_FOREVER);
  39.  
  40. return Plugin_Handled;
  41. }
  42.  
  43. public int MenuMainHandler(Menu menu, MenuAction action, int client, int opcao)
  44. {
  45. if(action == MenuAction_Select)
  46. {
  47. char selectedItem[200];
  48. GetMenuItem(menu, opcao, selectedItem, sizeof(selectedItem));
  49. // PrintToChat(client, selectedItem); // printa a opção, ajuda nos testes
  50.  
  51. if(StrEqual(selectedItem, "1")) // se a opção escolhida for 1...
  52. {
  53. MenuSecundario(client,0); // abrir o menu secundario
  54. }
  55. if(StrEqual(selectedItem, "2")) // apartir daqui não tenho a certeza
  56. {
  57. MenuSecundario(client,0);
  58. }
  59. if(StrEqual(selectedItem, "3"))
  60. {
  61. MenuSecundario(client,0);
  62. }
  63. if(StrEqual(selectedItem, "4"))
  64. {
  65. MenuSecundario(client,0);
  66. }
  67. if(StrEqual(selectedItem, "5"))
  68. {
  69. MenuSecundario(client,0);
  70. }
  71. }
  72. }
  73.  
  74. public Action MenuSecundario(int client, int args) // menu secundario (team1)
  75. {
  76. Handle menu2 = CreateMenu(MenuMainHandler2); // menu2 = pick players for team1
  77. SetMenuTitle(menu2, "Team1:");
  78. for(int id = 1; id < MAXPLAYERS; id++)
  79. {
  80. if(IsClientInGame(id))
  81. {
  82. char info[10], nome[32];
  83. IntToString(id, info, sizeof(info));
  84. GetClientName(id, nome, sizeof(nome));
  85. AddMenuItem(menu2, info, nome); // vai adicionar todos os jogadores do servidor ao menu
  86. }
  87. }
  88. DisplayMenu(menu2, client, MENU_TIME_FOREVER);
  89. return Plugin_Handled;
  90. }
  91.  
  92. public Action MenuSecundario2(int client, int args) // menu secundario (team2)
  93. {
  94. Handle menu3 = CreateMenu(MenuMainHandler3) // menu 3, ou seja, o da team 2, que não pode ter o(s) jogadores selecionados da team1 // menu3 = pick players for team2
  95. SetMenuTitle(menu3, "Team2:");
  96. for(int id = 1; id < MAXPLAYERS; id++)
  97. {
  98. if(IsClientInGame(id))
  99. {
  100. char info[10], nome[32];
  101. IntToString(id, info, sizeof(info));
  102. GetClientName(id, nome, sizeof(nome));
  103.  
  104. bool verificarid = false;
  105. for (int x = 0; x < 5; x++)
  106. {
  107. if(Team1[x] == id)
  108. {
  109. verificarid = true;
  110. break;
  111. }
  112. }
  113. if(!verificarid)
  114. {
  115. AddMenuItem(menu3, info, nome);
  116. }
  117. }
  118.  
  119. }
  120. DisplayMenu(menu3, client, MENU_TIME_FOREVER);
  121. return Plugin_Handled;
  122. }
  123.  
  124.  
  125.  
  126. public int MenuMainHandler2(Menu menu2, MenuAction action, int client, int opcao) // menu handler para o menu 2 (team1)
  127. {
  128. if(action == MenuAction_Select)
  129. {
  130. char selectedItem[200];
  131. GetMenuItem(menu2, opcao, selectedItem, sizeof(selectedItem));
  132. // PrintToChat(client, selectedItem); // printa a opção, ajuda nos testes
  133.  
  134. int id = StringToInt(selectedItem); // o id vai ser selecteditem, para transferir para o vetor
  135.  
  136. for(int i = 0; i < 5; i++)
  137. {
  138. if(Team1[i] == -1)
  139. {
  140. Team1[i] = id;
  141. ChangeClientTeam(id, CS_TEAM_CT); // mudar a team1 para CT
  142. break;
  143. }
  144. }
  145.  
  146. for(id = 1; id < MAXPLAYERS; id++) // este for vai verificar se o id está contido no vetor, se não estiver o id é colocado como spec
  147. {
  148. if(IsClientInGame (id))
  149. {
  150. bool encontrou = false;
  151. for(int i = 0; i < 5 ; i++)
  152. {
  153. if(id == Team1[i])
  154. {
  155. encontrou = true;
  156. break;
  157. }
  158. }
  159. if(!encontrou)
  160. {
  161. ChangeClientTeam (id, CS_TEAM_SPECTATOR); // id não está contido no vetor, ou seja, é movido para spec
  162. }
  163. }
  164. } // fecha o for
  165.  
  166. MenuSecundario2(client,0);
  167. }
  168. }
  169.  
  170. public int MenuMainHandler3(Menu menu3, MenuAction action, int client, int opcao)
  171. {
  172. if(action == MenuAction_Select)
  173. {
  174. char selectedItem[200];
  175. GetMenuItem(menu3, opcao, selectedItem, sizeof(selectedItem));
  176.  
  177. int id = StringToInt(selectedItem);
  178.  
  179. for(int i = 0; i < 5; i++)
  180. {
  181. if(Team2[i] == -1)
  182. {
  183. Team2[i] = id;
  184. ChangeClientTeam(id, CS_TEAM_T); // mudar a team2 para T
  185. break;
  186. }
  187. }
  188.  
  189. for(id = 1; id < MAXPLAYERS; id++)
  190. {
  191. if(IsClientInGame (id))
  192. {
  193. bool encontrou = false;
  194. for(int i = 0; i < 5 ; i++)
  195. {
  196. if(id == Team1[i])
  197. {
  198. encontrou = true;
  199. break;
  200. }
  201. }
  202. if(!encontrou)
  203. {
  204. ChangeClientTeam (id, CS_TEAM_SPECTATOR);
  205. }
  206. }
  207. }
  208.  
  209. }
  210. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement