Browse Source

Merge pull request #104 from 501st-Aux-Mod-Team/tcw_laat_2

Tcw laat 2
Erliens 4 years ago
parent
commit
b03134809b

+ 18 - 1
addons - Copy/RD501_Vehicle_Weapons/_ammo/aircraft_laser_cannon.hpp

@@ -58,4 +58,21 @@
 		muzzleEffect = "";
 		effectFly = "SWOP_BlueLaserEffect";
 		model = "\tie\tracer_blue";
-	};
+	};
+
+	class laserAmmo_F;
+	class macro_new_ammo(generic_aircraft_laser_cannon_dual_green): laserAmmo_F
+	{
+		hit = 400;
+		indirectHit = 200;
+		indirectHitRange = 0;
+		caliber = 1;
+		explosive = 0.6;
+		dangerRadiusBulletClose = 16;
+		dangerRadiusHit = 40;
+		suppressionRadiusBulletClose = 10;
+		suppressionRadiusHit = 14;
+		craterEffects = "";
+		craterShape = "";
+		explosionEffects = "ExploAmmoLaserCannon";
+	};

+ 10 - 1
addons - Copy/RD501_Vehicle_Weapons/_mags/aircraft_laser_gun.hpp

@@ -49,9 +49,18 @@
 		count = "15";
 	};
 
-		class macro_new_mag(generic_aircraft_gun_dual_blue,1000): macro_new_mag(generic_aircraft_gun_blue,1000)
+	class macro_new_mag(generic_aircraft_gun_dual_blue,1000): macro_new_mag(generic_aircraft_gun_blue,1000)
 	{
 		displayNameShort = "Plasma Cores (Blue)";
 		displayName = "Plasma Cores (Blue)";
 		ammo = macro_new_ammo(generic_aircraft_laser_cannon_dual_blue)
+	};
+
+	class Laser_Battery_F;
+	class macro_new_mag(generic_aircraft_gun_dual_green,1000): Laser_Battery_F
+	{
+		displayNameShort = "Plasma Cores (Green)";
+		displayName = "Plasma Cores (Green)";
+		ammo = macro_new_ammo(generic_aircraft_laser_cannon_dual_green)
+		count = 1000;
 	};

+ 29 - 12
addons - Copy/RD501_Vehicle_Weapons/aircraft/ball_turret/config.cpp

@@ -11,19 +11,42 @@ class CfgPatches
 		addonRootClass= macro_patch_name(vehicle_weapons)
 		requiredAddons[]=
 		{
-			macro_patch_name(vehicle_weapons)
+			macro_patch_name(vehicle_weapons),
+			"3AS_LAAT"
 		};
 		requiredVersion=0.1;
 		units[]={};
-		weapons[]={
-			//macro_new_weapon(cannon,laat)
-			
-		};
+		weapons[]={};
 	};
 };
 
 class CfgWeapons
 {
+	class 3as_LAAT_autocannon_30mm;
+	class ParticleBeamCannon_F: 3as_LAAT_autocannon_30mm
+	{
+		class HE;
+	};
+	class ParticleBeamCannon: ParticleBeamCannon_F{};
+	class macro_new_weapon(turret,laat_ball_beam_l): ParticleBeamCannon
+	{
+		displayName = "BeamRider Mk-I";
+		author = DANKAUTHORS;
+
+		magazines[] = {macro_new_mag(laat_ball_beam,300), "Laser_Battery_F"};
+		class HE: HE
+		{
+			displayName = "BeamRider Mk-I";
+			magazines[] = {macro_new_mag(laat_ball_beam,300), "Laser_Battery_F"};
+		};
+
+		stabilizedInAxes = 3;
+		ballisticsComputer = 1;
+		canLock = 2;
+		magazineReloadTime=10;
+	};
+	class macro_new_weapon(turret,laat_ball_beam_r): macro_new_weapon(turret,laat_ball_beam_l){};
+
 	class LMG_RCWS;
 	class Cannon_Portableun:LMG_RCWS
 	{
@@ -43,10 +66,9 @@ class CfgWeapons
 		dlc = "RD501";
 		author= "RD501";
 
-			modes[] = {"manual", "close"};
+		modes[] = {"manual", "close"};
 		class manual: manual
 		{
-			
 			sounds[] = {"StandardSound"};
 			class BaseSoundModeType
 			{
@@ -55,10 +77,8 @@ class CfgWeapons
 			};
 			displayName = "Laat Ball Turret";
 			reloadTime = 0.0009;
-			//sounds[] = {"StandardSound"};
 			class StandardSound
 			{
-				
 				weaponSoundEffect = "DefaultRifle";
 				begin1[] = {"Uwing\uwingcannon.ogg", 0.8, 0.5, 2000};
 				soundBegin[] = {"begin1", 1};
@@ -95,9 +115,6 @@ class CfgWeapons
 			maxRange = 8000;
 			maxRangeProbab = 0.04;
 		};
-		
 	};
-	
-
 }; 
 

+ 39 - 0
addons - Copy/RD501_Vehicle_Weapons/aircraft/generic/config.cpp

@@ -138,6 +138,45 @@ class CfgWeapons
 		};
 	};
 
