PHP Code:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define TASK_MENUCLOSE 9001
#define TASK_PLAYERSLIST 9002
#define MinPlayers 10
new const Prefix[] = "[Captain]";
new RandomPlayer1;
new RandomPlayer2;
new bool:CaptainSort;
public plugin_init()
{
register_plugin("Captain Sorting", "1.0", "kramesa");
register_clcmd("say /capsort", "StartCaptain");
register_clcmd("chooseteam", "Block");
register_clcmd("jointeam", "Block");
}
public StartCaptain(id)
{
if(is_user_admin(id))
{
if(CaptainSort == true)
{
client_print(id, print_chat, "%s Captain Sort already running.", Prefix);
return PLUGIN_HANDLED;
}
Captain();
return PLUGIN_HANDLED;
}
client_print(id, print_chat, "%s Only admins have access to this command.", Prefix);
return PLUGIN_HANDLED;
}
public Block(id)
{
if(CaptainSort == true)
{
client_print(id, print_chat, "%s Captain Sort is running.", Prefix);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public client_putinserver(id)
{
if(!is_user_connected(RandomPlayer1) && CaptainSort && get_user_flags(id) & ADMIN_KICK)
{
RandomPlayer1 = id;
new First_Captain[35];
get_user_name(RandomPlayer1, First_Captain, charsmax(First_Captain));
client_print(0, print_chat, "%s The new Captain of CTs is: %s", Prefix, First_Captain);
set_cvar_num("sv_restartround", 1);
}
if(!is_user_connected(RandomPlayer2) && CaptainSort && get_user_flags(id) & ADMIN_KICK)
{
RandomPlayer2 = id;
new Second_Captain[35];
get_user_name(RandomPlayer2, Second_Captain, charsmax(Second_Captain));
client_print(0, print_chat, "%s The new Captain of Ts is: %s", Prefix, Second_Captain);
set_cvar_num("sv_restartround", 1)
}
}
public Captain()
{
new iPlayers[32], iNum;
get_players(iPlayers, iNum, "ch");
if(iNum < MinPlayers)
{
client_print(0, print_chat, "%s Need have more %d players to start Captain Sort.", Prefix, (iNum - MinPlayers));
return PLUGIN_HANDLED;
}
for(new i; i < iNum; i++)
{
user_silentkill(iPlayers[i]);
cs_set_user_team(iPlayers[i], 3);
}
if(get_user_flags(iPlayers[iNum]) & ADMIN_KICK) {
RandomPlayer1 = iPlayers[random(iNum)];
RandomPlayer2 = iPlayers[random(iNum)];
}
while(RandomPlayer1 == RandomPlayer2)
{
RandomPlayer2 = iPlayers[random(iNum)];
}
cs_set_user_team(RandomPlayer1, CS_TEAM_CT);
cs_set_user_team(RandomPlayer2, CS_TEAM_T);
new First_Captain[35], Second_Captain[35];
get_user_name(RandomPlayer1, First_Captain, charsmax(First_Captain));
get_user_name(RandomPlayer2, Second_Captain, charsmax(Second_Captain));
client_print(0, print_chat, "%s The Captain's are: %s (TRs) and %s (CTs).", Prefix, First_Captain, Second_Captain);
client_print(0, print_chat, "%s If no player is selected in 10 seconds, a player will be chosen random.", Prefix);
set_cvar_num("sv_restartround", 1)
new First = random(2)
set_task(1.5, "captain_menu", First ? RandomPlayer1 : RandomPlayer2);
set_task(0.2, "PlayersList", TASK_PLAYERSLIST, _, _, "b");
CaptainSort = true
return PLUGIN_CONTINUE
}
public captain_menu(id)
{
new menu = menu_create("Select a Player:", "captainmenu_handler")
set_task(11.5, "menu_task", id + TASK_MENUCLOSE);
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum, "ch")
if(pnum == 0)
{
remove_task(id+TASK_MENUCLOSE)
remove_task(TASK_PLAYERSLIST)
CaptainSort = false
client_print(0, print_chat, "%s Closing Captain Sort. Missing players.", Prefix);
return PLUGIN_H