Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sourcemod>
- #include <cstrike>
- int Team1[5];
- int Team2[5];
- public Plugin:myinfo =
- {
- name = "clanwar plugin",
- author = "awyx",
- description = "simple clanwar / pug menu, you can do 1v1's, 2v2, 3v3, 4v4 and 5v5",
- version = "1.0"
- }
- public void OnPluginStart()
- {
- RegConsoleCmd("sm_clanwar", MenuPrincipal);
- }
- public void OnMapStart()
- {
- for(int i = 0; i < 5 ; i++)
- {
- Team1[i] = -1;
- Team2[i] = -1;
- }
- }
- public Action MenuPrincipal(int client, int args) // menu principal / main menu
- {
- Handle menu1 = CreateMenu(MenuMainHandler);
- SetMenuTitle(menu1, "Menu Clanwar:");
- AddMenuItem(menu1, "1", "1v1"); // 1 = selected item , 1v1 = o que aparece no jogo
- AddMenuItem(menu1, "2", "2v2");
- AddMenuItem(menu1, "3", "3v3");
- AddMenuItem(menu1, "4", "4v4");
- AddMenuItem(menu1, "5", "5v5");
- DisplayMenu(menu1, client, MENU_TIME_FOREVER);
- return Plugin_Handled;
- }
- public int MenuMainHandler(Menu menu, MenuAction action, int client, int opcao)
- {
- if(action == MenuAction_Select)
- {
- char selectedItem[200];
- GetMenuItem(menu, opcao, selectedItem, sizeof(selectedItem));
- // PrintToChat(client, selectedItem); // printa a opção, ajuda nos testes
- if(StrEqual(selectedItem, "1")) // se a opção escolhida for 1...
- {
- MenuSecundario(client,0); // abrir o menu secundario
- }
- if(StrEqual(selectedItem, "2")) // apartir daqui não tenho a certeza
- {
- MenuSecundario(client,0);
- }
- if(StrEqual(selectedItem, "3"))
- {
- MenuSecundario(client,0);
- }
- if(StrEqual(selectedItem, "4"))
- {
- MenuSecundario(client,0);
- }
- if(StrEqual(selectedItem, "5"))
- {
- MenuSecundario(client,0);
- }
- }
- }
- public Action MenuSecundario(int client, int args) // menu secundario (team1)
- {
- Handle menu2 = CreateMenu(MenuMainHandler2); // menu2 = pick players for team1
- SetMenuTitle(menu2, "Team1:");
- for(int id = 1; id < MAXPLAYERS; id++)
- {
- if(IsClientInGame(id))
- {
- char info[10], nome[32];
- IntToString(id, info, sizeof(info));
- GetClientName(id, nome, sizeof(nome));
- AddMenuItem(menu2, info, nome); // vai adicionar todos os jogadores do servidor ao menu
- }
- }
- DisplayMenu(menu2, client, MENU_TIME_FOREVER);
- return Plugin_Handled;
- }
- public Action MenuSecundario2(int client, int args) // menu secundario (team2)
- {
- 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
- SetMenuTitle(menu3, "Team2:");
- for(int id = 1; id < MAXPLAYERS; id++)
- {
- if(IsClientInGame(id))
- {
- char info[10], nome[32];
- IntToString(id, info, sizeof(info));
- GetClientName(id, nome, sizeof(nome));
- bool verificarid = false;
- for (int x = 0; x < 5; x++)
- {
- if(Team1[x] == id)
- {
- verificarid = true;
- break;
- }
- }
- if(!verificarid)
- {
- AddMenuItem(menu3, info, nome);
- }
- }
- }
- DisplayMenu(menu3, client, MENU_TIME_FOREVER);
- return Plugin_Handled;
- }
- public int MenuMainHandler2(Menu menu2, MenuAction action, int client, int opcao) // menu handler para o menu 2 (team1)
- {
- if(action == MenuAction_Select)
- {
- char selectedItem[200];
- GetMenuItem(menu2, opcao, selectedItem, sizeof(selectedItem));
- // PrintToChat(client, selectedItem); // printa a opção, ajuda nos testes
- int id = StringToInt(selectedItem); // o id vai ser selecteditem, para transferir para o vetor
- for(int i = 0; i < 5; i++)
- {
- if(Team1[i] == -1)
- {
- Team1[i] = id;
- ChangeClientTeam(id, CS_TEAM_CT); // mudar a team1 para CT
- break;
- }
- }
- 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
- {
- if(IsClientInGame (id))
- {
- bool encontrou = false;
- for(int i = 0; i < 5 ; i++)
- {
- if(id == Team1[i])
- {
- encontrou = true;
- break;
- }
- }
- if(!encontrou)
- {
- ChangeClientTeam (id, CS_TEAM_SPECTATOR); // id não está contido no vetor, ou seja, é movido para spec
- }
- }
- } // fecha o for
- MenuSecundario2(client,0);
- }
- }
- public int MenuMainHandler3(Menu menu3, MenuAction action, int client, int opcao)
- {
- if(action == MenuAction_Select)
- {
- char selectedItem[200];
- GetMenuItem(menu3, opcao, selectedItem, sizeof(selectedItem));
- int id = StringToInt(selectedItem);
- for(int i = 0; i < 5; i++)
- {
- if(Team2[i] == -1)
- {
- Team2[i] = id;
- ChangeClientTeam(id, CS_TEAM_T); // mudar a team2 para T
- break;
- }
- }
- for(id = 1; id < MAXPLAYERS; id++)
- {
- if(IsClientInGame (id))
- {
- bool encontrou = false;
- for(int i = 0; i < 5 ; i++)
- {
- if(id == Team1[i])
- {
- encontrou = true;
- break;
- }
- }
- if(!encontrou)
- {
- ChangeClientTeam (id, CS_TEAM_SPECTATOR);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement