Esempio n. 1
0
void Sentry_Explode(  )
{
    ThrowGib( "progs/tgib1.mdl", -70 );
    ThrowGib( "progs/tgib2.mdl", -70 );
    ThrowGib( "progs/tgib3.mdl", -70 );
    if ( self->real_owner->has_disconnected != 1 )
    {
        tf_data.deathmsg = DMSG_SG_EXPLODION;
        T_RadiusDamage( self, self->real_owner, 75 + self->s.v.ammo_rockets * 8, self );
    }
    if ( streq( self->s.v.classname, "building_sentrygun_base" ) )
    {
        if ( self->oldenemy )
            dremove( self->oldenemy );
    } else
        dremove( self->trigger_field );
    TempEffectCoord(  self->s.v.origin , TE_EXPLOSION );
    BecomeExplosion(  );
}
Esempio n. 2
0
void Dispenser_Explode(  )
{
    float sdmg;

    if ( self->real_owner->has_disconnected != 1 )
    {
	tf_data.deathmsg = DMSG_DISP_EXPLODION;
	sdmg = 25 + self->s.v.ammo_rockets * 1.5 + self->s.v.ammo_cells;
	if ( sdmg > 250 )
	    sdmg = 250;
	T_RadiusDamage( self, self->real_owner, sdmg, self );
    }
    ThrowGib( "progs/dgib1.mdl", -30 );
    ThrowGib( "progs/dgib2.mdl", -50 );
    ThrowGib( "progs/dgib3.mdl", -50 );
    trap_WriteByte( MSG_MULTICAST, SVC_TEMPENTITY );
    trap_WriteByte( MSG_MULTICAST, TE_EXPLOSION );
    trap_WriteCoord( MSG_MULTICAST, self->s.v.origin[0] );
    trap_WriteCoord( MSG_MULTICAST, self->s.v.origin[1] );
    trap_WriteCoord( MSG_MULTICAST, self->s.v.origin[2] );
    trap_multicast( PASSVEC3( self->s.v.origin ), 1 );
    BecomeExplosion(  );
}