+	class 3as_LAAT_autocannon_30mm;
+	class ParticleBeamCannon_F: 3as_LAAT_autocannon_30mm
+	{
+		class HE;
+	};
+	class macro_new_weapon(generic,green_dual_aircraft_laser): ParticleBeamCannon_F
+	{
+		canLock = 1;
+		ballisticsComputer = 1;
+		weaponLockSystem = 0;
+		magazines[] = {macro_new_mag(generic_aircraft_gun_dual_green,1000)};
+		class HE: HE
+		{
+			displayName = "Aircraft Laser Gun";
+			magazines[] = {macro_new_mag(generic_aircraft_gun_dual_green,1000)};
+
+			dispersion = 0.012;
+			autoFire=true;
+			aiRateOfFire = 0.001;
+			reloadTime=0.06;
+
+			aiRateOfFireDispersion = 0.0;
+			aiRateOfFireDistance = 0;
+
+			minRange = 0;
+			minRangeProbab = 1;
+			midRange = 7500;
+			midRangeProbab = 1;
+			maxRange = 15000;
+			maxRangeProbab = 1;
+
+			weaponLockDelay = 0;
+			weaponLockSystem = 0;
+			lockAcquire = 1;
+			FCSMaxLeadSpeed = 1000;
+			burst = 30;//30;
+		};
+	};
+
 	class macro_new_weapon(generic,ion_aircraft_cannon) : macro_new_weapon(generic,rebel_aircraft_cannon)
 	{
 		class LowROF: LowROF

+ 2 - 3
addons - Copy/RD501_Vehicle_Weapons/aircraft/laat_cannon/config.cpp

@@ -35,11 +35,10 @@ class CfgWeapons
 		displayName = "LAAT Laser Cannon";
 		
 		magazines[] = {
-			macro_new_mag(laat_cannon,100)
+			macro_new_mag(laat_cannon,100),
+			macro_new_mag(laat_cannon_double,100)
 		};
 
-		
-		
 		initSpeed = 2000;
 		ballisticsComputer = 1;
 		canLock = 2;

+ 36 - 6
addons - Copy/RD501_Vehicle_Weapons/config.cpp

@@ -9,7 +9,8 @@ class CfgPatches
 		author=DANKAUTHORS;
 		requiredAddons[]=
 		{
-			macro_lvl1_req
+			macro_lvl1_req,
+			"3AS_LAAT"
 		};
 		requiredVersion=0.1;
 		units[]={};
@@ -149,11 +150,14 @@ class CfgMagazines
 		count = 100;
 		tracersEvery = 1;
 		initSpeed = 2000;
-		muzzleImpulseFactor = 0;
 		brightness = 100;
 		magazineReloadTime=10;
 		macro_no_muzzle_impulse
 	};
+	class macro_new_mag(laat_cannon_double,100): macro_new_mag(laat_cannon,100)
+	{
+		ammo = macro_new_ammo(laat_cannon_double);
+	};
 
 	class 500Rnd_Cannon_ARCback;
 	class macro_new_mag(voltic,200):500Rnd_Cannon_ARCback
@@ -167,6 +171,15 @@ class CfgMagazines
 		macro_no_muzzle_impulse
 	};
 
+	class Laser_Battery_F;
+	class macro_new_mag(laat_ball_beam,300): Laser_Battery_F
+	{
+		displayName = "Laat Ball Turret Mag";
+		displayNameShort = "Ball Turret Mag";
+		count = 300;
+		ammo = macro_new_ammo(ball_beam)
+	};
+
 	class 1000Rnd_Laser_Cannon_EWEBSWBF_REP;
 	class macro_new_mag(laat_ball_turret,200): 1000Rnd_Laser_Cannon_EWEBSWBF_REP
 	{
@@ -356,7 +369,6 @@ class CfgAmmo
 
 	class macro_new_ammo(laat_cannon): TurboLaser_Laserx2//TurboLaser_Laserx2//SW_SpeederBikeCanon_Ammo//swop_bywingCannonammo//LAAT_Laser
 	{
-	
 		explosive = 0.5;
 		hit = 1000;
 		indirectHit =800;
@@ -368,7 +380,8 @@ class CfgAmmo
 		explosionSoundEffect = "DefaultExplosion";
 		
 		ExplosionEffects = "ExploAmmoExplosion";
-		model = "\TIE\tracer_green.p3d";
+		model="a3\weapons_f\data\bullettracer\tracer_green";
+		tracerScale = 10;
 		effectFly = "SWOP_greenLaserEffect";
 		aiAmmoUsageFlags = "64 + 128 + 256 + 512";
 		allowAgainstInfantry = 1;
@@ -379,6 +392,11 @@ class CfgAmmo
 		supersonicCrackFar[] = {"\ca\Weapons\Data\Sound\supersonic_crack_50meters.wss", 1, 50};
 		supersonicCrackNear[] = {"\ca\Weapons\Data\Sound\supersonic_crack_close.wss", 1, 50};
 	};
+	class macro_new_ammo(laat_cannon_double): macro_new_ammo(laat_cannon)
+	{
+		model = "\TIE\tracer_green.p3d";
+		tracerScale = 1;
+	}
 
 	class swop_bywingCannonammo;
 	class macro_new_ammo(voltic):swop_bywingCannonammo
@@ -393,6 +411,19 @@ class CfgAmmo
 		
 	};
 
+	class laserAmmo_F;
+	class macro_new_ammo(ball_beam): laserAmmo_F
+	{
+		hit = 600;
+		indirectHit = 400;
+		indirectHitRange = 1;
+		explosive = 1;
+		caliber = 6;
+		ACE_caliber = 0;
+		aiAmmoUsageFlags = "64 + 128 + 256 + 512";
+		allowAgainstInfantry = 1;
+	};
+
 	class macro_new_ammo(ball_turret):TurboLaser_Laserx2//SW_SpeederBikeCanon_Ammo//Vwing_ammo
 	{
 		hit = 600;
@@ -401,13 +432,12 @@ class CfgAmmo
 		indirectHitRange = 1;
 		explosive = 1;
 		caliber = 6;
-		ACE_caliber=0;
+		ACE_caliber = 0;
 		tracerScale = 1;
 		aiAmmoUsageFlags = "64 + 128 + 256 + 512";
 		allowAgainstInfantry = 1;
 	
 		model = "\SWOP_Main\Effects\Tracer\Lasergreen";
-		
 	
 		cost = 1;
 	

+ 0 - 13
addons - Copy/RD501_Vehicles/air/LAAT/ball_turret_weapons.hpp

@@ -1,13 +0,0 @@
-weapons[]=
-{
-    macro_new_weapon(turret,laat_ball_turret),
-	"Laserdesignator_pilotCamera"
-
-};
-magazines[]=
-{
-    "Laserbatteries",
-    macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
-    macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
-    macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200)
-};

+ 2 - 6
addons - Copy/RD501_Vehicles/air/LAAT/common_copilot.hpp

@@ -13,9 +13,5 @@ minElev = -90; 										/// what is the lowest possible elevation of the turret
 maxElev = 50;  									/// what is the highest possible elevation of the turret
 initElev = 0;
 
-weapons[] = {
-            macro_new_weapon(cannon,laat)
-            };
-magazines[] = {
-                macro_new_mag(laat_cannon,100),
-              };
+weapons[] = {macro_new_weapon(cannon,laat)};
+magazines[] = {macro_new_mag(laat_cannon_double,100)};

