so i this explosive flare grenade code, but for some reason it doesn't deal damage all the time, even tho the damage is printed in chat
PHP Code:
public flare_explode(entity)
{
if (!pev_valid(entity))
{
return
}
static Float:origin[3] //
pev(entity, pev_origin, origin)
create_blast2(origin)
explode(entity, origin)
static attacker;
attacker = pev(entity, pev_owner)
static victim
victim = -1
while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, origin, Float:260.0)) != 0)
{
// Only effect alive humans
if (!is_user_alive(victim) || !zp_core_is_zombie(victim) || zp_item_zombie_madness_get(victim))
continue;
static Float:orig[3], Float:dmg, Float:knockback[3]
pev(victim, pev_origin, orig)
dmg = get_pcvar_float(cvar_grenade_damage) - get_distance_f(origin, orig)
knockback[0] = get_pcvar_float(cvar_grenade_knockback) - get_distance_f(origin, orig) * 0.5
knockback[1] = get_pcvar_float(cvar_grenade_knockback) - get_distance_f(origin, orig) * 0.5
knockback[2] = get_pcvar_float(cvar_grenade_knockback) - get_distance_f(origin, orig) * 0.5
ExecuteHamB(Ham_TakeDamage, victim, entity, attacker, dmg, (1<<24))
set_pev(victim, pev_velocity, knockback)
static name[32]; get_user_name(victim, name, charsmax(name))
zp_colored_print(attacker, "Damage to^x04 %s^x01 ::^x04 %0.0f damage", name, dmg)
}
// Get rid of the grenade
engfunc(EngFunc_RemoveEntity, entity)
}