just part
PHP Code:
RegisterHam(Ham_TakeDamage, "player", "fw_takedamage_pre",0)
RegisterHam(Ham_Think, "grenade", "fw_think")
register_forward(FM_SetModel,"fw_setmodel",1);
public fw_takedamage_pre( vic , iInflictor , att , Float:Damage, bitsDamageType )
if( bitsDamageType & DMG_GRENADE ) SetHamParamFloat(4, 0.0) // we have our custom dmg
public fw_setmodel(ent,model[])
{
if(equal(model, "models/w_hegrenade.mdl"))
set_pdata_int(ent, 41, pev(ent, pev_owner), 4)
return FMRES_SUPERCEDE
}
public fw_think(ent)
{
static Float:dmgtime
pev(ent, pev_dmgtime, dmgtime)
if (dmgtime > get_gametime()) return HAM_IGNORED
if(is_flash(ent))
flashowner = get_pdata_int(ent, 41, 4) , flash = ent
if(is_he(ent))
{
server_print("HE THINK")
heowner = get_pdata_int(ent, 41, 4)
static Float:or[3]
pev(ent,pev_origin,or)
new target = -1
static Float:flDistance, Float:flDamage
while(( target = find_ent_in_sphere(target, or, grenadelvl[heowner]*50.0) ))
{
if(!alive(target)) continue
flDistance = entity_range(ent, target );
flDamage = UTIL_FloatRadius( 100.0, grenadelvl[heowner]*50.0, flDistance );
ExecuteHamB(Ham_TakeDamage, target, ent, heowner , flDamage , DMG_CLUB)
server_print("radius %.2f damage %.2f", grenadelvl[heowner]*50.0, flDamage)
}
}
return HAM_IGNORED
}
public bool:is_he(ent)
{
static model[32]
pev(ent, pev_model, model, 31)
return bool:(containi(model, "w_hegrenade.mdl") != -1)
}
In a moment of HE explosion I want to make damage once. I dont know why after throwing HE grenade right in explosion moment I see
debug message server_print("HE THINK") two times ....Therefore I suppose my radius damage also calculates two times
also I ask someone fix UTIL_FloatRadius because it calculates wrong radius damage im sure 100% .
__________________
VDS in Europe 1 gb/s unmetered.Any configurations.
I accept Paypal, Moneybookers,etc