Jump to content
George_Smiley

Mission Idea: " H Pad Attack! " ... Little bird landing practice.

Recommended Posts

21 hours ago, dalber24 said:


If the SP ...

 

1) Unpack the mission .pbo  into a folder in my docs to "edit".   I will try this when back at the Hab Unit. 

2) What is strange to me is that the assets are not all visible at the very beginning. Such is war.  ( but in latin...)

3) Helicopter parameters :  The Flight Model. Damage Model. etc.

4) Neurons ... they are pesky little tykes...

 

Georgy.

 

 

Share this post


Link to post
Share on other sites
31 minutes ago, George_Smiley said:

1) Unpack the mission .pbo  into a folder in my docs to "edit".   I will try this when back at the Hab Unit.


remember the folder is not just my docs, is: "My Documents\ArmA 2 Other Profiles\YOUR-NICK-NAME\missions"

 

36 minutes ago, George_Smiley said:

2) What is strange to me is that the assets are not all visible at the very beginning. Such is war.  ( but in latin...)


I already told you... don't worry about it, it's just like that, there's nothing strange.
 

37 minutes ago, George_Smiley said:

3) Helicopter parameters :  The Flight Model. Damage Model. etc.


forget it, you can't handle it yet
 

38 minutes ago, George_Smiley said:

4) Neurons ... they are pesky little tykes...


:z:

Share this post


Link to post
Share on other sites
7 minutes ago, dalber24 said:


remember the folder is not just my docs, is: "My Documents\ArmA 2 Other Profiles\YOUR-NICK-NAME\missions"

 


I already told you... don't worry about it, it's just like that, there's nothing strange.
 


forget it, you can't handle it yet
 


:z:

 

Heli FM etc:  I am interested in where the information is, not how to fiddle with it.  I get this feeling it's not in the  Vehicle .pbo ... 

 

G.

 

 

Share this post


Link to post
Share on other sites
7 hours ago, George_Smiley said:

Heli FM


@George_Smiley  As a flight model, I don't think there's anything you can touch or see, the behavior of the helicopters, let's say, would be in the .exe
The only thing you can do to change the behavior would be at the model level by changing the mass/weight/inertia, if I'm not mistaken, that's the only thing you can do, since A2OA did not incorporate Rotorflight that was incorporated in Take on Helicopters, they didn't want to add it to A2OA, that would have been great.

Surely someone with experience in the subject can clarify it, for example: @rksl-rock

GHOST.-

Share this post


Link to post
Share on other sites
15 hours ago, dalber24 said:


@George_Smiley  As a flight model, I don't think there's anything you can touch or see, the behavior of the helicopters, let's say, would be in the .exe
The only thing you can do to change the behavior would be at the model level by changing the mass/weight/inertia, if I'm not mistaken, that's the only thing you can do, since A2OA did not incorporate Rotorflight that was incorporated in Take on Helicopters, they didn't want to add it to A2OA, that would have been great.

Surely someone with experience in the subject can clarify it, for example: @rksl-rock

GHOST.-

 

Ok. Cool. I thought as much.

So the Helis must have some kind of category or class or whatever that is applied to them to differentiate them from  aeroplanes etc.

So.... how does the heli .pbo tell ArmA that is is a heli  and not a truck... lemme check that...  hmm....

 

Uh oh... I got dragged into the internet ... oops.

 

So uh, it Take On Helicopters worth getting OR is ArmA 3 just as good ?  If I could run ArmA3 on windows 7.... that would be good. I am bit annoyed it got farmed out to steam.

Sigh and eye roll.

 

The roll on the various not AH-6's seem to be slow. Is that from the mass/weight/inertia ... ?

 

right I better move along.

 

G.

 

 

Share this post


Link to post
Share on other sites
2 hours ago, George_Smiley said:

So.... how does the heli .pbo tell ArmA that is is a heli  and not a truck... lemme check that...  hmm....


@George_Smiley  This is the configuration file
 

Spoiler

 


class CfgPatches
{
	class CAAir_E_AH6J
	{
		units[] ={"AH6J_EP1","MH6J_EP1","AH6X_EP1"};
		weapons[] = {};
		requiredVersion = 1.02;
		requiredAddons[] = {"CAAir_E"};
	};
};

