Участник
Пользователь
- Сообщения
- 21
- Реакции
- 7
Привет всем, какием образом можно сделать что бы при выборе КТ или ТТ сразу кидало за команду, а не выводило еще меню с выбором класса?
Код:
#include <amxmodx>
#include <fakemeta>
#include <cstrike>
public plugin_init()
{
register_plugin("Connect Menu", "1.2", "Realution");
register_clcmd("chooseteam", "ShowMenu")
register_message(96, "MessageShowMenu");
register_message(114, "MessageVGUIMenu");
register_menucmd(register_menuid("Team Menu"), MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_5|MENU_KEY_6|MENU_KEY_0, "HandleMenu");
}
public ShowMenu(id)
{
new szMenu[512], iLen = formatex(szMenu, charsmax(szMenu), "\yМеню Выбора Команды:^n^n"), iKeys = MENU_KEY_0;
new iNumTe = get_teamplayersnum(CS_TEAM_T), iNumCt = get_teamplayersnum(CS_TEAM_CT), CsTeams:iTeam = cs_get_user_team(id);
if(iNumTe > iNumCt) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dТеррористы^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \wТеррористы^n");
iKeys |= MENU_KEY_1;
}
if(iNumCt > iNumTe) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[1] \dКонтр Террористы^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[2] \wКонтр Террористы^n^n^n");
iKeys |= MENU_KEY_2;
}
if(CS_TEAM_UNASSIGNED < iTeam < CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \dСлучайный Выбор^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[5] \yСлучайный Выбор^n^n");
iKeys |= MENU_KEY_5;
}
if(iTeam == CS_TEAM_SPECTATOR) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \dНаблюдение^n^n^n");
else
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[6] \wНаблюдатели^n");
iKeys |= MENU_KEY_6;
}
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[0] \wВыход");
return show_menu(id, iKeys, szMenu, -1, "Team Menu");
}
public HandleMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "1");
}
case 1:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "2");
}
case 2:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "3");
}
case 4:
{
set_pdata_int(id, 125, get_pdata_int(id, 125) & ~(1<<8));
engclient_cmd(id, "jointeam", "5");
}
case 5:
{
user_kill(id, 1);
engclient_cmd(id, "jointeam", "6");
}
}
return PLUGIN_HANDLED;
}
public MessageShowMenu(iMsgId, iMsgDest, iReceiver)
{
static szArg4[20]; get_msg_arg_string(4, szArg4, charsmax(szArg4));
if(equal(szArg4, "#Team_Select", 12) || equal(szArg4, "#IG_Team_Select", 15) || equal(szArg4, "#IG_VIP_Team_Select", 19))
{
set_pdata_int(iReceiver, 205, 0);
return ShowMenu(iReceiver);
}
return PLUGIN_CONTINUE;
}
public MessageVGUIMenu(iMsgId, iMsgDest, iReceiver)
{
if(get_msg_arg_int(1) == 2)
{
set_pdata_int(iReceiver, 205, 0);
return ShowMenu(iReceiver);
}
return PLUGIN_CONTINUE;
}
get_teamplayersnum(const CsTeams:iTeam)
{
static players[32], iNum;
get_players(players, iNum, "che", iTeam == CS_TEAM_T ? "TERRORIST" : "CT");
return iNum;
}