+ 76 - 0
addons - Copy/RD501_Vehicles/air/LAAT/common_optics.hpp

@@ -0,0 +1,76 @@
+class OpticsIn
+{
+	class Wide
+	{
+		opticsDisplayName="WFOV";
+		initAngleX=0;
+		minAngleX=-10;
+		maxAngleX=90;
+		initAngleY=0;
+		minAngleY=-90;
+		maxAngleY=90;
+		initFov=0.425;//"(30 / 120)";
+		minFov=0.425;//"(30 / 120)";
+		maxFov=0.425;//"(30 / 120)";
+		thermalMode[] = {0,1,2,3,4,5};
+		visionMode[]=
+		{
+			"Normal",
+			"NVG",
+			"Ti"
+		};
+		gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
+		opticsPPEffects[]=
+		{
+			"OpticsCHAbera2",
+			"OpticsBlur2"
+		};
+	};
+
+	class zoomx4: Wide
+	{
+		opticsDisplayName="NFOV";
+		initFov="(0.425/4)";//"(3.75 / 120)";
+		minFov="(0.425/4)";//"(3.75 / 120)";
+		maxFov="(0.425/4)";//"(3.75 / 120)";
+		gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
+	};
+
+	class zoomX8: Wide
+	{
+		opticsDisplayName="NFOV";
+		initFov="(0.42/8)";//"(.375 / 120)";
+		minFov="(0.42/8)";//"(.375 / 120)";
+		maxFov="(0.42/8)";//"(.375 / 120)";
+		gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
+	};
+	class zoomX20: Wide
+	{
+		opticsDisplayName="NFOV";
+		initFov="(0.42/20)";//"(.375 / 120)";
+		minFov="(0.42/20)";//"(.375 / 120)";
+		maxFov="(0.42/20)";//"(.375 / 120)";
+		gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
+	};
+	class zoomX50: Wide
+	{
+		opticsDisplayName="NFOV";
+		initFov="(0.42/50)";//"(.375 / 120)";
+		minFov="(0.42/50)";//"(.375 / 120)";
+		maxFov="(0.42/50)";//"(.375 / 120)";
+		gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
+	};
+
+	class zoomX70: Wide
+	{
+		opticsDisplayName="NFOV";
+		initFov="(0.42/70)";//"(.375 / 120)";
+		minFov="(0.42/70)";//"(.375 / 120)";
+		maxFov="(0.42/70)";//"(.375 / 120)";
+		gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
+	};
+
+	showMiniMapInOptics=1;
+	showUAVViewInOptics=0;
+	showSlingLoadManagerInOptics=1;
+};

+ 9 - 90
addons - Copy/RD501_Vehicles/air/LAAT/common_stuff_tcw.hpp

@@ -1,6 +1,6 @@
 class EventHandlers : DefaultEventhandlers
 {
-	fired = "_this call (uinamespace getvariable 'BIS_fnc_effectFired');_this execVM '\3AS\3as_Laat\LAATI\scripts\fired_laser.sqf';";
+	fired = "_this call (uinamespace getvariable 'BIS_fnc_effectFired');_this execVM '\RD501_Vehicles\air\LAAT\fired_laser.sqf';";
 	init = "[_this select 0] execVM 'RD501_Main\functions\autocrate\autocrate.sqf';";
 };
 
