Проверенный
Пользователь
- Сообщения
- 1,032
- Реакции
- 828
- Помог
- 10 раз(а)
Да, да, сотый раз уже, на боевом сервере не тестил, но возможно какие то нюансы, баги я пропустил?
C++:
#include < amxmodx >
#include < reapi >
#pragma semicolon 1
const MENU_KEYS = MENU_KEY_0 | MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_5 | MENU_KEY_6;
const TIME_MENU = -1;
new const MENU_IDENT__TEAM_SELECT_MENU[ ] = "TEAM SELECT MENU";
enum
{
KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0
}
new const MENU_CONTENT[ ] =
{
"^t^t^t^t\yМеню выбора команды^n^n\
^t^t^t^t\y1. \wТеррористы^n\
^t^t^t^t\y2. \wКонтр-террористы^n^n\
^t^t^t^t\y5. \wСлучайный выбор^n\
^t^t^t^t\y6. \wНаблюдатели^n^n\
^t^t^t^t\y0. \wВыход"
};
public plugin_init( )
{
RegisterHookChain( RG_ShowVGUIMenu, "hook_ShowVGUIMenu", .post = false );
register_menucmd( register_menuid( MENU_IDENT__TEAM_SELECT_MENU ), MENU_KEYS, "handler_TeamSelectMenu" );
}
public hook_ShowVGUIMenu( const id, VGUIMenu: menuType, const bitsSlots, const szOldMenu[ ] )
{
if( menuType != VGUI_Menu_Team )
{
return HC_CONTINUE;
}
RequestFrame( "func_OpenTeamSelectMenu", id );
return HC_SUPERCEDE;
}
public func_OpenTeamSelectMenu( const id )
{
if( !is_user_connected( id ) )
{
return PLUGIN_CONTINUE;
}
set_member( id, m_iMenu, Menu_OFF );
show_menu( id, MENU_KEYS, MENU_CONTENT, TIME_MENU, MENU_IDENT__TEAM_SELECT_MENU );
return PLUGIN_CONTINUE;
}
public handler_TeamSelectMenu( const id, const iKey )
{
switch( iKey )
{
case KEY_1:
{
rg_join_team( id, TEAM_TERRORIST );
}
case KEY_2:
{
rg_join_team( id, TEAM_CT );
}
case KEY_5:
{
rg_join_team( id, TeamName: random_num( _:TEAM_TERRORIST, _:TEAM_CT ) );
}
case KEY_6:
{
user_silentkill( id );
rg_join_team( id, TEAM_SPECTATOR );
}
case KEY_0:
{
return PLUGIN_HANDLED;
}
}
set_member( id, m_bTeamChanged, false );
return PLUGIN_HANDLED;
}