#include < amxmodx >
#include < engine >
#include < fakemeta >
#include < hamsandwich >
#include < cstrike >
#include < fun >
#define MaxWeapon 11
new const g_iWeapons[ MaxWeapon ] = { 22, 28, 18, 3, 8, 15, 14, 19, 5, 21, 20 };
new g_sWeapon[ MaxWeapon ][ 16 ], g_sWeaponFull[ MaxWeapon ][ 32 ];
new bool: g_bWeaponMenu[ 33 ], bool: g_bC4;
public plugin_init( )
{
register_plugin( "WeaponMenu", "1.0", "Demon" );
register_cvar( "WeaponMenu", "By Demon", FCVAR_SERVER );
new sWeapName[ 32 ], sLeft[ 16 ], sRight[ 16 ];
for ( new i; i < MaxWeapon; ++i )
{
get_weaponname( g_iWeapons[ i ], sWeapName, 31 );
RegisterHam( Ham_Weapon_Reload, sWeapName, "Reload_Post", 1 );
copy( g_sWeaponFull[ i ], 31, sWeapName );
strtok( sWeapName, sRight, 15, sLeft, 15, '_' );
strtoupper( sLeft );
copy( g_sWeapon[ i ], 15, sLeft );
}
RegisterHam( Ham_Weapon_Reload, "weapon_deagle", "Reload_Post", 1 );
RegisterHam( Ham_Spawn, "player", "PlayerSpawn", 1 );
new iEntity = create_entity( "info_map_parameters" );
DispatchKeyValue( iEntity, "buying", "3" );
DispatchSpawn( iEntity );
iEntity = create_entity( "player_weaponstrip" );
DispatchKeyValue( iEntity, "targetname", "stripper" );
DispatchSpawn( iEntity );
iEntity = create_entity( "game_player_equip" );
DispatchKeyValue( iEntity, "weapon_knife" , "1" );
DispatchKeyValue( iEntity, "targetname", "equipment" );
DispatchSpawn( iEntity );
iEntity = create_entity( "multi_manager" );
DispatchKeyValue( iEntity, "equipment" , "0.3" );
DispatchKeyValue( iEntity, "stripper" , "0.2" );
DispatchKeyValue( iEntity, "targetname", "game_playerspawn" );
DispatchKeyValue( iEntity, "spawnflags", "1" );
DispatchSpawn( iEntity );
register_event( "HLTV", "eNewRound", "a", "1=0", "2=0" );
register_concmd( "say /gun", "cmdWeaponMenu" );
register_concmd( "say /fegyver", "cmdWeaponMenu" );
}
public pfn_keyvalue( iEntity )
{
new sClassName[ 20 ], sKeyName[ 16 ], sValue[ 20 ];
copy_keyvalue( sClassName, charsmax( sClassName ), sKeyName, charsmax( sKeyName ), sValue, charsmax( sValue ) );
if ( equal( sClassName, "info_map_parameters" ) || equal( sClassName, "func_buyzone" ) || equal( sClassName, "game_player_equip" ) || equal( sClassName, "player_weaponstrip" ) )
{
remove_entity( iEntity );
return PLUGIN_HANDLED;
}
else if ( equal( sClassName, "multi_manager" ) && equal( sKeyName, "targetname" ) && equal( sValue, "game_playerspawn" ) )
{
remove_entity( iEntity );
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public Reload_Post( iWeapon )
{
static iId; iId = get_pdata_cbase( iWeapon, 41, 4 );
if ( !is_user_connected( iId ) ) return;
if ( get_pdata_int( iWeapon, 54, 4 ) || get_pdata_int( iWeapon, 55, 4 ) )
cs_set_user_bpammo( iId, cs_get_weapon_id( iWeapon ), 100 );
}
public PlayerSpawn( iId ) { set_task( 0.1, "CheckC4", iId ); }
public CheckC4( iId )
{
if ( !g_bC4 ) if ( user_has_weapon( iId, CSW_C4 ) ) set_task( 0.4, "GiveC4", iId );
set_task( 0.33, "WeaponMenu", iId );
}
public GiveC4( iId ) { give_item( iId, "weapon_c4" ); cs_set_user_plant( iId, 1, 1 ); g_bC4 = true; }
public WeaponMenu( iId )
{
if ( !is_user_alive( iId ) ) return;
g_bWeaponMenu[ iId ] = false;
static sMenuItem[ 128 ];
new iMenu = menu_create( "Fegyvermenu:", "WeaponMenuH" );
for ( new i; i < MaxWeapon; ++i )
{
formatex( sMenuItem, 127, "\r[\y%s\r]", g_sWeapon[ i ] );
menu_additem( iMenu, sMenuItem, _, 0 );
}
menu_setprop( iMenu, MPROP_EXIT, MEXIT_ALL );
menu_display( iId, iMenu );
}
public WeaponMenuH( iId, iMenu, iItem )
{
if( iItem == MENU_EXIT || !is_user_alive( iId ) )
{
menu_destroy( iMenu );
return;
}
new sMenuName[ 78 ], sInfo[ 8 ], iKey, iMenuNum;
menu_item_getinfo( iMenu, iItem, iKey, sInfo, charsmax( sInfo ), sMenuName, charsmax( sMenuName ), iMenuNum );
give_item( iId, g_sWeaponFull[ iItem ] );
give_item( iId, "weapon_deagle" );
give_item( iId, "weapon_flashbang" );
give_item( iId, "weapon_hegrenade" );
give_item( iId, "weapon_smokegrenade" );
give_item( iId, "item_assaultsuit" );
give_item( iId, "item_thighpack" );
cs_set_user_bpammo( iId, g_iWeapons[ iItem ], 100 );
cs_set_user_bpammo( iId, CSW_DEAGLE, 100 );
cs_set_user_bpammo( iId, CSW_FLASHBANG, 2 );
client_print( iId, print_chat, "[Fegyvermenu] %s fegyver csomagot valasztottad.", g_sWeapon[ iItem ] );
g_bWeaponMenu[ iId ] = true;
}
public eNewRound ( ) { g_bC4 = false; }
public cmdWeaponMenu( iId ) { if ( !g_bWeaponMenu[ iId ] ) WeaponMenu( iId ); }