@@ -13,17 +13,18 @@ editorSubcategory = macro_editor_cat_air(Republic_heli)
 vehicleClass = macro_editor_vehicle_type_air(Republic)
 
 weapons[] = {
-	macro_new_weapon(generic,blue_dual_aircraft_laser),
+	macro_basic_air_weapons,
+	macro_new_weapon(generic,green_dual_aircraft_laser),
+	macro_new_weapon(cannon,laat),
 	macro_new_weapon(wynd,lgm),
 	macro_new_weapon(wynd,a2a),
 	macro_new_weapon(wynd,agm),
-	macro_basic_air_weapons,
 	"SmokeLauncher",
-	macro_new_weapon(cannon,laat)
 };
 magazines[] = {
 	macro_basic_air_mags,
-	macro_new_mag(generic_aircraft_gun_dual_blue,1000),
+	macro_new_mag(generic_aircraft_gun_dual_green,1000),
+	macro_new_mag(laat_cannon,100),
 	macro_new_mag(a2a,4),
 	macro_new_mag(agm,6),
 	macro_new_mag(agm,6),
@@ -32,7 +33,6 @@ magazines[] = {
 	"SmokeLauncherMag",
 	"SmokeLauncherMag",
 	"SmokeLauncherMag",
-	macro_new_mag(laat_cannon,100),
 };
 smokeLauncherGrenadeCount=48;
 smokeLauncherAngle=360;
@@ -40,97 +40,16 @@ smokeLauncherVelocity=14;
 
 class pilotCamera
 {
-	class OpticsIn
-	{
-		class Wide
-		{
-			opticsDisplayName="WFOV";
-			initAngleX=0;
-			minAngleX=-10;
-			maxAngleX=90;
-			initAngleY=0;
-			minAngleY=-90;
-			maxAngleY=90;
-			initFov=0.425;//"(30 / 120)";
-			minFov=0.425;//"(30 / 120)";
-			maxFov=0.425;//"(30 / 120)";
-			directionStabilized=1;
-			thermalMode[] = {0,1,2,3,4,5};
-			visionMode[]=
-			{
-				"Normal",
-					"NVG",
-					"Ti"
-			};
-			gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d";
-			opticsPPEffects[]=
-			{
-				"OpticsCHAbera2",
-					"OpticsBlur2"
-			};
-		};
-
-		class zoomx4: Wide
-		{
-			opticsDisplayName="NFOV";
-			initFov="(0.425/4)";//"(3.75 / 120)";
-			minFov="(0.425/4)";//"(3.75 / 120)";
-			maxFov="(0.425/4)";//"(3.75 / 120)";
-
-
-			gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
-		};
-
-		class zoomX8: Wide
-		{
-			opticsDisplayName="NFOV";
-
+	#include "common_optics.hpp"
 
-			initFov="(0.42/8)";//"(.375 / 120)";
-			minFov="(0.42/8)";//"(.375 / 120)";
-			maxFov="(0.42/8)";//"(.375 / 120)";
-			gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
-		};
-		class zoomX20: Wide
-		{
-			opticsDisplayName="NFOV";
-			initFov="(0.42/20)";//"(.375 / 120)";
-			minFov="(0.42/20)";//"(.375 / 120)";
-			maxFov="(0.42/20)";//"(.375 / 120)";
-			gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
-		};
-		class zoomX50: Wide
-		{
-			opticsDisplayName="NFOV";
-
-
-			initFov="(0.42/50)";//"(.375 / 120)";
-			minFov="(0.42/50)";//"(.375 / 120)";
-			maxFov="(0.42/50)";//"(.375 / 120)";
-			gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
-		};
-
-		class zoomX70: Wide
-		{
-			opticsDisplayName="NFOV";
-
-			initFov="(0.42/70)";//"(.375 / 120)";
-			minFov="(0.42/70)";//"(.375 / 120)";
-			maxFov="(0.42/70)";//"(.375 / 120)";
-			gunnerOpticsModel="\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
-		};
-
-		showMiniMapInOptics=1;
-		showUAVViewInOptics=0;
-		showSlingLoadManagerInOptics=1;
-	};
 	minTurn=-180;
 	maxTurn=180;
-
 	initTurn=0;
+
 	minElev=-10;
 	maxElev=90;
 	initElev=-10;
+
 	maxXRotSpeed=0.30000001;
 	maxYRotSpeed=0.30000001;
 	pilotOpticsShowCursor=1;

+ 90 - 12
addons - Copy/RD501_Vehicles/air/LAAT/config.cpp

@@ -38,7 +38,8 @@ class CfgPatches
 
 		requiredAddons[]=
 		{
-			macro_patch_name(vehicles)
+			macro_patch_name(vehicles),
+			"3AS_LAAT"
 		};
 		requiredVersion=0.1;
 		units[]=
@@ -78,9 +79,9 @@ class CfgVehicles
 	class macro_new_vehicle(laat,Mk1):3as_LAAT_Mk1
 	{
 		displayName="LAAT/I MK.I";
-		transportSoldier=28;
 
 		#include "common_stuff_tcw.hpp"
+		transportSoldier=24;
 
 		RD501_magclamp_small_1[] = {0.0,1.0,-1.0};
 
@@ -103,14 +104,41 @@ class CfgVehicles
 				minturn=-240;
 				maxelev=40;
 				maxturn=-120;
+				#include "common_optics.hpp"
 			};
 			class LeftDoorgun: LeftDoorgun
 			{
-				#include "ball_turret_weapons.hpp"
+				weapons[]=
+				{
+					macro_new_weapon(turret,laat_ball_beam_l),
+					"Laserdesignator_pilotCamera"
+				};
+				magazines[]=
+				{
+					"Laserbatteries",
+					macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),
+					macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),
+					macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300)
+				};
+				#include "common_optics.hpp"
+				memorypointgunneroptics="FIXME";
 			};
 			class RightDoorGun: RightDoorGun
 			{
-				#include "ball_turret_weapons.hpp"
+				weapons[]=
+				{
+					macro_new_weapon(turret,laat_ball_beam_r),
+					"Laserdesignator_pilotCamera"
+				};
+				magazines[]=
+				{
+					"Laserbatteries",
+					macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),
+					macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),
+					macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300),macro_new_mag(laat_ball_beam,300)
+				};
+				#include "common_optics.hpp"
+				memorypointgunneroptics="FIXME";
 			};
 			class CargoTurret_01: CargoTurret_01{};
 			class CargoTurret_02: CargoTurret_02{};