class DefaultEventhandlers;

#define mag_xx(a,b) class _xx_##a {magazine = a; count = b;}
#define weap_xx(a,b) class _xx_##a {weapon = a; count = b;}

enum VehicleCompartments
{
  Compartment1 = 1,
  Compartment2 = 2,
  Compartment3 = 4,
  Compartment4 = 8
  // up to Compartment32 = 0x80000000
};

class CfgVehicles
{
	class Air;
	class Helicopter:Air
	{
		class Turrets
		{
			class MainTurret;
		};
		class HitPoints
		{
			class HitGlass1;
			class HitGlass2;
			class HitGlass3;
			class HitGlass4;
			class HitGlass5;
		};
		class AnimationSources;
	};
	class AH6_Base_EP1: Helicopter
	{
		expansion = 1;
		scope = 0;
		model = "\ca\Air_E\AH6J\ah6j";
		picture = "\ca\air_e\data\UI\Picture_ah6j_CA.paa";
		icon="\ca\air_e\data\UI\Icon_ah6j_CA.paa";
		mapSize = 9;
		displayName = $STR_EP1_DN_AH6_Base;
		destrType=DestructWreck;

		accuracy=0.5;
		occludeSoundsWhenIn = db-5;
		obstructSoundsWhenIn = db-10;

		driverAction = AH6j_Pilot_EP1;
		cargoIsCoDriver[] = {false};
		cargoAction[] = {AH6j_Cargo_EP1};

		gunnerUsesPilotView = true;
		castCargoShadow=true;
		extCameraPosition[]={0,2,-15};
		transportSoldier = 1;

		//minMainRotorDive = -7;
		//maxMainRotorDive = 5;

		maxSpeed = 235;
		class ViewOptics
		{
			initAngleX = 0; minAngleX = -30; maxAngleX = 30;
			initAngleY = 0; minAngleY = -86; maxAngleY = 86;
			initFov = 0.1; minFov = 0.03; maxFov = 1.2;
		};

		armor = 25;
		damageResistance = 0.01039;
		cost = 10000000;

		soundGetIn[]={"Ca\Sounds_E\Air_E\AH6\close",db-10,1};
		soundGetOut[]={"Ca\Sounds_E\Air_E\AH6\open",db-10,1, 40};
		soundDammage[]={"ca\Sounds\Air\Noises\alarm_loop1", db-5, 1};
		soundEngineOnInt[] = {"Ca\Sounds_E\Air_E\AH6\ah6_start_ext", db-25, 1.0};
		soundEngineOnExt[] = {"Ca\Sounds_E\Air_E\AH6\ah6_start_ext", db-25, 1.0, 500};
		soundEngineOffInt[] =  {"Ca\Sounds_E\Air_E\AH6\ah6_stop_ext", db-25, 1.0};
		soundEngineOffExt[] =  {"Ca\Sounds_E\Air_E\AH6\ah6_stop_ext", db-25, 1.0, 500};

