PHP Code:
#include <amxmodx>
#include <fakemeta>
#define client_print client_print_center
new bool:ChooseTeam_Used[33];
new bool:DetectVIPMap[33];
new g_msgTextMsg;
public plugin_init()
{
g_msgTextMsg = get_user_msgid("TextMsg");
register_plugin("Players Count in Team Menu" , "2.0" , "kramesa" );
register_message(get_user_msgid("ShowMenu"), "MenuTeam");
register_message(get_user_msgid("VGUIMenu"), "VGUITeam");
register_clcmd("chooseteam", "OpenMenu");
register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0");
new entity = -1;
if((engfunc(EngFunc_FindEntityByString, entity, "classname", "info_vip_start")) > 0)
{
DetectVIPMap[0] = true;
}
else
{
DetectVIPMap[0] = false;
}
}
public Event_HLTV_New_Round(id)
{
arrayset(ChooseTeam_Used, false, sizeof(ChooseTeam_Used));
}
public client_authorized(id)
{
ChooseTeam_Used[id] = false;
}
public OpenMenu(id)
{
if(DetectVIPMap[0] == false)
{
menu_cancel(id);
TeamMenu(id);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public MenuTeam(msg, des, rec)
{
if(DetectVIPMap[0] == false)
{
static const TeamSelect[] = "#Team_Select";
static sz_Menu[sizeof(TeamSelect)];
get_msg_arg_string(4, sz_Menu, charsmax(sz_Menu));
if(!equal( sz_Menu, TeamSelect))
{
return PLUGIN_CONTINUE;
}
set_pdata_int(rec, 205, 0);
TeamMenu(rec);
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public VGUITeam(msg, des, rec)
{
if(get_msg_arg_int(1) != 2)
{
return PLUGIN_CONTINUE;
}
TeamMenu(rec);
return PLUGIN_HANDLED;
}
public TeamMenu(id)
{
if(ChooseTeam_Used[id] == true)
{
client_print(id, print_center, "Solo se permite 1 cambio de equipo.");
return PLUGIN_HANDLED;
}
new iPlayers[32], iNumCT , iNumT;
get_players(iPlayers, iNumCT, "e", "CT" );
get_players(iPlayers, iNumT, "e", "TERRORIST");
new menu = menu_create("\wBienvenido a \rRedLine.^n\r-> \wFacebook: \rComunidadRedLine ^n\ySeleccionar un equipo.", "TeamMenu_Handler");
new szTittle[124];
formatex(szTittle, charsmax(szTittle), "\wTERRORISTA \r[%d]", iNumT);
menu_additem(menu, szTittle, "1")
formatex(szTittle, charsmax(szTittle), "\wPOLICIA \r[%d]^n", iNumCT);
menu_additem(menu, szTittle, "2")
menu_additem(menu, "\wAutoSelector", "3");
menu_additem(menu, "\wSpectador", "4");
menu_setprop(menu, MPROP_EXITNAME, "Salir");
menu_display(id, menu, 0);
return PLUGIN_CONTINUE;
}
public TeamMenu_Handler(id, menu, item)
{
if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}
new Name[64], Data[6], Access, Callback;
menu_item_getinfo(menu, item, Access, Data, 5, Name, 63, Callback);
static choose[4][2] = {"1","2","5","6"};
engclient_cmd(id, "jointeam", choose[Data[0] - '1']);
ChooseTeam_Used[id] = true;
menu_destroy(menu);
return PLUGIN_HANDLED;
}
stock client_print_fx( id, const type, const message[], any:... )
{
if( id > 0 && !is_user_connected( id ) )
{
return;
}
static iTextMsg;
if( iTextMsg || ( iTextMsg = get_user_msgid("TextMsg") ) )
{
new sPlayers[MAX_PLAYERS];
new iPlayersCount;
new iUser;
new sMessage[191];
new sRealMessage[191];
new iLen;
( numargs() < 4 ) ?
( iLen = copy( sRealMessage, charsmax( sRealMessage ), message ) ) :
( iLen = vformat( sRealMessage, charsmax( sRealMessage ), message, 4 ) );
iLen = copy( sMessage, charsmax( sMessage ), sRealMessage );
sMessage[iLen++] = '^n';
sMessage[iLen] = 0;
if( id > 0 )
{
iPlayersCount = 1;
sPlayers[0] = id;
}
else
{
get_players_ex( sPlayers, iPlayersCount, GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV );
}
for( id = 0; id < iPlayersCount; ++id )
{
iUser = sPlayers[id];
if( REU_GetProtocol( iUser ) != 47 )
{
client_print_center( iUser, type, sRealMessage );
}
else
{
message_begin( MSG_ONE, iTextMsg, _, iUser );
write_byte( type );
write_string( sMessage );
message_end( );
}
}
}
}
public client_print_center(pPlayer, iMsgType, const szMessage[], any:...)
{
new pPlayers[MAX_PLAYERS], iPlCount, msg[191];
if(pPlayer)
{
iPlCount = 1;
pPlayers[0] = pPlayer;
}
else
get_players_ex(pPlayers, iPlCount, GetPlayers_ExcludeBots|GetPlayers_ExcludeHLTV);
for(new i; i < iPlCount; i++)
{
pPlayer = pPlayers[i];
SetGlobalTransTarget(pPlayer);
vformat(msg, charsmax(msg), szMessage, 4);
message_begin(MSG_ONE_UNRELIABLE, g_msgTextMsg, .player = pPlayer);
write_byte(iMsgType);
write_string(msg);
message_end();
}
}