Code:
#include < amxmodx >
#include < engine >
#include < cstrike >
#include < hamsandwich >
new g_hMenu[ 33 ];
new g_iMenuPlayer[ 33 ];
public plugin_init( ) {
RegisterHam( Ham_ObjectCaps, "player", "FwdObjectCaps", 1 );
}
public client_disconnect( iPlayer ) {
new hMenu = g_hMenu[ iPlayer ];
if( hMenu ) {
menu_destroy( hMenu );
g_hMenu[ iPlayer ] = 0;
}
g_iMenuPlayer[ iPlayer ] = 0;
for( new i = 1; i < 33; i++ ) {
if( g_iMenuPlayer[ i ] == iPlayer ) {
g_iMenuPlayer[ i ] = 0;
}
}
}
public FwdObjectCaps( iPlayer ) {
if( ( get_user_button( iPlayer ) & IN_USE )
&& cs_get_user_team( iPlayer ) == CS_TEAM_CT ) {
new iEntity, iBody;
get_user_aiming( iPlayer, iEntity, iBody );
if( is_user_alive( iEntity )
&& cs_get_user_team( iEntity ) == CS_TEAM_T ) {
new hMenu = g_hMenu[ iPlayer ];
if( hMenu ) {
menu_destroy( hMenu );
}
hMenu = menu_create( "Your Menu", "MenuHandler" );
menu_additem( hMenu, "Item 1", "1" );
menu_additem( hMenu, "Item 2", "2" );
menu_additem( hMenu, "Item 3", "3" );
g_hMenu[ iPlayer ] = hMenu;
g_iMenuPlayer[ iPlayer ] = iEntity;
menu_display( iPlayer, hMenu );
}
}
}
public MenuHandler( iPlayer, hMenu, iItem ) {
new hCurMenu = g_hMenu[ iPlayer ];
if( !hCurMenu
|| hCurMenu != hMenu ) {
return;
}
new iMenuPlayer = g_iMenuPlayer[ iPlayer ];
if( !iMenuPlayer
|| cs_get_user_team( iMenuPlayer ) != CS_TEAM_T
|| iItem == MENU_EXIT ) {
goto exit_menu;
}
new iAccess, szInfo[ 3 ], hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szInfo, 2, _, _, hCallback );
switch( str_to_num( szInfo ) ) {
case 1: {
// iPlayer = ct player
// iMenuPlayer = t player
// pressed item 1
}
case 2: {
// iPlayer = ct player
// iMenuPlayer = t player
// pressed item 2
}
case 3: {
// iPlayer = ct player
// iMenuPlayer = t player
// pressed item 3
}
}
exit_menu:
g_hMenu[ iPlayer ] = 0;
g_iMenuPlayer[ iPlayer ] = 0;
menu_destroy( hMenu );
}