		class Sounds
		/* EXTERNAL SOUNDS AH6 */
		{
			class Engine
			{
				sound[] = {"Ca\Sounds_E\Air_E\AH6\ah6_engine_ext_1", db10, 1.0, 1000};
				frequency = "rotorSpeed";
				volume = "camPos*((rotorSpeed-0.72)*4)";
			};
			class RotorLowOut
			{
				sound[] = {"Ca\Sounds_E\Air_E\AH6\ah6_rotor_ext_1", db10, 1.0, 1200};
				frequency = "rotorSpeed";
				volume = "camPos*(0 max (rotorSpeed-0.1))";
				cone[] = {1.8,3.14, 2.0, 0.9};
			};
			class RotorHighOut
			{
				sound[] = {"Ca\Sounds_E\Air_E\AH6\ah6_rotor_ext_high_1", db5, 1.0, 1300};
				frequency = "rotorSpeed";
				volume = "camPos*10*(0 max (rotorThrust-0.95))" ;
				cone[] = {1.8,3.14, 2.0, 0.9};
			};

		/* INTERNAL SOUNDS AH6 */
  			class EngineIn
			{
				sound[] = {"Ca\Sounds_E\Air_E\AH6\ah6_engine_ext_1", db2, 1.0};
				frequency = "rotorSpeed";
			 	volume = "(1-camPos)*((rotorSpeed-0.75)*4)";
			};
			class RotorLowIn
			{
				sound[] = {"Ca\Sounds_E\Air_E\AH6\ah6_rotor_ext_1", db2, 1.0};
				frequency = "rotorSpeed";
				volume = "2*(1-camPos)*((rotorSpeed factor[0.3, 1.1]) min (rotorSpeed factor[1.1, 0.3]))";
			};
			class RotorHighIn
			{
				sound[] = {"Ca\Sounds_E\Air_E\AH6\ah6_rotor_ext_high_1", db6, 1.0};
				frequency = "rotorSpeed";
				volume = "(1-camPos)*3*(rotorThrust-0.9)" ;
			};
		};
		//sounds end
		class Reflectors
		{
			class Light
			{
				color[] = {0.8, 0.8, 1.0, 1.0};
				ambient[] = {0.07, 0.07, 0.07, 1.0};
				position = "L svetlo";
				direction = "konec l svetla";
				hitpoint = "svetlo L";
				selection = "L svetlo";
				size = 1;
				brightness = 1.0;
			};
		};
		class Library
		{
			libTextDesc = $STR_LIB_AH6;
		};
		class HitPoints:HitPoints
		{
			class HitGlass1:HitGlass1 {armor=0.5;};
			class HitGlass2:HitGlass2 {armor=0.5;};
			class HitGlass3:HitGlass3 {armor=0.5;};
			class HitGlass4:HitGlass4 {armor=0.5;};
			class HitGlass5:HitGlass5 {armor=0.5;};
		};
		class Damage
		{
			tex[]={};
			mat[]={
				"ca\Air_E\AH6J\Data\ah6_merge1.rvmat",
				"ca\Air_E\AH6J\Data\ah6_merge1.rvmat",
				"ca\Air_E\AH6J\Data\ah6_merge1_destruct.rvmat",

				"ca\Air_E\AH6J\Data\ah6_merge2.rvmat",
				"ca\Air_E\AH6J\Data\ah6_merge2.rvmat",
				"ca\Air_E\AH6J\Data\ah6_merge2_destruct.rvmat",

				"ca\data\data\default.rvmat",
				"ca\data\data\default.rvmat",
				"ca\Air_E\AH6J\Data\default_destruct.rvmat",

				"ca\Air_E\AH6J\Data\mh6_skla.rvmat",
				"ca\Air_E\AH6J\Data\mh6_skla_damage.rvmat",
				"ca\Air_E\AH6J\Data\mh6_skla_damage.rvmat",

				"ca\Air_E\AH6J\Data\mh6_skla_in.rvmat",
				"ca\Air_E\AH6J\Data\mh6_skla_in_damage.rvmat",
				"ca\Air_E\AH6J\Data\mh6_skla_in_damage.rvmat",

				"Ca\Ca_E\data\default.rvmat",
				"Ca\Ca_E\data\default.rvmat",
				"Ca\Ca_E\data\default_destruct.rvmat",
			};
		};

		weapons[]={CMFlareLauncher};
		magazines[]={60Rnd_CMFlareMagazine};
		LockDetectionSystem = CM_Lock_Radar;
		IncommingMisslieDetectionSystem = CM_none;

		irScanRangeMin=500;
		irScanRangeMax=1000;
		irScanToEyeFactor=2;
	};
	class AH6J_EP1:AH6_Base_EP1
	{
		expansion = 1;
		scope = 2;
		side = TWest;
		faction = BIS_US;
		displayName = $STR_EP1_DN_AH6J;

		crew = US_Soldier_Pilot_EP1;
		typicalCargo[]={US_Soldier_Pilot_EP1};

		weapons[] = {FFARLauncher_14,TwinM134,CMFlareLauncher}; // todo replace TwinM134 by 2x(AH64 cannon)
		magazines[] = {14Rnd_FFAR,4000Rnd_762x51_M134,60Rnd_CMFlareMagazine};
		threat[] = {0.6, 0.4, 0.1};
		gunBeg[] = {"muzzle_1", "muzzle_2"};
		gunEnd[] = {"chamber_1", "chamber_2"};
		radarType = 4;