@@ -123,9 +151,9 @@ class CfgVehicles
 	class macro_new_vehicle(laat,Mk1_lights):3as_LAAT_Mk3
 	{
 		displayName="LAAT/I MK.I (Lights)";
-		transportSoldier=28;
 
 		#include "common_stuff_tcw.hpp"
+		transportSoldier=29;
 
 		RD501_magclamp_small_1[] = {0.0,1.0,-1.0};
 
@@ -148,6 +176,7 @@ class CfgVehicles
 				minturn=-240;
 				maxelev=40;
 				maxturn=-120;
+				#include "common_optics.hpp"
 			};
 			class CargoTurret_01: CargoTurret_01{};
 			class CargoTurret_02: CargoTurret_02{};
@@ -161,9 +190,9 @@ class CfgVehicles
 	class macro_new_vehicle(laat,Mk2):3as_LAAT_Mk2
 	{
 		displayName="LAAT/I MK.II";
-		transportSoldier=28;
 
 		#include "common_stuff_tcw.hpp"
+		transportSoldier=24;
 
 		RD501_magclamp_small_1[] = {0.0,1.0,-1.0};
 
@@ -186,6 +215,7 @@ class CfgVehicles
 				minturn=-240;
 				maxelev=40;
 				maxturn=-120;
+				#include "common_optics.hpp"
 			};
 			class CargoTurret_01: CargoTurret_01{};
 			class CargoTurret_02: CargoTurret_02{};
@@ -194,9 +224,9 @@ class CfgVehicles
 	class macro_new_vehicle(laat,Mk2_lights):3as_LAAT_Mk2Lights
 	{
 		displayName="LAAT/I MK.II (Lights)";
-		transportSoldier=28;
 
 		#include "common_stuff_tcw.hpp"
+		transportSoldier=29
 
 		RD501_magclamp_small_1[] = {0.0,1.0,-1.0};
 
@@ -219,13 +249,13 @@ class CfgVehicles
 				minturn=-240;
 				maxelev=40;
 				maxturn=-120;
+				#include "common_optics.hpp"
 			};
 			class CargoTurret_01: CargoTurret_01{};
 			class CargoTurret_02: CargoTurret_02{};
 		};
 	};
 
-
 // SWOP START HERE
 
 	class macro_new_vehicle(laat,Mk3):swop_LAAT
