Arma 3: Aircraft Systems

From Bohemia Interactive Community
Jump to navigation Jump to search

Arma 3 logo black.png1.68 Arma 3 Jets DLC comes with a varity of new functionalities such as:

  • Starting off an aircraft carrier via catapult
  • Landing on an aircraft carrier via tailhook
  • Foldable wings for aircrafts
  • Boat recovery

This page will give an overview of the needed config additions.


Aircraft Configuration

Requirements

  • Compatible aircraft must have an animation for arrest/tail hook selection defined in CfgVehicles and modeled in 3D model (model.cfg)
  • Compatible aircraft must have a memory point for cable attach position

CarrierOpsCompatability Sub-Class

This class contains all the definitions needed for the catapult and tailhook functionality to work.

class CfgVehicles
{
	class B_Plane_Fighter_01_F
	{
		tailHook = true;																		// Allow to land on carrier
		class CarrierOpsCompatability
		{
			ArrestHookAnimationList[] = { "tailhook", "tailhook_door_l", "tailhook_door_r" };	// List of animation played to animate tailhook. Defined in model.cfg (type user)
			ArrestHookAnimationStates[] = { 0, 0.53, 1 };										// Tailhook animation states when down, hooked, up.
			ArrestHookMemoryPoint = "pos_tailhook";												// TailHook memory point in plane model.p3d
			ArrestMaxAllowedSpeed = 275;														// Max speed km/h allowed for successful landing
			ArrestSlowDownStep = 0.8;															// Simulation step for calcualting how smooth plane will be slowed down.
			ArrestVelocityReduction = -12;														// Speed reduced per simulation step
			LaunchVelocity = 300;																// Speed required for take off
			LaunchVelocityIncrease = 10;														// Speed increased per simulation step
			LaunchAccelerationStep = 0.001;														// Simulation step for calcualting how smooth plane will launched from carrier catapult.
			LaunchBarMemoryPoint = "pos_gear_f_hook";											// LaunchBar memory point
		};
	};
};

AircraftAutomatedSystems Sub-Class

This class contains all definitions needed for the foldable wings to work.

class CfgVehicles
{
	class B_Plane_Fighter_01_F
	{
		class AircraftAutomatedSystems
		{
			wingStateControl = 1;																					// enable automated wing state control to prevent player to take off with folded wings
			wingFoldAnimations[] = { "wing_fold_l", "wing_fold_r", "wing_fold_cover_l", "wing_fold_cover_r" };		// foldable wing animation list
			wingStateFolded = 1;																					// animation state when folded
			wingStateUnFolded = 0;																					// animation state when un-folded
			wingAutoUnFoldSpeed = 40;																				// speed treshold when triger this feature, and unfold wings for player
		};
	};
};


Aircraft Carrier Configuration

class CfgVehicles
{
	class Land_Carrier_01_base_F
	{
		// Defines all the parts the carrier is build out of
		multiStructureParts[] = {
			{ "Land_Carrier_01_hull_01_F", "pos_hull_1" },
			{ "Land_Carrier_01_hull_02_F", "pos_hull_2" },
			{ "Land_Carrier_01_hull_03_1_F", "pos_hull_3_1" }, { "Land_Carrier_01_hull_03_2_F", "pos_hull_3_2" },
			{ "Land_Carrier_01_hull_04_1_F", "pos_hull_4_1" }, { "Land_Carrier_01_hull_04_2_F", "pos_hull_4_2" },
			{ "Land_Carrier_01_hull_05_1_F", "pos_hull_5_1" }, { "Land_Carrier_01_hull_05_2_F", "pos_hull_5_2" },
			{ "Land_Carrier_01_hull_06_1_F", "pos_hull_6_1" }, { "Land_Carrier_01_hull_06_2_F", "pos_hull_6_2" },
			{ "Land_Carrier_01_hull_07_1_F", "pos_hull_7_1" }, { "Land_Carrier_01_hull_07_2_F", "pos_hull_7_2" },
			{ "Land_Carrier_01_hull_08_1_F", "pos_hull_8_1" }, { "Land_Carrier_01_hull_08_2_F", "pos_hull_8_2" },
			{ "Land_Carrier_01_hull_09_1_F", "pos_hull_9_1" }, { "Land_Carrier_01_hull_09_2_F", "pos_hull_9_2" },
			{ "Land_Carrier_01_island_01_F", "pos_island_1" }, { "Land_Carrier_01_island_02_F", "pos_island_2" }, { "Land_Carrier_01_island_03_F", "pos_island_3" },
			{ "DynamicAirport_01_F", "pos_Airport" }
		};

		class Eventhandlers
		{
			init = "_this call BIS_fnc_Carrier01Init;";							// Initialises the carrier's functionality
			attributesChanged3DEN = "_this call BIS_fnc_Carrier01PosUpdate;";		// Handles position changes when attributes are changed in Eden Editor
			dragged3DEN = "_this call BIS_fnc_Carrier01PosUpdate;";				// Handles position changes when attributes are changed in Eden Editor
			registeredToWorld3DEN = "_this call BIS_fnc_Carrier01EdenInit;";		// Initializes the carrier's functionality when it's created in Eden Editor
			unregisteredFromWorld3DEN = "_this call BIS_fnc_Carrier01EdenDelete;";	// Handles deletion of all parts when its deleted in Eden Editor
		};
	};
};