diff --git a/AUTHORS.txt b/AUTHORS.txt index dcf94277cca..868f5a6a95e 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -35,6 +35,7 @@ adam3adam Adanteh aeroson Aggr094 +Alexus alef Aleksey EpMAK Yermakov Alganthe @@ -110,6 +111,7 @@ Raspu86 Riccardo Petricca Robert Boklahánics ruPaladin +sargken simon84 Skengman2 Sniperwolf572 @@ -124,4 +126,5 @@ Valentin Torikian voiper VyMajoris(W-Cephei) Winter +Zabuza zGuba diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp index ec7cfd6a541..be85adbc891 100644 --- a/addons/aircraft/CfgAmmo.hpp +++ b/addons/aircraft/CfgAmmo.hpp @@ -49,14 +49,26 @@ class CfgAmmo { timeToLive = 40; }; - // helper projectiles to simulate a rof > fps - class ACE_Gatling_30mm_HE_Plane_CAS_01_Deploy: Gatling_30mm_HE_Plane_CAS_01_F { - simulation = "shotSubmunitions"; - triggerTime = 0; - submunitionAmmo = "ACE_Gatling_30mm_HE_Plane_CAS_01_Sub"; - submunitionConeType[] = {"custom", {{0,0}, {0,0}, {0,0}} }; + // GAU-8 Mix ammo (AP&HE) + class ACE_GAU8_30mm_Mix_Plane_CAS_01_F: Gatling_30mm_HE_Plane_CAS_01_F { + laserLock = 1; + hit = 300; + indirectHit = 100; + indirectHitRange = 3.5; + caliber = 4.1700001; + airFriction = -0.00036000001; + explosive = 0.34999999; + soundHit1[] = {QPATHTOF(sounds\ammo\GAU8_Hit1),3.1622779,1,2000}; + soundHit2[] = {QPATHTOF(sounds\ammo\GAU8_Hit1),3.1622779,1,2000}; + soundHit3[] = {QPATHTOF(sounds\ammo\GAU8_Hit1),3.1622779,1,2000}; + soundHit4[] = {QPATHTOF(sounds\ammo\GAU8_Hit1),3.1622779,1,2000}; + multiSoundHit[] = {"soundHit1",0.25,"soundHit2",0.25,"soundHit3",0.25,"soundHit4",0.25}; + SoundSetExplosion[] = {"ACE_GAU8_30mm_Exp_SoundSet"}; + explosionSoundEffect = "DefaultExplosion"; + explosionEffects = "ACE_Gau8ShellImpact"; + muzzleEffect = "ace_aircraft_fnc_gau8_muzzleEffect"; + craterEffects = "HEShellCrater"; }; - class ACE_Gatling_30mm_HE_Plane_CAS_01_Sub: Gatling_30mm_HE_Plane_CAS_01_F {}; // adjust damage and splash damage, closer to bluefor gatling with same caliber class Cannon_30mm_HE_Plane_CAS_02_F: Gatling_30mm_HE_Plane_CAS_01_F { diff --git a/addons/aircraft/CfgCloudlets.hpp b/addons/aircraft/CfgCloudlets.hpp new file mode 100644 index 00000000000..854aa35bd1e --- /dev/null +++ b/addons/aircraft/CfgCloudlets.hpp @@ -0,0 +1,151 @@ +class CfgCloudlets { + class ACE_Gau8DefaultCldlt { + angle = 0; + animationName = ""; + animationSpeed[] = {1}; + animationSpeedCoef = 1; + beforeDestroyScript = ""; + circleRadius = 0; + circleVelocity[] = {0,0,0}; + colorCoef[] = {1,1,1,1}; + colorVar[] = {0,0,0,0}; + lifeTimeVar = 0; + MoveVelocityVarConst[] = {0,0,0}; + onTimerScript = ""; + particleFSFrameCount = 1; + particleFSIndex = 0; + particleFSLoop = 1; + particleFSNtieth = 16; + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal"; + particleType = "Billboard"; + position[] = {0,0,0}; + positionVar[] = {0,0,0}; + positionVarConst[] = {0,0,0}; + randomDirectionIntensity = 0; + randomDirectionIntensityVar = 0; + randomDirectionPeriod = 0; + randomDirectionPeriodVar = 0; + rotationVelocity = 0; + rotationVelocityVar = 0; + sizeCoef = 1; + timerPeriod = 1; + }; + class ACE_Gau8ShellExplCldlt: ACE_Gau8DefaultCldlt { + angleVar = 1; + color[] = {{1,1,1,-6},{1,1,1,0}}; + interval = 0.029999999; + lifeTime = 0.5; + moveVelocity[] = {0,1,0}; + MoveVelocityVar[] = {0.2,0.5,0.2}; + particleFSFrameCount = 32; + particleFSLoop = 0; + positionVar[] = {0.40000001,0.1,0.40000001}; + randomDirectionIntensity = 0.2; + randomDirectionPeriod = 0.2; + rotationVelocityVar = 90; + rubbing = 0.1; + size[] = {"0.0125 * intensity + 4","0.0125 * intensity + 1"}; + sizeVar = 0.5; + volume = 7.9000001; + weight = 10; + }; + class ACE_Gau8ShellSprksCldlt: ACE_Gau8DefaultCldlt { + angleVar = 360; + animationSpeed[] = {1000}; + color[] = {{1,1,1,-50}}; + interval = 0.003; + lifeTime = 4; + lifeTimeVar = 1; + moveVelocity[] = {0,5,0}; + MoveVelocityVar[] = {4,2,4}; + particleFSFrameCount = 2; + particleFSIndex = 13; + particleFSLoop = 0; + positionVar[] = {2,0.5,2}; + rotationVelocity = 1; + rotationVelocityVar = 2; + rubbing = 0; + size[] = {0.5,0.40000001,0.40000001,0.40000001,0.40000001,0.30000001,0.30000001,0.30000001,0.2,0.1}; + sizeVar = 0; + timerPeriod = 0; + volume = 8; + weight = 24; + }; + class ACE_Gau8ShellSmkCldlt: ACE_Gau8DefaultCldlt { + angleVar = 360; + animationSpeed[] = {1.5,0.5,0.25,0.25}; + circleRadius = 2; + circleVelocity[] = {0.30000001,0,0.30000001}; + color[] = {{0.5,0.5,0.5,0.40000001},{0.5,0.5,0.5,0.22},{0.60000002,0.60000002,0.60000002,0.090000004},{0.80000001,0.80000001,0.80000001,0.0099999998}}; + colorVar[] = {0,0,0,0.30000001}; + interval = 0.0070000002; + lifeTime = 6; + lifeTimeVar = 1.5; + moveVelocity[] = {0,12,0}; + MoveVelocityVar[] = {0.5,12,0.5}; + particleFSFrameCount = 48; + particleFSIndex = 7; + positionVar[] = {0.2,0.2,0.2}; + randomDirectionIntensity = 0.1; + randomDirectionIntensityVar = 0.050000001; + randomDirectionPeriod = 0.2; + randomDirectionperiodVar = 0.2; + rotationVelocity = 1; + rotationVelocityVar = 120; + rubbing = 0.5; + size[] = {6,20}; + sizeVar = 0.30000001; + volume = 1; + weight = 3; + }; + class ACE_Gau8ShellDstCldlt: ACE_Gau8DefaultCldlt { + angleVar = 0; + animationSpeed[] = {1000}; + circleRadius = 5; + circleVelocity[] = {1,1,1}; + color[] = { + {0.079999998,0.067000002,0.052000001,0}, + {0.60000002,0.5,0.40000001,0.5}, + {0.60000002,0.5,0.40000001,0.40000001}, + {0.60000002,0.5,0.40000001,0.30000001}, + {0.60000002,0.5,0.40000001,0.15000001}, + {0.60000002,0.5,0.40000001,0} + }; + interval = 0.029999999; + lifeTime = 30; + lifeTimeVar = 5; + moveVelocity[] = {0,1,0}; + MoveVelocityVar[] = {0.1,1,0.1}; + particleFSFrameCount = 13; + particleFSIndex = 12; + particleFSLoop = 0; + positionVar[] = {2,1,2}; + rotationVelocity = 1; + rotationVelocityVar = 20; + rubbing = 0.0099999998; + size[] = {18,22}; + sizeVar = 0.30000001; + volume = 0.039999999; + weight = 0.052999999; + }; + class ACE_Gau8ShellDrtCldlt: ACE_Gau8DefaultCldlt { + angleVar = 1; + animationSpeed[] = {1000}; + color[] = {{0.60000002,0.60000002,1,1},{0.60000002,0.60000002,1,0}}; + interval = "0.01 * interval + 0.01"; + lifeTime = 5; + lifeTimeVar = 1.5; + moveVelocity[] = {0,"0.1 * intensity + 10",0}; + MoveVelocityVar[] = {2,4,2}; + particleFSFrameCount = 9; + particleFSIndex = 12; + particleFSLoop = 0; + rotationVelocity = 1; + rubbing = 0; + size[] = {6,12}; + sizeVar = 0.2; + timerPeriod = 0.1; + volume = 0.1; + weight = 24; + }; +}; diff --git a/addons/aircraft/CfgLights.hpp b/addons/aircraft/CfgLights.hpp new file mode 100644 index 00000000000..4bf5b759ce6 --- /dev/null +++ b/addons/aircraft/CfgLights.hpp @@ -0,0 +1,24 @@ +class CfgLights { + class ACE_Gau8ShellExplLght { + ambient[] = {0,0,0,0}; + blinking = "false"; + brightness = 200; + color[] = {255,220,80}; + diffuse[] = {255,210,80}; + drawLight = 0; + flareSize = 20; + flareMaxDistance = 4000; + intensity = 600; + position[] = {0,50,0}; + size = 1; + useFlare = 1; + class Attenuation { + start = 0; + constant = 0; + linear = 0; + quadratic = 0; + hardLimitStart = 0; + hardLimitEnd = 0; + }; + }; +}; diff --git a/addons/aircraft/CfgMagazines.hpp b/addons/aircraft/CfgMagazines.hpp index 6d35e902558..cd615a61108 100644 --- a/addons/aircraft/CfgMagazines.hpp +++ b/addons/aircraft/CfgMagazines.hpp @@ -5,6 +5,14 @@ class CfgMagazines { ammo = "ACE_Gatling_30mm_HE_Plane_CAS_01_Deploy"; count = 1170; }; + class ACE_1174Rnd_GAU8_30mm_Plane_CAS_01_F: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { + ammo = "ACE_GAU8_30mm_Mix_Plane_CAS_01_F"; + displayNameShort = "30mm MIX"; + initSpeed = 1036; + tracersEvery = 0; + count = 1174; + nameSound = "cannon"; + }; // an extended magazine for the comanche class 300Rnd_20mm_shells; diff --git a/addons/aircraft/CfgSoundSets.hpp b/addons/aircraft/CfgSoundSets.hpp new file mode 100644 index 00000000000..f4f801c0c88 --- /dev/null +++ b/addons/aircraft/CfgSoundSets.hpp @@ -0,0 +1,12 @@ +class CfgSoundSets { + class ACE_GAU8_30mm_Exp_SoundSet { + soundShaders[] = {"ACE_GAU8_30mm_closeExp_SoundShader"}; + volumeFactor = 1.5; + volumeCurve = "InverseSquare2Curve"; + spatial = 1; + doppler = 0; + loop = 0; + sound3DProcessingType = "ExplosionLight3DProcessingType"; + distanceFilter = "none"; + }; +}; diff --git a/addons/aircraft/CfgSoundShaders.hpp b/addons/aircraft/CfgSoundShaders.hpp new file mode 100644 index 00000000000..67364abdfb8 --- /dev/null +++ b/addons/aircraft/CfgSoundShaders.hpp @@ -0,0 +1,16 @@ +class CfgSoundShaders { + class ACE_GAU8_30mm_closeExp_SoundShader { + samples[] = { + {QPATHTOF(sounds\ammo\GAU8_Hit1),1}, + {QPATHTOF(sounds\ammo\GAU8_Hit1),1}, + {QPATHTOF(sounds\ammo\GAU8_Hit1),1} + }; + volume = 1; + range = 2000; + rangeCurve[] = { + {0,1}, + {800,0.75}, + {2000,0} + }; + }; +}; diff --git a/addons/aircraft/CfgVehicles.hpp b/addons/aircraft/CfgVehicles.hpp index f5f496505e2..3fce2349f16 100644 --- a/addons/aircraft/CfgVehicles.hpp +++ b/addons/aircraft/CfgVehicles.hpp @@ -228,6 +228,10 @@ class CfgVehicles { #include }; + class B_Plane_CAS_01_F: Plane_CAS_01_base_F { + magazines[] = {"ACE_1174Rnd_GAU8_30mm_Plane_CAS_01_F","2Rnd_Missile_AA_04_F","6Rnd_Missile_AGM_02_F","4Rnd_Bomb_04_F","7Rnd_Rocket_04_HE_F","7Rnd_Rocket_04_AP_F","240Rnd_CMFlare_Chaff_Magazine"}; + }; + class Plane_CAS_02_base_F: Plane_Base_F { lockDetectionSystem = 12; incomingMissileDetectionSystem = 16; diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp index b94d9f49408..c51778f1570 100644 --- a/addons/aircraft/CfgWeapons.hpp +++ b/addons/aircraft/CfgWeapons.hpp @@ -129,20 +129,115 @@ class CfgWeapons { }; class Gatling_30mm_Plane_CAS_01_F: CannonCore { - autoFire = 1; - burst = 1; - + displayName = "GAU-8"; + magazines[] = {"ACE_1174Rnd_GAU8_30mm_Plane_CAS_01_F", "1000Rnd_Gatling_30mm_Plane_CAS_01_F"}; + canLock = 2; + dispersion = 0.0060000001; + modes[] = {"burstLO","burstHI","close","short","medium","far"}; + class GunParticles { + class Effect { + effectName = "MachineGun3"; + positionName = "Gatling_barrels_end"; + directionName = "Gatling_barrels_start"; + }; + }; + class burstBase: CannonCore { + dispersion = 0.0060000001; + soundContinuous = 0; + initSpeed = 1030; + showToPlayer = 1; + aiRateOfFire = 0.5; + aiRateOfFireDistance = 50; + autoFire = 1; + burst = 1; + } class LowROF: Mode_FullAuto { autoFire = 0; - burst = 22; //65; - reloadTime = 0.0462; //0.0154; //0.034; + minRange = 1; + minRangeProbab = 0.001; + midRange = 2; + midRangeProbab = 0.001; + maxRange = 3; + maxRangeProbab = 0.001; + ffMagnitude = 0.5; + ffFrequency = 11; + ffCount = 6; + flash = "gunfire"; + flashSize = 0.1; + soundBurst = 1; + recoil = "Empty"; + aiDispersionCoefX = 10; + aiDispersionCoefY = 10; + }; + class burstLO: burstBase { + displayName = "LO"; + textureType = "burst"; + sounds[] = {"StandardSound"}; + class StandardSound { + begin1[] = {PATHTOF(sounds\weapon\GAU8_LO),6.5810719,1,4500}; + soundBegin[] = {"begin1",1}; + weaponSoundEffect = "DefaultRifle"; + }; + multiplier = 2; + burst = 27; + reloadTime = 0.037; + }; + class burstHI: burstBase { + displayName = "HI"; + textureType = "fullAuto"; + sounds[] = {"StandardSound"}; + class StandardSound { + begin1[] = {PATHTOF(sounds\weapon\GAU8_HI),6.5810719,1,4500}; + soundBegin[] = {"begin1",1}; + weaponSoundEffect = "DefaultRifle"; + }; multiplier = 3; + burst = 35; + reloadTime = 0.0128; + }; + class close: burstHI { + showToPlayer = 0; + aiRateOfFire = 0.5; + aiRateOfFireDistance = 400; + minRange = 0; + midRange = 200; + maxRange = 400; + minRangeProbab = 0.039999999; + midRangeProbab = 0.2; + maxRangeProbab = 0.1; + }; + class short: burstHI { + showToPlayer = 0; + aiRateOfFire = 1; + aiRateOfFireDistance = 600; + minRange = 200; + midRange = 500; + maxRange = 800; + minRangeProbab = 0.1; + midRangeProbab = 0.2; + maxRangeProbab = 0.1; + }; + class medium: burstHI { + showToPlayer = 0; + aiRateOfFire = 2; + aiRateOfFireDistance = 800; + minRange = 600; + midRange = 800; + maxRange = 1000; + minRangeProbab = 0.1; + midRangeProbab = 0.2; + maxRangeProbab = 0.1; + }; + class far: burstHI { + showToPlayer = 0; + aiRateOfFire = 3; + aiRateOfFireDistance = 1000; + minRange = 800; + minRangeProbab = 0.1; + midRange = 1000; + midRangeProbab = 0.2; + maxRange = 1500; + maxRangeProbab = 0.40000001; }; - - class close: LowROF {}; - class near: close {}; - class short: close {}; - class medium: close {}; - class far: close {}; }; }; diff --git a/addons/aircraft/Effects.hpp b/addons/aircraft/Effects.hpp new file mode 100644 index 00000000000..b3a40fa8240 --- /dev/null +++ b/addons/aircraft/Effects.hpp @@ -0,0 +1,50 @@ +class ACE_Gau8ShellImpact { + class LightExp { + simulation = "light"; + type = "ACE_Gau8ShellExplLght"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class Explosion1 { + simulation = "particles"; + type = "ACE_Gau8ShellExplCldlt"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class ExpSpark { + simulation = "particles"; + type = "ACE_Gau8ShellSprksCldlt"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class SmallSmoke1 { + simulation = "particles"; + type = "ACE_Gau8ShellSmkCldlt"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class MedDust1 { + simulation = "particles"; + type = "ACE_Gau8ShellDstCldlt"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class BigDirt1 { + simulation = "particles"; + type = "ACE_Gau8ShellDrtCldlt"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; +}; diff --git a/addons/aircraft/config.cpp b/addons/aircraft/config.cpp index 48bf2c054ed..4ae6604fc80 100644 --- a/addons/aircraft/config.cpp +++ b/addons/aircraft/config.cpp @@ -8,7 +8,7 @@ class CfgPatches { requiredVersion = REQUIRED_VERSION; requiredAddons[] = {"ace_common"}; author = ECSTRING(common,ACETeam); - authors[] = {"KoffeinFlummi", "Crusty", "commy2", "jaynus", "Kimi"}; + authors[] = {"KoffeinFlummi", "Crusty", "commy2", "jaynus", "Kimi", "Alexus", "Zabuza", "sargken"}; url = ECSTRING(main,URL); VERSION_CONFIG; @@ -17,8 +17,26 @@ class CfgPatches { }; }; + +class CfgFunctions { + class ADDON { + class ADDON { + class gau8_muzzleEffect { + file = QPATHTOF(functions\fnc_gau8_muzzleEffect.sqf); + }; + }; + }; +}; + + + #include "CfgAmmo.hpp" +#include "CfgCloudlets.hpp" +#include "CfgLights.hpp" #include "CfgMagazines.hpp" +#include "CfgSoundSets.hpp" +#include "CfgSoundShaders.hpp" #include "CfgVehicles.hpp" #include "CfgWeapons.hpp" +#include "Effects.hpp" #include "RscInGameUI.hpp" diff --git a/addons/aircraft/functions/fnc_gau8_muzzleEffect.sqf b/addons/aircraft/functions/fnc_gau8_muzzleEffect.sqf new file mode 100644 index 00000000000..07e46a41253 --- /dev/null +++ b/addons/aircraft/functions/fnc_gau8_muzzleEffect.sqf @@ -0,0 +1,41 @@ +/* + * Author: Alexus, Zabuza, SzwedzikPL, Sargken + * GAU-8 muzzle effect. + * + * Argument: + * 0: Unit + * 1: Weapon + * 3: Muzzle + * 4: Ammo + * 5: Magazine + * 6: Projectile + * + * Return value: + * None + * + * Example: + * [unit, "weapon", "muzzle", "ammo", "magazine", projectile] call ace_aircraft_fnc_gau8_muzzleEffect; + * + * Public: No + */ +#include "script_component.hpp" + +private _weapon = _this select 1; +private _projectile = _this select 6; + +if (_weapon != "Gatling_30mm_Plane_CAS_01_F") exitWith {}; + +for "_i" from 1 to 8 do { + drop [ + ["\A3\data_f\ParticleEffects\Universal\Universal", 16, 12, 8], "", "Billboard", 1, 10, [0, 0, 0], + [-1.5+random 2.5,1+_i,-1.5 + random 2.5], 1, 1, 0.80, 0.08, [_i,10,13 + random 1], + [[0.9, 0.9, 0.9, 0.1 + random 0.07],[1, 1, 1, 0]], + [2,0.7,0.5], + 1, + 0, + "", + "", + _projectile + ]; + _i = _i + 1; +}; diff --git a/addons/aircraft/functions/script_component.hpp b/addons/aircraft/functions/script_component.hpp new file mode 100644 index 00000000000..8614d199c30 --- /dev/null +++ b/addons/aircraft/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\aircraft\script_component.hpp" diff --git a/addons/aircraft/sounds/ammo/GAU8_Hit1.wss b/addons/aircraft/sounds/ammo/GAU8_Hit1.wss new file mode 100644 index 00000000000..501a8da6ae7 Binary files /dev/null and b/addons/aircraft/sounds/ammo/GAU8_Hit1.wss differ diff --git a/addons/aircraft/sounds/weapon/GAU8_HI.wss b/addons/aircraft/sounds/weapon/GAU8_HI.wss new file mode 100644 index 00000000000..90303804bf8 Binary files /dev/null and b/addons/aircraft/sounds/weapon/GAU8_HI.wss differ diff --git a/addons/aircraft/sounds/weapon/GAU8_LO.wss b/addons/aircraft/sounds/weapon/GAU8_LO.wss new file mode 100644 index 00000000000..f8e06a69f4e Binary files /dev/null and b/addons/aircraft/sounds/weapon/GAU8_LO.wss differ diff --git a/optionals/compat_rhs_usf3/CfgVehicles.hpp b/optionals/compat_rhs_usf3/CfgVehicles.hpp index 5350e108672..e30f4f89b48 100644 --- a/optionals/compat_rhs_usf3/CfgVehicles.hpp +++ b/optionals/compat_rhs_usf3/CfgVehicles.hpp @@ -391,6 +391,14 @@ class CfgVehicles { class Plane_CAS_01_base_F; class RHS_A10: Plane_CAS_01_base_F { EGVAR(refuel,fuelCapacity) = 6223; + weapons[] = {"rhs_weap_MASTERSAFE","Gatling_30mm_Plane_CAS_01_F","rhs_weap_SidewinderLauncher","rhs_weap_agm65","rhs_weap_FFARLauncher","rhs_weap_gbu12","rhsusf_weap_CMFlareLauncher"}; + magazines[] = {"rhs_pod_empty","rhs_pod_lau68","rhs_pod_AGM65","rhs_mag_gbu12","rhs_mag_gbu12","rhs_pod_empty","rhs_mag_gbu12","rhs_mag_gbu12","rhs_pod_AGM65","rhs_pod_lau68","rhs_mag_ANALQ131","rhs_mag_Sidewinder_a10_2","rhs_mag_FFAR_A10_14","rhs_mag_agm65","rhs_mag_agm65","ACE_1174Rnd_GAU8_30mm_Plane_CAS_01_F","240Rnd_CMFlare_Chaff_Magazine"}; + }; + + class RHS_A10_AT: Plane_CAS_01_base_F { + EGVAR(refuel,fuelCapacity) = 6223; + weapons[] = {"rhs_weap_MASTERSAFE","Gatling_30mm_Plane_CAS_01_F","rhs_weap_SidewinderLauncher","rhs_weap_agm65","rhs_weap_FFARLauncher","rhs_weap_gbu12","rhsusf_weap_CMFlareLauncher"}; + magazines[] = {"rhs_pod_empty","rhs_pod_lau68","rhs_pod_agm65x3_rack","rhs_mag_gbu12","rhs_mag_gbu12","rhs_pod_empty","rhs_mag_gbu12","rhs_mag_gbu12","rhs_pod_agm65x3_rack","rhs_pod_lau68","rhs_mag_ANALQ131","rhs_mag_Sidewinder_a10_2","rhs_mag_FFAR_A10_14","rhs_pod_empty_agm65","rhs_pod_empty_agm65","rhs_mag_agm65_x3","rhs_mag_agm65_x3","rhs_mag_agm65_x3","rhs_mag_agm65_x3","rhs_mag_agm65_x3","rhs_mag_agm65_x3","ACE_1174Rnd_GAU8_30mm_Plane_CAS_01_F","240Rnd_CMFlare_Chaff_Magazine"}; }; class Plane_Base_F;