@@ -269,11 +299,35 @@ class CfgVehicles
 
 			class GunnerTurret1:GunnerTurret1
 			{
-				#include "ball_turret_weapons.hpp"
+				weapons[]=
+				{
+					macro_new_weapon(turret,laat_ball_turret),
+					"Laserdesignator_pilotCamera"
+
+				};
+				magazines[]=
+				{
+					"Laserbatteries",
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200)
+				};
 			};
 			class GunnerTurret2:GunnerTurret2
 			{
-				#include "ball_turret_weapons.hpp"
+				weapons[]=
+				{
+					macro_new_weapon(turret,laat_ball_turret),
+					"Laserdesignator_pilotCamera"
+
+				};
+				magazines[]=
+				{
+					"Laserbatteries",
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200)
+				};
 			};
 			class CargoTurret_01:CargoTurret_01{};
 			class CargoTurret_02:CargoTurret_02{};
@@ -352,11 +406,35 @@ class CfgVehicles
 			
 			class GunnerTurret1:GunnerTurret1
 			{
-				#include "ball_turret_weapons.hpp"
+				weapons[]=
+				{
+					macro_new_weapon(turret,laat_ball_turret),
+					"Laserdesignator_pilotCamera"
+
+				};
+				magazines[]=
+				{
+					"Laserbatteries",
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200)
+				};
 			};
 			class GunnerTurret2:GunnerTurret2
 			{
-				#include "ball_turret_weapons.hpp"
+				weapons[]=
+				{
+					macro_new_weapon(turret,laat_ball_turret),
+					"Laserdesignator_pilotCamera"
+
+				};
+				magazines[]=
+				{
+					"Laserbatteries",
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),
+					macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200),macro_new_mag(laat_ball_turret,200)
+				};
 			};
 		};
 	};

+ 107 - 0
addons - Copy/RD501_Vehicles/air/LAAT/fired_laser.sqf

@@ -0,0 +1,107 @@
+/*
+    Author: HorribleGoat
+    Author: Turmio
+    Author: Battlestad
+
+    Description:
+    Searches for start point and end point from object and calculates crosshair to screen based on direction vector. Also returns the distance to the crosshair position from weapon end position.
+
+    Parameter(s):
+        0 (Mandatory):
+            OBJECT - Data object
+        1 (Mandatory):
+            STRING - Weapon start point name
+        2 (Mandatory):
+            STRING - Weapon end point name
+        3 (Mandatory):
+            STRING - Path to crosshair img
+
+
+    Returns:
+    NUMBER - Distance to target
+*/
+
+// should only be executed on server, but will need proper testing in a MP environment
+if (isServer) then {
+
+	params ["_v","_w"];
+	private [
+		"_selectionLod",
+		"_weaponStartPos",
+		"_weaponEndPos",
+		"_weaponWorldStart",
+		"_weaponWorldEnd",
+		"_weaponDir",
+		"_maxDistance",
+		"_crosshairPos",
+		"_intersection"
+	];
+	private [
+		"_laser_chamber",
+		"_laser_muzzle",
+		"_laser_anim"
+	];
+
+	_v = _this select 0;
+	_w = _this select 1;
+
+	//hintsilent str _w;
+
+	// replace weapons classnames with whatever your left and right lasers will be named
+	if (_w == "RD501_turret_laat_ball_beam_l" || _w == "RD501_turret_laat_ball_beam_r") then {
+
+		if (_w == "RD501_turret_laat_ball_beam_l") then {
+			_laser_chamber = "Laser_L_chamber";
+			_laser_muzzle = "Laser_L_muzzle";
+			_laser_anim = "Laser"; // would be cleaner if you renamed this to "Laser_Left" or something
+		} else {
+			if (_w == "RD501_turret_laat_ball_beam_r") then { // replace this with the new "Laser_weapon_right" weapon classname
+				_laser_chamber = "Lazer_R_chamber";// replace this with new "Laser_R_chamber" that you set up in the memory lod
+				_laser_muzzle = "Laser_R_muzzle";// replace this with new "Laser_R_muzzle" that you set up in the memory lod
+				_laser_anim = "Laser_R";// replace this with a new animationSource (Laser_Right or something)
+			};
+		} ; //else {
+			// if (_w == "ParticleBeamCannon_F") then { // replace this with the new "Laser_weapon_right" weapon classname
+			// 	 _laser_chamber = "Lazer_F_chamber";// replace this with new "Laser_R_chamber" that you set up in the memory lod
+			//	 _laser_muzzle = "Laser_F_muzzle";// replace this with new "Laser_R_muzzle" that you set up in the memory lod
+			//	 _laser_anim = "Laser_F";// replace this with a new animationSource (Laser_Right or something)
+			// };
+	//	};
+
+		if (_v animationphase _laser_anim == 0) then {
+		_selectionLod= "memory";
+		_weaponStartPos = _v selectionPosition [_laser_chamber ,_selectionLod];
+		_weaponEndPos = _v selectionPosition [_laser_muzzle ,_selectionLod];
+
+		_weaponWorldStart = _v modelToWorld _weaponStartPos;
+		_weaponWorldEnd = _v modelToWorld _weaponEndPos;
+		_weaponDir = _weaponWorldStart vectorFromTo _weaponWorldEnd;
+
+		_maxDistance = 2000;
+		_crosshairPos = [(_weaponWorldStart select 0 )+ ((_weaponDir select 0)*_maxDistance ),(_weaponWorldStart select 1 ) + ((_weaponDir select 1)*_maxDistance ),(_weaponWorldStart select 2)+ ((_weaponDir select 2)*_maxDistance )];
+
+		_intersection = lineIntersectsSurfaces
+		[
+				AGLToASL _weaponWorldEnd,
+				AGLToASL _crosshairPos,
+				vehicle player,
+				player,
+				true,
+				1,
+				"VIEW",
+				"GEOM"
+		];
+		if (count _intersection > 0) then
+		{
+			_crosshairPos = ASLToAGL (_intersection select 0 select 0);
+		};
+
+		_distanceToTarget = _weaponWorldEnd vectorDistance _crosshairPos;
+		//hintSilent str _distanceToTarget;
+
+			_v animateSource [_laser_anim, _distanceToTarget, true];
+			sleep 0.08;
+			_v animateSource [_laser_anim, 0, true];
+		};
+	};
+};

