Код:
Explode( pEntity )
{
if( !is_valid_ent( pEntity ) )
return;
static Float:vecSrc[ 3 ];
entity_get_vector( pEntity, EV_VEC_origin, vecSrc );
static pevVictim, Float:flDistance, Float:flDamage
pevVictim = -1;
#define MAX_RADIUS 150.0
#define MAX_DAMAGE 100.0
while( ( pevVictim = engfunc( EngFunc_FindEntityInSphere, pevVictim, vecSrc, MAX_RADIUS ) ) > 0 )
{
flDistance = entity_range( pEntity, pevVictim );
flDamage = UTIL_FloatRadius( MAX_DAMAGE, MAX_RADIUS, flDistance );
}
}
stock Float:UTIL_FloatRadius( Float:flMaxAmount, Float:flRadius, Float:flDistance )
return floatsub( flMaxAmount, floatmul( floatdiv( flMaxAmount, flRadius ), flDistance ) );
А далее урон через ExecuteHam - TakeDamage