		class TransportMagazines
		{
			mag_xx(30Rnd_556x45_Stanag,30);
			mag_xx(HandGrenade_West,5);
		    mag_xx(SmokeShellGreen,2);
		    mag_xx(SmokeShell,2);
		};

		class TransportWeapons{};


		class Turrets{};
		class AnimationSources: AnimationSources
		{
			class Gatling_1
			{
				source="revolving";
				weapon=TwinM134;
			};
			class Gatling_2
			{
				source="revolving";
				weapon=TwinM134;
			};
		};
		class Library
		{
			libTextDesc = $STR_EP1_LIB_AH6J;
		};
		
		hiddenSelections[] = {"camo1", "camo2"};
		hiddenSelectionsTextures[] = {"ca\air_e\ah6j\data\ah6_merge1_co.paa", "ca\air_e\ah6j\data\default_co.paa"}; 
	};
	class AH6X_EP1:AH6_base_EP1
	{
		expansion = 1;
		isUav = 1;
		accuracy=2;
		scope = 2;
		displayName = $STR_EP1_DN_AH6X;
		model = "\ca\air_e\ah6j\ah6x";
		picture = "\ca\air_e\data\UI\Picture_ah6x_CA.paa";
		icon="\ca\air_e\data\UI\Icon_ah6x_CA.paa";
		side = TWest;
		faction = BIS_US;
		memoryPointLRocket = "Rocket_1";
		memoryPointRRocket = "Rocket_2";
		selectionFireAnim = "muzzleflash";
		radarType = 4;

		// UAV should be less detectable than normal attack helicopter
		camouflage = 4;
		audible = 6;
		sensitivity = 2;
		threat[] = {0, 0, 0};

		transportMaxBackpacks = 5;

		crew = US_Soldier_Pilot_EP1;
		typicalCargo[]={US_Soldier_Pilot_EP1};

		class TransportMagazines
		{
			mag_xx(30Rnd_556x45_Stanag,30);
			mag_xx(HandGrenade_West,5);
			mag_xx(SmokeShellGreen,2);
			mag_xx(SmokeShell,2);
		};

		class TransportWeapons{};

		enableManualFire = false;
		/*
		weapons[] = {HellfireLauncher_AH6};
		magazines[] = {4Rnd_Hellfire};
		*/
		weapons[] = {};
		magazines[] = {};

		class Turrets:Turrets
		{
			class ObserverTurret:MainTurret
			{
				proxyIndex = 2;
				startEngine = 0;
				hasgunner = 1;

				body="FLIR_turret";
				gun="FLIR_gun";
				animationSourceBody="FLIR_turret";
				animationSourceGun="FLIR_gun";

				gunBeg="FLIR_end"; //gunBeg=endpoint of the gun
				gunEnd="FLIR_begin"; //gunEnd=chamber of the gun
				memoryPointGun="FLIR_end";

				class Viewoptics
				{
					initAngleX=0; minAngleX=-30; maxAngleX=+30;
					initAngleY=0; minAngleY=-100; maxAngleY=+100;
					//initFov=0.8; minFov=0.0083; maxFov=0.8;
					minFov="0.01";
					initFov="0.50";
					maxFov="0.80";
					visionMode[] = {"Normal","Ti"}; //Raytheon AN/AAS-52
 					thermalMode[] = {0,1};
				};
				gunnerOpticsModel="\ca\weapons\2Dscope_UAV.p3d";
				gunnerForceOptics = 1;

				soundServo[]={"",db-40,1.0};
				commanding = -1;

//				gunnerAction = empty;
//				gunnerInAction = empty;
				gunnerAction = AH6_Gunner;
				gunnerInAction = AH6_Gunner;

				gunnerGetInAction = "";
				gunnerGetOutAction = "";

				minElev        =    -90; maxElev        =    +30; initElev       =    0;
				minTurn        =    -180; maxTurn       =    +180; initTurn      =    0;

//				weapons[] = {Laserdesignator_mounted,HellfireLauncher_AH6};
//				magazines[] = {Laserbatteries,4Rnd_Hellfire};
				weapons[] = {};
				magazines[] = {};
			};
			class FakePilot:MainTurret
			{

