PHP Code:
#include <amxmodx>
#include <hamsandwich>
#tryinclude <cstrike_pdatas>
#if !defined _cbaseentity_included
#assert Cstrike Pdatas and Offsets library required! Read the below instructions: \
1. Download it at forums.alliedmods.net/showpost.php?p=1712101#post1712101 \
2. Put it into amxmodx/scripting/include/ folder \
3. Compile this plugin locally, details: wiki.amxmodx.org/index.php/Compiling_Plugins_%28AMX_Mod_X%29 \
4. Install compiled plugin, details: wiki.amxmodx.org/index.php/Configuring_AMX_Mod_X#Installing
#endif
#define PLUGIN ""
#define VERSION "0.0.1"
enum ( <<=1 )
{
WEAPONSTATE_USP_SILENCED = 1,
WEAPONSTATE_GLOCK18_BURST_MODE,
WEAPONSTATE_M4A1_SILENCED,
WEAPONSTATE_ELITE_LEFT,
WEAPONSTATE_FAMAS_BURST_MODE,
WEAPONSTATE_SHIELD_DRAWN
}
public plugin_init()
{
register_plugin( PLUGIN, VERSION, "ConnorMcLeod" )
RegisterHam(Ham_Item_Deploy, "weapon_usp", "OnCUSP_Deploy", false)
RegisterHam(Ham_Item_Deploy, "weapon_m4a1", "OnCM4A1_Deploy", false)
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_usp", "OnCUSP_SecondaryAttack", false)
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_m4a1", "OnCM4A1_SecondaryAttack", false)
}
public OnCUSP_Deploy( usp )
{
// new id = get_pdata_cbase(usp, m_pPlayer, XO_CBASEPLAYERITEM)
// if( !get_pdata_bool(id, m_bHasShield) )
// {
// new fWeaponState = get_pdata_int(usp, m_fWeaponState, XO_CBASEPLAYERWEAPON)
// if( ~fWeaponState & WEAPONSTATE_USP_SILENCED )
// {
// set_pdata_int(usp, m_fWeaponState, fWeaponState | WEAPONSTATE_USP_SILENCED, XO_CBASEPLAYERWEAPON)
// }
// }
new fWeaponState = get_pdata_int(usp, m_fWeaponState, XO_CBASEPLAYERWEAPON)
if( ~fWeaponState & WEAPONSTATE_USP_SILENCED )
{
set_pdata_int(usp, m_fWeaponState, fWeaponState | WEAPONSTATE_USP_SILENCED, XO_CBASEPLAYERWEAPON)
}
set_pdata_float(usp, m_flNextSecondaryAttack, 9999.9, XO_CBASEPLAYERWEAPON)
}
public OnCM4A1_Deploy( m4a1 )
{
new fWeaponState = get_pdata_int(m4a1, m_fWeaponState, XO_CBASEPLAYERWEAPON)
if( ~fWeaponState & WEAPONSTATE_M4A1_SILENCED )
{
set_pdata_int(m4a1, m_fWeaponState, fWeaponState | WEAPONSTATE_M4A1_SILENCED, XO_CBASEPLAYERWEAPON)
}
set_pdata_float(m4a1, m_flNextSecondaryAttack, 9999.9, XO_CBASEPLAYERWEAPON)
}
public OnCUSP_SecondaryAttack( usp )
{
set_pdata_float(usp, m_flNextSecondaryAttack, 9999.9, XO_CBASEPLAYERWEAPON)
return HAM_SUPERCEDE
}
public OnCM4A1_SecondaryAttack( m4a1 )
{
set_pdata_float(m4a1, m_flNextSecondaryAttack, 9999.9, XO_CBASEPLAYERWEAPON)
return HAM_SUPERCEDE
}