Try this :
Reference is
https://raw.github.com/Arkshine/CSSD..._hegrenade.cpp
Interesting code is in function void CHEGrenade::WeaponIdle()
grenade_throw forward is sent during execution of CGrenade::ShootTimed2
PHP Code:
#include <amxmodx>
#include <cstrike>
#include <csx>
#include <hamsandwich>
#include <fakemeta>
#define PLUGIN "HeBlock"
#define VERSION "2.0"
#define AUTHOR "FromTheFuture"
const Float:THROW_HEGREN_DELAY = 15.0;
const XO_CBASEPLAYERITEM = 4;
const m_pPlayer = 41;
const XO_CBASEPLAYERWEAPON = 4;
const m_flNextPrimaryAttack = 46;
new Float: g_fNextThrowTime[33];
new HamHook:g_iHhCHEGrenadeWeaponIdlePost, HamHook:g_iHhCHEGrenadeHolster;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam( Ham_Item_Deploy, "weapon_hegrenade", "OnCHEGrenade_Deploy_Post", true );
DisableHamForward
(
g_iHhCHEGrenadeWeaponIdlePost = RegisterHam( Ham_Weapon_WeaponIdle, "weapon_hegrenade", "OnCHEGrenade_WeaponIdle_Post", true )
);
DisableHamForward
(
g_iHhCHEGrenadeHolster = RegisterHam( Ham_Item_Holster, "weapon_hegrenade", "OnCHEGrenade_Holster", false )
);
}
public OnCHEGrenade_Deploy_Post( pEntity )
{
new id = get_pdata_cbase( pEntity , m_pPlayer , XO_CBASEPLAYERITEM );
new Float:flWaitTime = g_fNextThrowTime[id] - get_gametime();
if( flWaitTime > 0.0 )
{
client_print(id, print_center, "Please, wait %.0f seconds", flWaitTime);
set_pdata_float(pEntity, m_flNextPrimaryAttack, flWaitTime, XO_CBASEPLAYERWEAPON);
}
}
public OnCHEGrenade_Holster( pEntity )
{
DisableHamForward( g_iHhCHEGrenadeWeaponIdlePost );
DisableHamForward( g_iHhCHEGrenadeHolster );
}
public OnCHEGrenade_WeaponIdle_Post( pEntity )
{
set_pdata_float(pEntity, m_flNextPrimaryAttack, THROW_HEGREN_DELAY - 0.5, XO_CBASEPLAYERWEAPON);
}
public grenade_throw(id, gid, wid)
{
if(wid == CSW_HEGRENADE)
{
g_fNextThrowTime[id] = get_gametime() + THROW_HEGREN_DELAY;
if( cs_get_user_bpammo(id, CSW_HEGRENADE) > 1 )
{
EnableHamForward( g_iHhCHEGrenadeWeaponIdlePost );
EnableHamForward( g_iHhCHEGrenadeHolster );
}
}
}
__________________