+ 9 - 31
addons - Copy/RD501_Vehicles/air/LAAT/inheritance.hpp

@@ -1,18 +1,9 @@
-class B_Heli_Attack_01_base_F;
-class 3as_laat_Base: B_Heli_Attack_01_base_F
-{
-	class Turrets;
-};
-class 3as_laatUnarmed_Base: 3as_laat_Base
+class Heli_Attack_01_base_F;
+class B_Heli_Attack_01_base_F: Heli_Attack_01_base_F
 {
 	class Turrets;
 };
-class 3as_laatFloodLight_Base: 3as_laat_Base
-{
-	class Turrets;
-};
-
-class 3as_LAAT_Mk1: 3as_laat_Base
+class 3as_laat_Base: B_Heli_Attack_01_base_F
 {
 	class UserActions;
 	class Turrets: Turrets
@@ -28,33 +19,17 @@ class 3as_LAAT_Mk1: 3as_laat_Base
 		class CargoTurret_06;
 	};
 };
-class 3as_LAAT_Mk2: 3as_laatUnarmed_Base
-{
-	class UserActions;
-	class Turrets: Turrets
-	{
-		class Copilot;
-		class CargoTurret_01;
-		class CargoTurret_02;
-	};
-};
-class 3as_LAAT_Mk2Lights: 3as_laatFloodLight_Base
+class 3as_laatUnarmed_Base: 3as_laat_Base
 {
-	class UserActions;
 	class Turrets: Turrets
 	{
 		class Copilot;
 		class CargoTurret_01;
 		class CargoTurret_02;
-		class CargoTurret_03;
-		class CargoTurret_04;
-		class CargoTurret_05;
-		class CargoTurret_06;
 	};
 };
-class 3as_LAAT_Mk3: 3as_laatFloodLight_Base
+class 3as_laatFloodLight_Base: 3as_laat_Base
 {
-	class UserActions;
 	class Turrets: Turrets
 	{
 		class Copilot;
@@ -66,7 +41,10 @@ class 3as_LAAT_Mk3: 3as_laatFloodLight_Base
 		class CargoTurret_06;
 	};
 };
-
+class 3as_LAAT_Mk1: 3as_laat_Base{};
+class 3as_LAAT_Mk3: 3as_laatFloodLight_Base{};	//Mk1Lights
+class 3as_LAAT_Mk2: 3as_laatUnarmed_Base{};
+class 3as_LAAT_Mk2Lights: 3as_laatFloodLight_Base{};
 
 // SWOP START HERE