Explorar o código

fix ballguns
make ballguns use laser
fix passenger capacity

thefloff %!s(int64=4) %!d(string=hai) anos
pai
achega
490ed2d2f2

+ 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;
 		};
-		
 	};
-	
-
 }; 
 

+ 25 - 4
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,7 +150,6 @@ class CfgMagazines
 		count = 100;
 		tracersEvery = 1;
 		initSpeed = 2000;
-		muzzleImpulseFactor = 0;
 		brightness = 100;
 		magazineReloadTime=10;
 		macro_no_muzzle_impulse
@@ -167,6 +167,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
 	{
@@ -393,6 +402,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 +423,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)
-};

+ 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;
+};

+ 4 - 85
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';";
 };
 
@@ -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"
-			};
-		};
+	#include "common_optics.hpp"
 
-		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;
-	};
 	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