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( ); }
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( ); }