Моя ошибка. Исправлю на 175Правда почему 192 решили.
В этом вариантеthis command is not available to you at his point
#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\rVK.COM/GMFORCE^n\
^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 )
{
set_member( id, m_bForceShowMenu, true );
show_menu( id, MENU_KEYS, MENU_CONTENT, TIME_MENU, MENU_IDENT__TEAM_SELECT_MENU );
}
public handler_TeamSelectMenu( const id, const iKey )
{
switch( iKey )
{
case KEY_1:
{
rg_internal_cmd( id, "jointeam", "1" );
}
case KEY_2:
{
rg_internal_cmd( id, "jointeam", "2" );
}
case KEY_5:
{
rg_internal_cmd( id, "jointeam", "5" );
}
case KEY_6:
{
user_silentkill( id );
rg_internal_cmd( id, "jointeam", "6" );
}
case KEY_0:
{
return PLUGIN_HANDLED;
}
}
rg_internal_cmd( id, "joinclass", "5" );
set_member( id, m_bTeamChanged, false );
return PLUGIN_HANDLED;
}
#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\rVK.COM/GMFORCE^n\
^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 )
{
set_member( id, m_bForceShowMenu, true );
show_menu( id, MENU_KEYS, MENU_CONTENT, TIME_MENU, MENU_IDENT__TEAM_SELECT_MENU );
}
public handler_TeamSelectMenu( const id, const iKey )
{
switch( iKey )
{
case KEY_1:
{
rg_internal_cmd( id, "jointeam", "1" );
}
case KEY_2:
{
rg_internal_cmd( id, "jointeam", "2" );
}
case KEY_5:
{
rg_internal_cmd( id, "jointeam", "5" );
}
case KEY_6:
{
user_silentkill( id );
rg_internal_cmd( id, "jointeam", "6" );
}
case KEY_0:
{
return PLUGIN_CONTINUE;
}
}
rg_internal_cmd( id, "joinclass", "5" );
set_member( id, m_bTeamChanged, false );
return PLUGIN_CONTINUE;
}
#include < amxmodx >
#include < reapi >
#pragma semicolon 1
new const MENU_CONTENT[ ] =
{
"^t^t^t^t\rVK.COM/GMFORCE^n\
^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Выход"
};
new HookChain: g_hookShowMenu;
public plugin_init( )
{
RegisterHookChain( RG_ShowVGUIMenu, "hook_ShowVGUIMenu", .post = false );
RegisterHookChain( RG_HandleMenu_ChooseTeam, "hook_HandleMenuChooseTeamPre", .post = false );
RegisterHookChain( RG_HandleMenu_ChooseTeam, "hook_HandleMenuChooseTeamPost", .post = true );
DisableHookChain( g_hookShowMenu = RegisterHookChain( RG_ShowMenu, "hook_ShowMenu", .post = false ) );
}
public hook_ShowVGUIMenu( const id, VGUIMenu: menuType, const bitsSlots, const szOldMenu[ ] )
{
if( menuType != VGUI_Menu_Team )
{
return HC_CONTINUE;
}
set_member( id, m_bForceShowMenu, true );
SetHookChainArg( 3, ATYPE_INTEGER, MENU_KEY_0 | MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_5 | MENU_KEY_6 );
SetHookChainArg( 4, ATYPE_STRING, MENU_CONTENT );
EnableHookChain( g_hookShowMenu );
return HC_CONTINUE;
}
public hook_HandleMenuChooseTeamPre( const id, const MenuChooseTeam: slot )
{
if( is_user_alive( id ) )
{
user_silentkill( id );
}
set_member_game( m_bSkipShowMenu, true );
}
public hook_HandleMenuChooseTeamPost( const id, const MenuChooseTeam: slot )
{
set_member( id, m_bTeamChanged, false );
set_member_game( m_bSkipShowMenu, false );
set_member( id, m_iMenu, Menu_ChooseAppearance );
rg_internal_cmd( id, "joinclass", "5" );
}
public hook_ShowMenu( const id, const bitsSlots, const iDisplayTime, const iNeedMore, pszText[ ] )
{
DisableHookChain( g_hookShowMenu );
show_menu( id, bitsSlots, pszText, iDisplayTime );
set_member( id, m_iMenu, Menu_ChooseTeam );
return HC_SUPERCEDE;
}
https://github.com/s1lentq/ReGameDL...2d2d8498f23aa/regamedll/dlls/client.cpp#L3266this command is not available to you at his point
Я не жду фиксов, мне об этом сказал игрок и не более, сам я этого не наблюдал.WILL_BE, https://dev-cs.ru/threads/4838/post-54932. Прошел год с последнего баг репорта (если это так можно назвать). До сих пор кроме слов "есть багы" ничего нет. Ни темы, ни конфигов, ни шагов для воспроизведения. Можете и дальше ждать фикса багов в плагине, автор которого знать не знает о них.
Как-то так, наверноеJavekson, было бы неплохо ещё учесть в меню выбор vip на картах as_.
#include < amxmodx >
#include < reapi >
#pragma semicolon 1
const MAX_LENGTH__MENU_CONTENTS = 512;
new const MENU_TAB[ ] = "^t^t^t^t";
new HookChain: g_hookShowMenu;
public plugin_init( )
{
RegisterHookChain( RG_ShowVGUIMenu, "hook_ShowVGUIMenu", .post = false );
RegisterHookChain( RG_HandleMenu_ChooseTeam, "hook_HandleMenuChooseTeam_Pre", .post = false );
RegisterHookChain( RG_HandleMenu_ChooseTeam, "hook_HandleMenuChooseTeam_Post", .post = true );
DisableHookChain( g_hookShowMenu = RegisterHookChain( RG_ShowMenu, "hook_ShowMenu", .post = false ) );
}
public hook_ShowVGUIMenu( const id, VGUIMenu: menuType, const bitsSlots, const szOldMenu[ ] )
{
if( menuType != VGUI_Menu_Team )
{
return HC_CONTINUE;
}
/* ------------------------------ */
new TeamName: iTeam = get_member( id, m_iTeam );
new bool: bMapHasVIP = bool: ( get_member_game( m_bMapHasVIPSafetyZone ) == 1 );
/* ------------------------------ */
new sMenu[ MAX_LENGTH__MENU_CONTENTS ];
new iKeys = MENU_KEY_1 | MENU_KEY_2 | MENU_KEY_5 | MENU_KEY_6;
new iMenuLen = formatex( sMenu, charsmax( sMenu ), "%s\rGAME FORCE | PUBLIC 18+^n", MENU_TAB );
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "%s\rGROUP: VK.COM/GMFORCE^n^n", MENU_TAB );
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "%s\yМеню выбора команды^n^n", MENU_TAB );
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "%s\y1. \wТеррористы^n", MENU_TAB );
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "%s\y2. \wКонтр-террористы^n", MENU_TAB );
if( bMapHasVIP && iTeam == TEAM_CT )
{
iKeys |= MENU_KEY_3;
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "%s\y3. \wVIP-персона^n", MENU_TAB );
}
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "^n%s\y5. \wСлучайный выбор^n", MENU_TAB );
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "%s\y6. \wНаблюдатели^n^n", MENU_TAB );
if( iTeam != TEAM_UNASSIGNED )
{
iKeys |= MENU_KEY_0;
iMenuLen += formatex( sMenu[ iMenuLen ], charsmax( sMenu ) - iMenuLen, "%s\y0. \wВыход", MENU_TAB );
}
/* ------------------------------ */
set_member( id, m_bForceShowMenu, true );
SetHookChainArg( 3, ATYPE_INTEGER, iKeys );
SetHookChainArg( 4, ATYPE_STRING, sMenu );
EnableHookChain( g_hookShowMenu );
return HC_CONTINUE;
}
public hook_HandleMenuChooseTeam_Pre( const id, const MenuChooseTeam: slot )
{
set_member_game( m_bSkipShowMenu, true );
/* ------------------------------ */
if( slot == MenuChoose_VIP || get_member( id, m_bIsVIP ) )
{
return HC_CONTINUE;
}
/* ------------------------------ */
if( is_user_alive( id ) )
{
user_silentkill( id );
}
return HC_CONTINUE;
}
public hook_HandleMenuChooseTeam_Post( const id, const MenuChooseTeam: slot )
{
set_member( id, m_bTeamChanged, false );
set_member_game( m_bSkipShowMenu, false );
set_member( id, m_iMenu, Menu_ChooseAppearance );
rg_internal_cmd( id, "joinclass", "5" );
}
public hook_ShowMenu( const id, const bitsSlots, const iDisplayTime, const iNeedMore, const pszText[ ] )
{
DisableHookChain( g_hookShowMenu );
show_menu( id, bitsSlots, pszText, iDisplayTime );
set_member( id, m_iMenu, Menu_ChooseTeam );
return HC_SUPERCEDE;
}