| ish12321 |
04-08-2017 05:31 |
Plmenu [teammenu]
PHP Code:
switch (key)
{
case 6:
{
g_silent[id] = !g_silent[id];
displayTeamMenu(id, g_menuPosition[id]);
}
case 7:
{
g_menuOption[id] = (g_menuOption[id] + 1) % 3;
displayTeamMenu(id, g_menuPosition[id]);
}
case 8:
{
displayTeamMenu(id, ++g_menuPosition[id]);
}
case 9:
{
displayTeamMenu(id, --g_menuPosition[id]);
}
default:
{
new player = g_menuPlayers[id][g_menuPosition[id] * 6 + key];
if (!is_user_connected(player)) // dunno why this check hasn't be implemented in the past
{
displayTeamMenu(id, g_menuPosition[id]);
return PLUGIN_HANDLED;
}
g_transferingAdmin = id;
new authid[32], authid2[32], name[MAX_NAME_LENGTH], name2[MAX_NAME_LENGTH];
get_user_name(player, name2, charsmax(name2));
get_user_authid(id, authid, charsmax(authid));
get_user_authid(player, authid2, charsmax(authid2));
get_user_name(id, name, charsmax(name));
// This modulo math just aligns the option to the CsTeams-corresponding number
new destTeamSlot = (g_menuOption[id] % 3);
log_amx("Cmd: ^"%s<%d><%s><>^" transfer ^"%s<%d><%s><>^" (team ^"%s^")", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2, g_CSTeamNames[destTeamSlot]);
show_activity_key("ADMIN_TRANSF_1", "ADMIN_TRANSF_2", name, name2, g_CSTeamNames[destTeamSlot]);
if (destTeamSlot == 2)
{
if (g_fakemeta)
{
if (get_pdata_int(player, m_iMenu) == Menu_ChooseAppearance)
{
// works for both vgui and old style menus, and send menuselect could close other menus (and since get_user_menu fails to return VGUI and old style classes menus...)
engclient_cmd(player, "joinclass", "6");
}
}
else // force
{
engclient_cmd(player, "joinclass", "6");
}
}
if (g_CSPlayerCanSwitchFromSpec[player] && g_cstrike && (CS_TEAM_T <= cs_get_user_team(player) <= CS_TEAM_CT))
{
if (is_user_alive(player) && (!g_silent[id] || destTeamSlot == 2))
{
new deaths = cs_get_user_deaths(player);
user_kill(player, 1);
cs_set_user_deaths(player, deaths);
}
cs_set_user_team(player, destTeamSlot + 1);
}
else
{
if (is_user_alive(player) && (!g_silent[id] || destTeamSlot == 2))
{
user_kill(player, 1);
}
if (g_fakemeta)
{
set_pdata_bool(player, m_bTeamChanged, true);
}
new limit_setting;
if (mp_limitteams)
{
limit_setting = get_pcvar_num(mp_limitteams);
set_pcvar_num(mp_limitteams, 0);
}
if (destTeamSlot == 2)
{
new Float:allow_spectators_setting;
if (allow_spectators)
{
allow_spectators_setting = get_pcvar_float(allow_spectators);
if (allow_spectators_setting != 1.0)
{
set_pcvar_float(allow_spectators, 1.0);
}
}
engclient_cmd(player, "jointeam", g_CSTeamNumbers[destTeamSlot]);
if (allow_spectators && allow_spectators_setting != 1.0)
{
set_pcvar_float(allow_spectators, allow_spectators_setting);
}
}
else
{
engclient_cmd(player, "jointeam", g_CSTeamNumbers[destTeamSlot]);
engclient_cmd(player, "joinclass", "1");
}
if (mp_limitteams && limit_setting != 0)
{
set_pcvar_num(mp_limitteams, limit_setting);
}
}
if (g_cstrike)
{
cs_reset_user_model(player);
}
if (g_fakemeta)
{
set_pdata_bool(player, m_bTeamChanged, true);
}
g_transferingAdmin = 0;
displayTeamMenu(id, g_menuPosition[id]);
}
}
return PLUGIN_HANDLED;
This is the action teammenu part of plmenu of reamxmodx
In this on trasnferring to spec is going well (player kills and transferred) , transfer to ct and t is not going like this
please someone edit it to work like that
|