23/05/2019, 11:32 AM
buenas tengo un problema es que cuando se estan eligiendo los jugadores esto entran sin ser elegidos me pueden ayudar para que no entren almenos que el capitan los eliga
Código PHP:
public fnCaptains()
{
if(get_playersnum() >= get_pcvar_num(pcvar_max_players)) {
set_task(1.0, "fnCaptainHud")
client_print_color(0, 0, "%s Se iniciara elecion por capitanes.", TAG)
set_cvar_num("sv_restart", 1)
set_cvar_num("sv_maxspeed", 0)
set_cvar_num("mp_forcerespawn", 0)
set_cvar_num("mp_round_infinite", 1)
captainrun = true
new r = random_num(0, 1)
tt = random_player(1)
ct = random_player(2)
if(r) {
make_menu_team(tt)
}
else
{
make_menu_team(ct)
}
}
else{
client_print_color(0, 0, "%s Son necesarios ^4%d^1 jugadores para la eleccion de capitanes", TAG, get_pcvar_num(pcvar_max_players))
set_cvar_num("sv_maxspeed", 320)
set_cvar_num("mp_round_infinite", 0)
EnableHamForward(PlayerSpawn)
start_pregame()
fn_forceready()
}
}
make_menu_team(id)
{
new c = 0
new menu = menu_create("Selecciona a un jugador", "mh_menu")
new name[32], num[3]
new players[32], count
get_players(players, count, "e", "SPECTATOR")
for(new i = 1 ; i <= iMaxPlayers ; i++)
{
if(get_user_team(i) == 3)
{
get_user_name(i, name, charsmax(name))
num_to_str(i, num, charsmax(num))
menu_additem(menu, name, num)
}
c++
}
if(count == 0)
{
menu_destroy(menu)
set_cvar_num("sv_maxspeed", 320)
set_cvar_num("mp_round_infinite", 0)
captainrun = false
EnableHamForward(PlayerSpawn)
next_vote()
team_voting = 0
return PLUGIN_HANDLED
}
remove_task(TASK)
team_voting = get_user_team(id)
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, menu)
set_task(5.0, "pfn_end", TASK)
return PLUGIN_HANDLED
}
public mh_menu(id, menu, item)
{
if(team_voting != get_user_team(id))
{
menu_destroy(menu)
return
}
if(item == MENU_EXIT)
{
menu_destroy(menu)
return
}
new num[3], a
menu_item_getinfo(menu, item, a, num, charsmax(num), "", 0, a)
menu_destroy(menu)
new p = str_to_num(num)
rg_set_user_team(p, get_user_team(id) == 1 ? TEAM_TERRORIST : TEAM_CT)
rg_round_respawn(p)
remove_task(TASK)
switch(team_voting)
{
case 1 :
{
menu_cancel(ct)
make_menu_team(ct)
}
case 2 :
{
menu_cancel(ct)
make_menu_team(tt)
}
}
}
public pfn_end(tid)
{
new players[32], count
get_players(players, count, "e", "SPECTATOR")
if( count > 0 )
{
new p = players[random(count)]
rg_set_user_team(p, team_voting == 1 ? TEAM_TERRORIST : TEAM_CT)
rg_round_respawn(p)
}
switch(team_voting)
{
case 1 :
{
menu_cancel(ct)
make_menu_team(ct)
}
case 2 :
{
menu_cancel(ct)
make_menu_team(tt)
}
}
}
public fnCaptainHud()
{
if(captainrun) set_task(1.0, "fnCaptainHud")
new iPlayers[MAX_PLAYERS],iNum,iPlayer;
get_players(iPlayers,iNum,"h");
new szName[MAX_NAME_LENGTH],iCTs,szList[4][320],iTeam,iSpec;
for(new i;i < iNum;i++)
{
iPlayer = iPlayers[i];
get_user_name(iPlayer,szName,charsmax(szName));
if((iPlayer == tt) || (iPlayer == ct))
{
add(szName,charsmax(szName)," (C)");
}
iTeam = get_user_team(iPlayer);
switch(iTeam)
{
case 2: iCTs++;
case 3: iSpec++;
}
add(szName,charsmax(szName),"^n");
add(szList[iTeam],charsmax(szList[]),szName);
}
for(new i = 0;i < (5 - iCTs);i++)
{
add(szList[2],charsmax(szList[]),"^n");
}
set_hudmessage(255, 0, 0, 0.70, 0.16, 0, 0.0, 99.0, 0.0, 0.0, 1);
show_hudmessage(0, "Terroristas");
set_hudmessage(255, 255, 255, 0.70, 0.19, 0, 0.0, 99.0, 0.0, 0.0, 2);
show_hudmessage(0, "%s^n",szList[1]);
set_hudmessage(0, 0, 255, 0.70, 0.51, 0, 0.0, 99.0, 0.0, 0.0, 3);
show_hudmessage(0, "Anti-Terroristas");
set_hudmessage(255, 255, 255, 0.70, 0.54, 0, 0.0, 99.0, 0.0, 0.0, 4);
show_hudmessage(0, "%s^n",szList[2]);
}
random_player(team)
{
if(!(1 <= team <= 2))
{
log_error(AMX_ERR_NATIVE, "[CAPITAN] Team incorrecto")
return 0
}
new p[32], count
get_players(p, count, "e", team == 1 ? "TERRORIST" : "CT")
new t = p[random(count)]
for(new i = 1 ; i <= iMaxPlayers ; i++)
{
if(t == i || team != get_user_team(i))
{
continue
}
cmdDirector(i, "kill")
rg_set_user_team(i, TEAM_SPECTATOR)
set_member(i, m_iJoiningState, 5)
}
return t
}