				body="";
				gun="";
				animationSourceBody="";
				animationSourceGun="";

				gunnerName = "Pilot (fake)";
				commanding = -1;
				hasgunner = 1;

				gunnerAction = AH6_Gunner;
				gunnerInAction = AH6_Gunner;

				gunnerForceOptics = 1;
				memoryPointGunnerOptics= "fake_pilotview";

				gunnerOpticsModel = "\ca\weapons\optika_empty.p3d"; // TODO
				class Viewoptics
				{
					initFov=1; minFov=0.3; maxFov=1.2;
					initAngleX=10; minAngleX=-65; maxAngleX=+85; //Rg 45/85;
					initAngleY=0; minAngleY=-150; maxAngleY=+150;
				};
				gunnerCompartments = Compartment4;
			};
		};
		class EventHandlers : DefaultEventhandlers
		{
			init="_scr = _this execVM ""\ca\Data\ParticleEffects\SCRIPTS\init.sqf"";(_this select 0) lockturret [[0],true];(_this select 0) lockturret [[1],true];";
		};

		class Reflectors {};
		class MarkerLights {};

		class Library
		{
			libTextDesc = $STR_EP1_LIB_AH6X;
		};
		irScanRangeMin=500;
		irScanRangeMax=2000;
		irScanToEyeFactor=2;
		
		hiddenSelections[] = {"camo1"};
		hiddenSelectionsTextures[] = {"ca\air_e\ah6j\data\ah6_merge1_co.paa"};
	};
	class MH6J_EP1: AH6_Base_EP1
	{
		expansion = 1;
		scope = 2;
		displayName = $STR_EP1_DN_MH6J;
		model = "\ca\air_e\ah6j\mh6j";
		picture = "\ca\air_e\data\UI\Picture_mh6j_CA.paa";
		icon="\ca\air_e\data\UI\Icon_mh6j_CA.paa";
		side = TWest;
		faction = BIS_US;
		transportSoldier = 5;
		crew = "US_Soldier_Pilot_EP1";
		typicalCargo[]={US_Soldier_Pilot_EP1,US_Soldier_EP1,US_Soldier_EP1,US_Soldier_GL_EP1,US_Soldier_LAT_EP1,US_Soldier_AR_EP1};
		cargoAction[] =
		{
			AH6j_Cargo_EP1,MH6_Cargo01,MH6_Cargo02,MH6_Cargo02,MH6_Cargo02,MH6_Cargo03
		};
		ejectDeadCargo = true;
		cargoIsCoDriver[] = {true,false};
		threat[] = {0, 0, 0};

		class TransportMagazines
		{
			mag_xx(30Rnd_556x45_Stanag,30);
			mag_xx(HandGrenade_West,5);
			mag_xx(SmokeShellGreen,2);
			mag_xx(SmokeShell,2);
		};
		class TransportWeapons{};

		class Turrets{};
		class Library{libTextDesc = $STR_EP1_LIB_MH6J;};
		
		hiddenSelections[] = {"camo1", "camo2"};
		hiddenSelectionsTextures[] = {"ca\air_e\ah6j\data\ah6_merge1_co.paa", "ca\air_e\ah6j\data\default_co.paa"};
	};
};

 

 

 


Summarized what it tells you is a helicopter and what helicopters are: these would be the following classes:

class CfgVehicles
	class Air;
	class Helicopter:Air
	class AH6_Base_EP1: Helicopter
	class AH6J_EP1:AH6_Base_EP1
	class AH6X_EP1:AH6_base_EP1
	class MH6J_EP1: AH6_Base_EP1



 

2 hours ago, George_Smiley said:

So uh, it Take On Helicopters worth getting


Here you have the demo, try it and see if you like it.

https://www.moddb.com/games/take-on-helicopters/downloads/take-on-helicopters-demo

Share this post


Link to post
Share on other sites
On 11/2/2024 at 12:41 PM, dalber24 said:


@George_Smiley  This is the configuration file...

 

Ah ha! I knewed it.

 

DL TOH as I type... I wonder if it's any good...

 

Cheers.

 

George.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×