Script:Files:script/vehicles/weapons/stroybomb.script
From Mod Wiki
object vehicle_weapon_stroybomb : vehicle_weapon_base { void preinit(); void Fire(); string muzzleFlashFX; float fireRate; float spread; float projectileIndex; float jointHandle; vector velocity; entity vehicle; } void vehicle_weapon_stroybomb::preinit() { projectileIndex = GetEntityDef( getKey( "def_projectile" ) ); vehicle = getVehicle(); jointHandle = vehicle.getJointHandle( getKey( "muzzle" ) ); muzzleFlashFX = getKey( "muzzle_flash" ); fireRate = getFloatKey( "fire_rate" ); spread = getFloatKey( "spread" ); velocity = getVectorKey( "velocity" ); } void vehicle_weapon_stroybomb::Fire() { vector origin = vehicle.getJointPos( jointHandle ); vector vehicleVelocity = vehicle.getLinearVelocity(); vehicleVelocity_z = 0.f; float velocityLength = sys.vecLength( velocity ); vector forward; if ( user != $null_entity ) { forward = sys.angToForward( user.getRenderViewAngles() ); } else { forward = vehicle.jointToWorldSpace( jointHandle, velocity ) * ( 1 / velocityLength ); } vector projectileVelocity = forward * velocityLength; float forwardVelocity = vehicleVelocity * forward; if ( forwardVelocity > 0.0f ) { projectileVelocity += forward * forwardVelocity; } vehicle.launchMissileSimple( user, vehicle, $null_entity, projectileIndex, -1, spread, origin, projectileVelocity ); vehicle.playJointEffect( muzzleFlashFX, jointHandle, 0 ); AddReFireDelay( fireRate ); RemoveCharge(); GoToIdle(); }