Jump to content
Sign in to follow this  
bhcluster

Missing inheritence class(es)

Recommended Posts

Hi everyone,

 

I am bit stuck at the moment with the "missing inheritence class(es)" when binarizing my little plane project. What I have used is the sample plane files provided by arma however when binarizing i get the already named error, nothing was changed except when I remove }; after plane class I am able to binarize the plane however then it needs a full length of air field to take off and once in the air it handles like a brick.

 

So this is what I have:

config.cpp

class CfgVehicles
{
	//Needed class definitions since we are inheriting parameters from those classes
	class Air;
	class Plane: Air
	{
		class HitPoints;
	};

	class Plane_Base_F: Plane
	{
		class AnimationSources;
		class HitPoints: HitPoints
		{
			class HitHull;
		};
		class Components;
		class Eventhandlers;
	};
...

And the errors happen on the folowing classes:

class Components :  Components

class Eventhandlers: Eventhandlers
  
class AnimationSources: AnimationSources

etc...

 

Please be gentle.

Share this post


Link to post
Share on other sites

I think I got this sorted by doing this:

	class Air;
	class Plane: Air
	{
		class HitPoints;
	};

	class Plane_Base_F: Plane
	{
		class AnimationSources;
		class HitPoints;
		class HitHull;
		class Components;
		class Eventhandlers;
	};

...and then:

class Components :  Plane_Base_F

class Eventhandlers: Plane_Base_F
  
class AnimationSources: Plane_Base_F

However new problem has arisen, a plane class which looks like this:

	//Plane class
	class Test_Plane_01_base_F: Plane_Base_F
	{
		simulation = "airplanex";
		scope							= 0;  					//base class should be hidden
		displayName						= "Soko G-4 Super Galeb (N-62) Base";			// how is the plane displayed (named) in editor
		model							= "\CLUSTER\Soko_G4_Super_Galeb\G4fuselage.p3d";		// path to model of the plane
		accuracy						= 0.2;												// how hard it is to distinguish the type of the vehicle (bigger number means harder)
		editorSubcategory				= EdSubcat_Planes;		// category in which we want to see this plane in editor
		memoryPointTaskMarker			= "TaskMarker_1_pos";	// The memory point defines the position where the task marked will be displayed if the task is attached to the particular object


		armor							= 55;					// base value of the vehicle armor, reduces the damage taken from the direct hit. Affects armor parameter in the HitPoints class
		armorStructural					= 2;					// value affecting passThrough parameter in the HitPoints class (divides the extent of the damage transferred by passThrough). It also increases overall durability of the object (even if it has no hitpoints).
		armorLights						= 0.1;					// level of protection for lights located on hull
		epeImpulseDamageCoef			= 50;					// coeficient for physx damage
		damageResistance				= 0.004;				// for AI if it is worth to be shoot at
		destrType						= DestructWreck;		// how does the vehicle behave while destroyed, this one changes to the Wreck lod of the model
		driverCanEject					= 0;					// needed for hiding engine "Eject" action if we want to use ejection seats instead

		slingLoadCargoMemoryPoints[]	= {"SlingLoadCargo1","SlingLoadCargo2","SlingLoadCargo3","SlingLoadCargo4"};	//array of memory points for slingloading hook position

		driverAction					= Plane_Fighter_03_pilot;	// what is the standard pose for the pilot, defined as animation state

		viewDriverShadowDiff			= 0.5;					//diffuse light attenuation
		viewDriverShadowAmb				= 0.5;					//ambient light attenuation

		radarTargetSize					= 0.8;
		visualTargetSize				= 0.8;
		irTargetSize					= 0.8;

		driverLeftHandAnimName			= "throttle_pilot";		// conecting throttle animation to left hand of pilot

		icon							= "A3\Air_F_Gamma\Plane_Fighter_03\Data\UI\Map_Plane_Fighter_03_CA.paa"; 	// icon in map/editor
		picture							= "A3\Air_F_Gamma\Plane_Fighter_03\Data\UI\Plane_Fighter_03_CA.paa";		// small picture in command menu



		LockDetectionSystem = CM_Lock_Radar;							// this uses macros from basicDefines_A3, just add more to gain more systems for the vehicle
		incomingMissileDetectionSystem = CM_Lock_Radar + CM_Missile;	// for example CM_Lock_Laser + CM_Lock_Radar, parser is able to evaluate that, or simply 12 in that case
	};

...but when the version of the plane is created like:

	class soko_g4_super_galeb: Test_Plane_01_base_F // CAS version of the plane
	{
		simulation = "airplanex";
		scope			= public;				// scope 2 means it is available in editor, this is one of the macros in basicdefines_a3.hpp
		scopeCurator	= public;				// 2 means available from Zeus, whereas 0 means hidden
		displayName		= "Soko G-4 Super Galeb (N-62)"; // how does the vehicle show itself in editor

		side			= 2;					// 3 stands for civilians, 0 is OPFOR, 1 is BLUFOR, 2 means guerrillas
		faction			= IND_F;				// defines the faction inside of the side
		crew			= "I_Fighter_Pilot_F";	// we are using "Fighter Pilot" for now, but we can use the sample soldier we have as captain of the boat, too - "Test_Soldier_F"

		hiddenSelectionsTextures[] = 			// changes of textures to distinguish variants in same order as hiddenSelections[]
		{
			"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_1_INDP_co.paa",
			"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_2_INDP_co.paa"
		};

		availableForSupportTypes[]	= {"CAS_Bombing"};	// use any number of expressions from "Artillery", "CAS_Heli", "CAS_Bombing", "Drop", "Transport"
		cost						= 3000000;			// we need some high cost for such vehicles to be prioritized by AA defences
	};

I get this "missing inheritence class(es)" don't know why? Please any help is greatly appreciated.

 

Share this post


Link to post
Share on other sites

Take a screenshot of the error so we know WHICH inheritance classes are throwing the error. Will be so much easier to pinpoint the problem.

 

EDIT 1:

Also, I'm not very knowledgeable when it comes to coding vehicles, but I don't think

class Components :  Plane_Base_F
class Eventhandlers: Plane_Base_F
class AnimationSources: Plane_Base_F

would actually work...

Share this post


Link to post
Share on other sites

@Jackal326 thanks for the input. This is the full packing output.

 

Spoiler

CLUSTER\Soko_G4_Super_Galeb\basicDefines_A3.hpp
1 File(s) copied
CLUSTER\Soko_G4_Super_Galeb\cfgHUD.hpp
1 File(s) copied
CLUSTER\Soko_G4_Super_Galeb\cfgPatches.hpp
1 File(s) copied
"rapify -PenW  "CLUSTER\Soko_G4_Super_Galeb\config.cpp" "P:\temp\CLUSTER\Soko_G4_Super_Galeb\config.bin""
rapify Version 1.85, Dll 7.78 "config.cpp"
#include "basicdefines_A3.hpp"
#define true 1
#define false 0

#define VSoft 0
#define VArmor 1
#define VAir 2

// type scope
#define private 0
#define protected 1
#define public 2

#define CanSeeRadar 1
#define CanSeeEye 2
#define CanSeeOptics 4
#define CanSeeEar 8
#define CanSeeCompass 16
#define CanSeeRadarC CanSeeRadar+CanSeeCompass
#define CanSeeAll 31
#define CanSeePeripheral 32

//lock acquiring
#define manualLA      0
#define automaticLA   1

//lockable target type
#define lockGroundTT      0
#define lockAirGroundTT   1
#define lockAirTT         2
#define lockGround      0
#define lockAirGround   1
#define lockAir         2

//missile lock type
#define fireAndForgetLT   0
#define keepLockedLT      1
#define manualLT          2

#define SPEED_STATIC 1e10

#define LockNo  0
#define LockCadet 1
#define LockYes  2

enum {StabilizedInAxesNone,StabilizedInAxisX,StabilizedInAxisY,StabilizedInAxesBoth, StabilizedInAxesXYZ};

#define StabilizedInAxesNone 0
#define StabilizedInAxisX 1
#define StabilizedInAxisY 2
#define StabilizedInAxesBoth 3
#define StabilizedInAxesXYZ 4

#define CM_none        0
#define CM_Lock_Visual 1
#define CM_Lock_IR     2
#define CM_Lock_Laser  4
#define CM_Lock_Radar  8
#define CM_Missile     16


#define CMImmunity_GOOD 0.9
#define CMImmunity_MIDDLE 0.65
#define CMImmunity_BAD    0.5

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

#define DEFAULT_SLOT 0
#define MUZZLE_SLOT 101
#define OPTICS_SLOT 201
#define FLASHLIGHT_SLOT 301
#define NVG_SLOT 602
#define GOGGLE_SLOT 603
#define HEADGEAR_SLOT 605
#define UNIFORM_SLOT 801

#define HMD_SLOT       616
#define BINOCULAR_SLOT 617
#define MEDIKIT_SLOT   619
#define RADIO_SLOT    611

#define VEST_SLOT      701
#define BACKPACK_SLOT  901

#define LOAD(weight,capacity) maximumLoad = ##capacity##; \
mass = ##weight##;

Warning:unnecessary leading ## separator 'maximumLoad = ##capacity'

Warning:unnecessary trailing ## separator 'maximumLoad = capacity##;'

Warning:unnecessary leading ## separator 'maximumLoad = capacity; mass = ##weight'

Warning:unnecessary trailing ## separator 'maximumLoad = capacity; mass = weight##;'

#define HeadArmourCoef 2.5
#define BodyArmourCoef 10
#define HandArmourCoef 5
#define LegArmourCoef 5

// Weapon Group Definitions
#define WEAPONGROUP_CANNONS  1
#define WEAPONGROUP_MGUNS  2
#define WEAPONGROUP_ROCKETS  4
#define WEAPONGROUP_AAMISSILES 8
#define WEAPONGROUP_ATMISSILES 16
#define WEAPONGROUP_MISSILES 32
#define WEAPONGROUP_BOMBS  64
#define WEAPONGROUP_SPECIAL  128
#uninclude //CLUSTER\Soko_G4_Super_Galeb\basicdefines_A3.hpp
#include "CfgPatches.hpp"
class CfgPatches
{
class Test_plane_F
{
units[]     = {"Test_Plane_01_Canopy_F", "I_Ejection_Seat_Test_Plane_01_F","soko_g4_super_galeb"};
weapons[]    = {};
requiredVersion   = 0.1;
requiredAddons[]  = {"A3_Air_F_Gamma", "A3_Air_F", "A3_Air_F_Beta", "A3_Air_F_EPC_Plane_CAS_02", "A3_Air_F_Heli_Light_02", "A3_Air_F_Beta_Heli_Attack_02", "A3_CargoPoses_F"};
};
};
#uninclude //CLUSTER\Soko_G4_Super_Galeb\CfgPatches.hpp

// Declaration of Custom Info panels defaults
class DefaultVehicleSystemsDisplayManagerLeftSensors
{
class components;
};
class DefaultVehicleSystemsDisplayManagerRightSensors
{
class components;
};

class CfgVehicles
{
//Needed class definitions since we are inheriting parameters from those classes
class Air;
class Plane: Air
{
class HitPoints;
};

class Plane_Base_F: Plane
{
class AnimationSources;
class HitPoints;
class HitHull;
class Components;
class Eventhandlers;
};

//Ejection system classes
class Ejection_Seat_Base_F;
class Plane_Canopy_Base_F;

class Test_Plane_01_Canopy_F : Plane_Canopy_Base_F
{
scope       = protected;
displayName      = $STR_A3_Fighter_03_Canopy_name;
model       = "\A3\Air_F_Gamma\Plane_Fighter_03\Plane_Fighter_03_canopy_F.p3d";
};

class Ejection_Seat_Test_Plane_01_base_F : Ejection_Seat_Base_F
{
scope       = private;
displayName      = $STR_A3_Ejection_Seat_02_name;
model       = "\A3\Air_F_Gamma\Plane_Fighter_03\Plane_Fighter_03_ejection_seat_F.p3d";

icon       = iconParachute;
picture       = "\A3\Air_F_Beta\Parachute_01\Data\UI\Portrait_Parachute_01_CA.paa";

driverAction     = Pilot_Plane_Fighter_Ejection;
cargoAction[]     = {Pilot_Plane_Fighter_Ejection};
};

class I_Ejection_Seat_Test_Plane_01_F : Ejection_Seat_Test_Plane_01_base_F
{
scope       = protected;
side       = 0;
faction       = IND_F;
crew       = I_Fighter_Pilot_F;
};

//Plane class
class Test_Plane_01_base_F: Plane_Base_F
{
simulation = "airplanex";
scope       = 0;       //base class should be hidden
displayName      = "Soko G-4 Super Galeb (N-62) Base";   // how is the plane displayed (named) in editor
model       = "\CLUSTER\Soko_G4_Super_Galeb\G4fuselage.p3d";  // path to model of the plane
accuracy      = 0.2;            // how hard it is to distinguish the type of the vehicle (bigger number means harder)
editorSubcategory    = EdSubcat_Planes;  // category in which we want to see this plane in editor
memoryPointTaskMarker   = "TaskMarker_1_pos"; // The memory point defines the position where the task marked will be displayed if the task is attached to the particular object


armor       = 55;     // base value of the vehicle armor, reduces the damage taken from the direct hit. Affects armor parameter in the HitPoints class
armorStructural     = 2;     // value affecting passThrough parameter in the HitPoints class (divides the extent of the damage transferred by passThrough). It also increases overall durability of the object (even if it has no hitpoints).
armorLights      = 0.1;     // level of protection for lights located on hull
epeImpulseDamageCoef   = 50;     // coeficient for physx damage
damageResistance    = 0.004;    // for AI if it is worth to be shoot at
destrType      = DestructWreck;  // how does the vehicle behave while destroyed, this one changes to the Wreck lod of the model
driverCanEject     = 0;     // needed for hiding engine "Eject" action if we want to use ejection seats instead

slingLoadCargoMemoryPoints[] = {"SlingLoadCargo1","SlingLoadCargo2","SlingLoadCargo3","SlingLoadCargo4"}; //array of memory points for slingloading hook position

driverAction     = Plane_Fighter_03_pilot; // what is the standard pose for the pilot, defined as animation state

viewDriverShadowDiff   = 0.5;     //diffuse light attenuation
viewDriverShadowAmb    = 0.5;     //ambient light attenuation

radarTargetSize     = 0.8;
visualTargetSize    = 0.8;
irTargetSize     = 0.8;

driverLeftHandAnimName   = "throttle_pilot";  // conecting throttle animation to left hand of pilot

icon       = "A3\Air_F_Gamma\Plane_Fighter_03\Data\UI\Map_Plane_Fighter_03_CA.paa";  // icon in map/editor
picture       = "A3\Air_F_Gamma\Plane_Fighter_03\Data\UI\Plane_Fighter_03_CA.paa";  // small picture in command menu

LockDetectionSystem = CM_Lock_Radar;       // this uses macros from basicDefines_A3, just add more to gain more systems for the vehicle
incomingMissileDetectionSystem = CM_Lock_Radar + CM_Missile; // for example CM_Lock_Laser + CM_Lock_Radar, parser is able to evaluate that, or simply 12 in that case
};


class EjectionSystem  // ejection system parameters - used only when you we have plane with ejection seats (EJS)
{
EjectionSeatEnabled  = 1;           //enable advanced ejection system
EjectionDual   = 0;           //currently only single seat aircraft ejection supported (to do for latter)
EjectionSeatClass  = "I_Ejection_Seat_Test_Plane_01_F";   //class name of ejector seat to use
CanopyClass    = "Test_Plane_01_Canopy_F";      //class name of canopy to use
EjectionSeatHideAnim = "ejection_seat_hide";       //name of the hide animation that will hide ejector seat mesh in plane
EjectionSeatRailAnim = "ejection_seat_motion";      //name of the animation that will be played to start a smooth ejection motion out of cockpit
CanopyHideAnim   = "canopy_hide";        //name of the hide animation that will hide canopy mesh in plane
EjectionSeatPos   = "pos_eject";         //position memory point whwre to attach ejector seat
CanopyPos    = "pos_eject_canopy";       //position memory point where to attach dummy canopy
EjectionSoundExt  = "Plane_Fighter_01_ejection_ext_sound";  //sound to play when ejection trigered (external)
EjectionSoundInt  = "Plane_Fighter_01_ejection_in_sound";   //sound to play when ejection trigered (in-ternal)
EjectionParachute  = "Steerable_Parachute_F";      //class name parachute used in ejection
EjectionSeatForce  = 50;           //ejection seat blast force
CanopyForce    = 30;           //canopy bast force
};

class Turrets{}; // single seat planes don't have any kind of turret, we need to void it

class TransportItems{}; // planes are usually not used to transport items, there could possibly be a few FAKs

class Exhausts
{
class Exhaust1
{
position = "Exhaust1";    // position of exhaust memory point from smoke is coming from
direction = "Exhaust1_dir";   // direction of exhaust smoke
effect = "ExhaustsEffectPlaneHP"; // efect used for exhaust - variant which reacts to engine damage

engineIndex = 0;      // index used for detection which engine is getting damage
};
};

class WingVortices
{
class WingTipLeft
{
effectName = "WingVortices";  // name of the effect
position = "body_vapour_L_E"; // name of the memory point in model
};

class WingTipRight
{
effectName = "WingVortices";   // name of the effect
position = "body_vapour_R_E"; // name of the memory point in model
};
class BodyLeft
{
effectName = "BodyVortices";  // name of the effect
position = "body_vapour_L_S"; // name of the memory point in model
};

class BodyRight
{
effectName = "BodyVortices";  // name of the effect
position = "body_vapour_R_S"; // name of the memory point in model
};
};

#include "sounds.hpp"       // sounds are included in separate file to prevent cluttering
attenuationEffectType = "HeliAttenuation"; //Attenuation in interior (Link to Attenuation.hpp in folder SOUNDS_F)

soundGetIn[]={"A3\Sounds_F\air\Plane_Fighter_03\buzzard_getin",db0, 1, 40};
soundGetOut[]={"A3\Sounds_F\air\Plane_Fighter_03\getout",db0, 1, 40};
soundDammage[]={"", db-5, 1};
soundEngineOnInt[] = {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03-start_int", db-0, 1.0};
soundEngineOnExt[] = {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03-start_ext", db5, 1.0, 500};
soundEngineOffInt[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03-stop_int", db-0, 1.0};
soundEngineOffExt[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03-stop_ext", db5, 1.0, 500};
soundLocked[] = {"\A3\Sounds_F\weapons\Rockets\locked_1", db-20, 1};
soundIncommingMissile[] = {"\A3\Sounds_F\weapons\Rockets\locked_3", db-20, 1.5};
soundGearUp[] = {"A3\Sounds_F_EPC\CAS_02\gear_up", db-2, 1.0, 150};
soundGearDown[] = {"A3\Sounds_F_EPC\CAS_02\gear_down", db-2, 1.0, 150};
soundFlapsUp[] = {"A3\Sounds_F_EPC\CAS_02\Flaps_Up", db-4, 1.0, 100};
soundFlapsDown[] = {"A3\Sounds_F_EPC\CAS_02\Flaps_Down", db-4, 1.0, 100};

/* EXTERNAL SOUNDS */
class scrubLandInt
{
sound[] = {"A3\Sounds_F\vehicles\air\noises\wheelsInt", db0, 1.0, 100};
frequency = 1;
volume = "(scrubLand factor[0.01, 0.20])";
};

class Sounds
{
class EngineLowOut
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03_low_ext", db8, 1.0, 1200};
frequency = "1.0 min (rpm + 0.5)";
volume = "camPos*2*(rpm factor[0.95, 0])*(rpm factor[0, 0.95])";
};

class EngineHighOut
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03_engi_ext", db8, 1.2, 1400};
frequency = "1";
volume = "camPos*4*(rpm factor[0.5, 1.1])*(rpm factor[1.1, 0.5])";
};

class ForsageOut
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03-fors_ext", db5, 0.99, 1700};
frequency = "1";
volume = "engineOn*camPos*(thrust factor[0.6, 1.0])";
cone[] = {3.14, 3.92, 2.0, 0.5};
};

class WindNoiseOut
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\noise", db-5, 1.0, 150};
frequency ="(0.1+(1.2*(speed factor[1, 150])))";
volume = "camPos*(speed factor[1, 150])";
};

/* INTERNAL SOUNDS */

class EngineLowIn
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03_low_int", db0, 1.0};
frequency = "1.0 min (rpm + 0.5)";
volume = (1-camPos)*((rpm factor[0.7, 0.1])*(rpm factor[0.1, 0.7]));
};

class EngineHighIn
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03_engi_int", db0, 1.2};
frequency = "1";
volume = "(1-camPos)*(rpm factor[0.85, 1.0])";
};

class ForsageIn
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\Plane_Fighter_03-fors_int", db0, 1.0};
frequency = "1";
volume = "(1-camPos)*(engineOn*(thrust factor[0.6, 1.0]))";
};

class WindNoiseIn
{
sound[] =  {"A3\Sounds_F\air\Plane_Fighter_03\noise", db-6, 1.0};
frequency ="(0.1+(1.2*(speed factor[1, 150])))";
volume = "(1-camPos)*(speed factor[1, 150])";
};
};
#uninclude //CLUSTER\Soko_G4_Super_Galeb\sounds.hpp
#include "flightModel.hpp"     // flight model is included in separate file to prevent cluttering, too
// GENERAL
maxSpeed     = 920; // flight behavior arrays are dependable on this value
// acceleration     = 300;

landingAoa     = 6*3.1415/180; // landing angle of attack in radians, for AI
landingSpeed    = 215; // for AI to approach the runawy, the plane should be stable at this speed

stallSpeed     = 180;
stallWarningTreshold  = 0.1;

wheelSteeringSensitivity = 2.0; // steering authority of the nose wheel

airBrake      = 1;
airBrakeFrictionCoef   = 2.2;
flaps      = 1;
flapsFrictionCoef    = 0.32;
gearsUpFrictionCoef   = 0.6;

airFrictionCoefs0[]   = { 0.0, 0.0, 0.0 };
airFrictionCoefs1[]   = { 0.1, 0.5, 0.0066 };
airFrictionCoefs2[]   = { 0.001, 0.005, 0.000068};

angleOfIndicence   = -2*3.1415/180; // difference between forward and airfold chord line in radians
envelope[] =
{
0.0, // 0
0.05, // 50
0.2, // 100
0.46, // 150
0.82, // 200
1.28, // 250
1.84, // 300
2.4, // 350
2.88, // 400
3.65, // 450
4.5, // 500
5.45, // 550
6.48, // 600
7.61, // 650
8.1, // 700
8.3, // 750
8.4, // 800
8.3, // 850
8.0, // 900
7.6, // 950
7.0  // 1000
};

// THRUST
altNoForce    = 13000;
altFullForce   = 2000;
thrustCoef[]   =
{ //   fSpeed = maxI * speedRel; speedRel = speed / (maxSpeed * 1.5f); maxI = _thrustCoef.Size() - 1;
1.42, // 0
1.38, // 75
1.34, // 150
1.30, // 225
1.25, // 300
1.20, // 375
1.19, // 450
1.18, // 525
1.17, // 600
1.17, // 675
1.16, // 750
1.16, // 825
0.1, // 900
0.0, // 975
0.0, // 1050
0.0, // 1125
0.0  // 1200
};

// CONTROL SURFACES
aileronSensitivity  = 1.0;
aileronCoef[]   =
{
0.0, // 0
0.11, // 75
0.45, // 150
0.81, // 225
1.1, // 300
1.15, // 375
1.2, // 450
1.25, // 525
1.3, // 600
1.35, // 675
1.4, // 750
1.43, // 825
1.45, // 900
1.47, // 975
1.4, // 1050
1.2, // 1125
0.8  // 1200
};

elevatorSensitivity  = 1.1;
elevatorCoef[]   =
{
0.0, // 0
0.14, // 75
0.54, // 150
0.62, // 225
0.58, // 300
0.56, // 375
0.54, // 450
0.52, // 525
0.48, // 600
0.43, // 675
0.38, // 750
0.35, // 825
0.3, // 900
0.25, // 975
0.2, // 1050
0.15, // 1125
0.1  // 1200
};


rudderInfluence   = 0.8660;  // Basic angle (cos angle) of the rudder extent
rudderCoef[]   =    // default value is fabs(speed.Z())*InvSqrt(Square(speed.X())+Square(speed.Z()));
{
0.0, // 0
0.8, // 120
2.0, // 240
2.2, // 360
2.3, // 480
2.4, // 600
2.3, // 720
2.2, // 840
2.1, // 960
2.0, // 1080
1.2 // 1200
};

// CONTROLS - sensitivity/speed in which control surface reaches its maximum extent
aileronControlsSensitivityCoef  = 3.6; // default value is 4
elevatorControlsSensitivityCoef  = 3.4; // default value is 4
rudderControlsSensitivityCoef  = 3.8; // default value is 4

// FORCES - how good the airplane changes the flight vector or alignes with it
draconicForceXCoef   = 8.0; //7.5
draconicForceYCoef   = 1.4; //1
draconicForceZCoef   = 1.0; //1
draconicTorqueXCoef[] =
{
4.8, // 0
5.0, // 120
5.5, // 240
6.2, // 360
7.0, // 480
7.7, // 600
9.4, // 720
11.1, // 840
12.0, // 960
14.0, // 1080
15.0 // 1200
};
draconicTorqueYCoef[] =
{
12.0, // 0
10.0, // 75
6.0, // 150
2.0, // 225
0.2, // 300
0.0, // 375
0.0, // 450
0.0, // 525
0.0, // 600
0.0, // 675
0.0, // 750
0.0, // 825
0.0, // 900
0.0, // 975
0.0, // 1050
0.0, // 1125
0.0  // 1200
};

// VTOL - behavior while vectoring
// VTOLYawInfluence = 1.0;
// VTOLPitchInfluence = 1.0;
// VTOLRollInfluence = 1.0;
#uninclude //CLUSTER\Soko_G4_Super_Galeb\flightModel.hpp
#include "physx.hpp"      // PhysX suspension setup
maxOmega    = 2000; // this parameters affects maximum engine rpm which also limits maximal wheel rotational speed
antiRollbarForceCoef  = 0 ;
antiRollbarForceLimit  = 0;
antiRollbarSpeedMin  = 50;
antiRollbarSpeedMax  = 300;

class Wheels
{
class Wheel_1
{
steering = 0;

boneName = "wheel_1";
center = "Wheel_1_center";
boundary = "Wheel_1_rim";
suspForceAppPointOffset = "Wheel_1_center";
tireForceAppPointOffset = "Wheel_1_center";

width = 0.2;
mass = 10;
MOI = 1;

dampingRate = 0.1;
dampingRateDamaged = 10;
dampingRateDestroyed = 1000;
maxBrakeTorque = 100;
maxHandBrakeTorque = 100;
suspTravelDirection[] = {0, -1, 0};

maxCompression = 0.075;
maxDroop = 0.09;
longitudinalStiffnessPerUnitGravity = 300;
latStiffX = 2;
latStiffY = 3;
frictionVsSlipGraph[] = {{0, 1}, {0.5, 1}, {1, 1}};

sprungMass = 700; //all these values are from trial and error. the formulas did not do it for me
springStrength = 4000; //all these values are from trial and error. the formulas did not do it for me
springDamperRate = 5000; //all these values are from trial and error. the formulas did not do it for me

};

class Wheel_2 : Wheel_1
{
MOI = 0.1;
steering = 1;
maxHandBrakeTorque = 0;
maxBrakeTorque = 0;
boneName = "wheel_l";
side = "left";
center = "Wheel_2_center";
boundary = "Wheel_2_rim";
suspForceAppPointOffset = "Wheel_1_center";
tireForceAppPointOffset = "Wheel_l_center";
};

class Wheel_3 : Wheel_2
{
boneName = "wheel_3";
side = "right";
center = "Wheel_3_center";
boundary = "Wheel_3_rim";
suspForceAppPointOffset = "Wheel_3_center";
tireForceAppPointOffset = "Wheel_3_center";
};
};
#uninclude //CLUSTER\Soko_G4_Super_Galeb\physx.hpp
driveOnComponent[] = {};  // array of components to be assigned special low-friction material (usually wheels) - not used anymore, for PhysX suspension use blank array (old array was - {"wheel_1","wheel_2","wheel_3"} )

/*
// These properties become obsolete with the new Sensor component configuration
irScanRangeMin = 500;  // defines the range of IR sight of the vehicle
irScanRangeMax = 5000;  // defines the range of IR sight of the vehicle
irScanToEyeFactor = 2;  // defines the effectivity of IR sight of the vehicle
laserScanner = 1;  // if the vehicle is able to see targets marked by laser marker
*/

gunAimDown = 0.029000; // adjusts the aiming of gun relative to the axis of model
headAimDown = 0.0000; // adjusts the view of pilot to have crosshair centred

memoryPointLRocket = "Rocket_1"; // use this for simulating different rocked pods in case you don't want to mess with "maverick weapon" simulation
memoryPointRRocket = "Rocket_2"; // it is used to alternate two points/pods of fire the missiles

minFireTime = 30;   // how long does the pilot fire at one target before switching to another one

threat[] = {1, 1, 1};  // multiplier of cost of the vehicle in eyes of soft, armoured and air enemies

class Components :  Plane_Base_F // class where various components can be defined and made available to the entity. Make sure you inherit from
{
class SensorsManagerComponent // Component containing the vehicle sensors
{
class Components
{
class IRSensorComponent // Individual sensor class. In this case an Infra-red Search & Track.
{
componentType = "IRSensorComponent";  // Type of the sensor. Options: IRSensorComponent, NVSensorComponent, LaserSensorComponent, ActiveRadarSensorComponent, PassiveRadarSensorComponent, VisualSensorComponent, ManSensorComponent

class AirTarget             // Sensor range for targets in look-up conditions, with sky background
{
minRange = 500;              /// Minimum possible range in meters
maxRange = 5000;             /// Maximum possible range in meters
objectDistanceLimitCoef = 1;       /// Range in meters set as objectDistanceLimit = (objectDistanceLimitCoef * player's obj. view distance)
viewDistanceLimitCoef = 1;         /// Range in meters set as viewDistanceLimit = (viewDistanceLimitCoef * player's view distance)
/// Smallest of [maxRange, objectDistanceLimit, viewDistanceLimit] is used as actual sensor's range. If this number is lower than minRange then minRange is used.
};
class GroundTarget : AirTarget         // Sensor range for targets in look-down conditions, with ground background
{
maxRange = 3500;    // Less than AirTarget - It's usually more difficult to detect something against ground clutter.
};

angleRangeHorizontal = 90;      // Azimuth coverage in degrees
angleRangeVertical = 90;        // Elevation coverage in degrees
groundNoiseDistanceCoef = 0.1;  // Portion of sensor-target-ground distance below which the target becomes invisible to the sensor
maxGroundNoiseDistance = 100;   // Distance from the ground background in meters above which the target will be visible even if still below groundNoiseDistanceCoef
minSpeedThreshold = 0;         // Speed in km/h above which the target will start becoming visible. Useful for simulating doppler-radar.
maxSpeedThreshold = 0;        // Speed above which the target becomes visible even if below groundNoiseDistanceCoef. Linearly decreases to minSpeedThreshold
minTrackableSpeed = -600;    // Min speed of target to be detectable
maxTrackableSpeed = 600;       // Max speed of target to be detectable. In this case the sensor won't be able to detect fast moving targets.
minTrackableATL = -1e10;        // Min altitude above terrain level of target to be detectable
maxTrackableATL = 1e10;         // Max altitude above terrain level of target to be detectable
typeRecognitionDistance = 1000; // Distance in meters at which the sensor recognizes the actual target vehicle type
animDirection = "";     // Model selection to set the sensor direction. In this case empty, but it can be useful on tanks or gunships.
aimDown = 15;                   // Elevation offset in degrees of the sensor from the animDirection. Looking down 15° in this case.
};

class PassiveRadarSensorComponent
{
componentType = "PassiveRadarSensorComponent"; // Component for Radar Warning Receiver

class AirTarget
{
minRange = 25;
maxRange = 5000;

objectDistanceLimitCoef = -1;    //Don't limit the range by obj. view distance
viewDistanceLimitCoef = -1;      //Don't limit the range by view distance
};
class GroundTarget : AirTarget {};
};
};
};
class VehicleSystemsDisplayManagerComponentLeft : DefaultVehicleSystemsDisplayManagerLeftSensors // inherit from the defaults to get correct display positioning
{
class Components : Components  // Inherit from the defaults so we don't have to re-define each panel component
{
class VehicleDriverDisplay // Add a new camera feed module to the left panel among the ones that were inherited from the defaults
{
componentType = "TransportFeedDisplayComponent";  // This component will provide a camera feeed
source = Driver;          // The camera feed source will be driver - driver's optics. In this case the pilotCamera
resource = RscTransportCameraComponentDriver;   // Define which resource will be used for the display
};
};
};
class VehicleSystemsDisplayManagerComponentRight : DefaultVehicleSystemsDisplayManagerRightSensors // inherit from the defaults to get correct display positioning
{
class Components : Components  // Inherit from the defaults so we don't have to re-define each panel component
{
class SensorDisplay    // Add another Sensor Display module to the right panel among the ones that were inherited from the defaults
{
componentType = "SensorsDisplayComponent";  // This component will provide a sensor displaye
range = 8000;         // Distance resolution - maximum range displayed on the sensor in meters
resource = "RscCustomInfoSensors";    // Define which resource will be used for the display
};
};
};
class TransportPylonsComponent
{
uiPicture = "\A3\Air_F_Gamma\Plane_Fighter_03\Data\UI\Plane_A143_3DEN_CA.paa";
class Pylons
{
class Pylons1
{
hardpoints[] = {"B_MISSILE_PYLON","B_ZEPHYR"};
attachment  = PylonRack_1Rnd_LG_scalpel;
priority  = 5;
maxweight  = 200;
UIposition[] = {0.35,0.08};
};
class Pylons2: Pylons1
{
priority  = 4;
attachment  = PylonRack_1Rnd_AAA_missiles;
maxweight  = 320;
UIposition[] = {0.345,0.13};
};
class Pylons3: Pylons1
{
hardpoints[] = {"B_ZEPHYR","B_MISSILE_PYLON","B_BOMB_PYLON"};
priority  = 3;
attachment  = PylonMissile_1Rnd_Bomb_04_F;
maxweight  = 400;
UIposition[] = {0.34,0.18};
};
class Pylons4: Pylons1 // center pylon
{
priority  = 2;
attachment  = PylonWeapon_300Rnd_20mm_shells;
maxweight  = 500;
UIposition[] = {0.27,0.28};
hardpoints[] = {"B_A143_BUZZARD_CENTER_PYLON"};
};
};
class Presets
{
class Empty
{
displayName = $STR_empty;
attachment[] = {};
};
class Default
{
displayName = $STR_vehicle_default;
attachment[] =
{
"PylonRack_1Rnd_Missile_AA_04_F",
"PylonRack_7Rnd_Rocket_04_HE_F",
"PylonRack_1Rnd_Missile_AGM_02_F",
"PylonWeapon_300Rnd_20mm_shells"
};
};
class AA
{
displayName = $STR_A3_cfgmagazines_titan_aa_dns;
attachment[] =
{
"PylonRack_1Rnd_Missile_AA_04_F",
"PylonRack_1Rnd_GAA_missiles",
"PylonRack_1Rnd_GAA_missiles",
"PylonWeapon_300Rnd_20mm_shells"
};
};
};
};
};

class Reflectors  // landing lights of the plane, turned on by AI while in night and "careless" or "safe"
{
class Left
{
color[] = {7000, 7500, 10000, 1};  // defines red, green, blue and alpha components of the light
ambient[] = {100, 100, 100};  // the same definition format for colouring the environment around
position = "Light_L";    // name of memory point in model to take the origin of the light
direction = "Light_L_end";   // name of memory point in the model to make a vector of direction of light from it's position
hitpoint = "Light_L";    // name of hitpoint selection in hitpoint lod of the model to be affected by damage
selection = "Light_L";    // name of selection in visual lods of the model that are going to be hidden while the light is off
innerAngle = 20;     // angle from light direction vector where the light is at full strength
outerAngle = 60;     // angle from light direction vector where the light is completely faded out
coneFadeCoef = 10;     // coefficient of fading the light between inner and outer cone angles
intensity = 50;      // how much does the light shine (in some strange units, just tweak until it is satisfying), rough approximation is intensity = (brightness * 50) ^ 2
useFlare = true;     // boolean switch if the light produces flare or not
dayLight = false;     // boolean switch if the light is used during day or not
FlareSize = 4;      // how big is the flare, using the same metrics as intensity
size = 1;       // defines the visible size of light, has not much of an effect now
class Attenuation     // describes how fast does the light dim
{
start = 1;      // offset of start of the attenuation
constant = 0;     // constant attenuation of the light in any distance from source
linear = 0;      // coefficient for linear attenuation
quadratic = 4;     // coefficient for attenuation with square of distance from source

hardLimitStart = 150;   // distance from source where the light intensity decreases for drawing
hardLimitEnd = 300;    // distance from source where the light is not displayed (shorter distances increase performance)
};
};
class Right: Left
{
position = "Light_R";
direction = "Light_R_end";
hitpoint = "Light_R";
selection = "Light_R";
};
};

class Damage    // damage changes material in specific places (visual in hitPoint)
{
tex[] = {};
mat[] =
{
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_1.rvmat",   // material mapped in model
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_1_damage.rvmat", // changes to this one once damage of the part reaches 0.5
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_1_destruct.rvmat", // changes to this one once damage of the part reaches 1

"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_2.rvmat",
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_2_damage.rvmat",
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_body_2_destruct.rvmat",

"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_glass.rvmat",
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_glass_damage.rvmat",
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_glass_destruct.rvmat",

"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_glass_in.rvmat",
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_glass_damage.rvmat",
"A3\Air_F_Gamma\Plane_Fighter_03\Data\Plane_Fighter_03_glass_destruct.rvmat"
};
};

hiddenSelections[] = // we want to allow changing of colours, this defines on what selection are the textures used
{
"camo1",
"camo2"
};

memoryPointDriverOptics = "PilotCamera_pos";  //mem. point for pilot camera
unitInfoType   = "RscOptics_CAS_Pilot"; //rsc with DriverOptics elements
driverWeaponsInfoType = "RscOptics_CAS_01_TGP"; //resource with Weapon UI elements that will be used when looking through the pilotCamera

class MFD       // class for helmet mounted displays, is going to be documented separately
{
class AirplaneHUD
{
enableParallax = true;  //enables parallax effect for plane's HUD
#define PosY0Center (0.383)
#define PosY0CenterAdjust 0.13
#define PosYCenterHorizont 0.38
#define PosX0Center 0.4975
#define SizeX10deg (0.94+0.03-0.02)
#define SizeY10deg (1.3-0.2-0.03)
//#include "cfgHUD.hpp"  // here we are including file with HUD configuration itself
};
};

class pilotCamera // A class that creates a turret-like slewable secondary optics for the pilot. Used to simulate Targeting Pods.
{
class OpticsIn
{
class Wide
{
initAngleX   = 0; minAngleX=0; maxAngleX=0;
initAngleY   = 0; minAngleY=0; maxAngleY=0;
initFov    = 0.25;    // Zoom level of the magnification mode. In this case discrete - min/max/init set to the same value
minFov    = 0.25;
maxFov    = 0.25;
directionStabilized = 1;     // Allows stabilization of the turret
visionMode[]  = {"Normal","Ti"}; // Available spectrum modes - in this case visible and thermal
thermalMode[]  = {0,1};   // TI modes - in this case WHOT and BHOT
gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_wide_F.p3d"; // model used for the reticle
opticsPPEffects[] = {};      // post-process effects used in the optics
};
class Medium : Wide
{
opticsDisplayName = "MFOV";
initFov    = A3_FOV_DEG(6);
minFov    = A3_FOV_DEG(6);
maxFov    = A3_FOV_DEG(6);
gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_medium_F.p3d";
};
class Narrow : Wide
{
initFov    = 0.125;
minFov    = 0.125;
maxFov    = 0.125;
gunnerOpticsModel = "\A3\Drones_F\Weapons_F_Gamma\Reticle\UAV_Optics_Gunner_narrow_F.p3d";
};
showMiniMapInOptics    = true;
showUAVViewInOptics    = false;
showSlingLoadManagerInOptics = false;
};

minTurn     = -160;  // yaw limits
maxTurn     = +160;  // yaw limits
initTurn    = 0;  // initial yaw angle
minElev     = -10;  // pitch limits
maxElev     = 90;  // pitch limits
initElev    = 0;  // initial pitch angle
maxXRotSpeed   = 0.3;  // yawing speed
maxYRotSpeed   = 0.3;  // pitching speed
maxMouseXRotSpeed  = 0.5;  // yawing speed for mouse
maxMouseYRotSpeed  = 0.5;  // pitching speed for mouse
pilotOpticsShowCursor = 1;  // aimCursor is display inside optics (is useful to see plane direction)
controllable   = true;  // camera can be slewed, set to 0 to have static camera
};

class AnimationSources: Plane_Base_F // custom made animation sources to show/hide all the different parts for different loadout
{
class Muzzle_flash {source = "ammorandom"; weapon = "gatling_20mm";}; // used to rotate the muzzle flash, dependent on the weapon selected
// animation sources for EJS
class canopy_hide    {source = "user";animPeriod = 0.001;initPhase = 0;};
class ejection_seat_hide : canopy_hide {};
class ejection_seat_motion  {source = "user";animPeriod = 0.25;initPhase = 0;};
// antimation sources for suspension animations and wheel rotation
class Wheel_1_source   {source = wheel; wheel = wheel_1;};
class Wheel_2_source   {source = wheel; wheel = Wheel_2;};
class Wheel_3_source   {source = wheel; wheel = Wheel_3;};
class Damper_1_source   {source = damper; wheel = wheel_1;};
class Damper_2_source   {source = damper; wheel = Wheel_2;};
class Damper_3_source   {source = damper; wheel = Wheel_3;};
//extra animations sources for damage representation
class HitGlass1     {source="Hit"; hitpoint="HitGlass1";    raw=1;};
class HitGlass2: HitGlass1   {hitpoint = "HitGlass2";};
class HitGlass3: HitGlass1   {hitpoint = "HitGlass3";};
class HitAvionics               {source = "Hit"; hitpoint = "HitAvionics";   raw=1;};
};

class UserActions  //used only when "driverCanEject" is zero and we want to use ejection system
{
class Test_Plane_01_Eject
{
priority  = 0.05;
shortcut  = "Eject";
displayName  = "$STR_A3_action_eject";
condition  = "player in this && {speed this > 1}";
statement  = "[this] spawn bis_fnc_planeEjection";
position  = "pilotcontrol";
radius   = 10;
onlyforplayer = 1;
showWindow  = 0;
hideOnUse  = 1;
};
};

class Eventhandlers: Plane_Base_F
{
hit = "_this call bis_fnc_planeAiEject"; //event handler used for AI to use ejection seats
};

weapons[] = // lets use the weapons from Buzzard
{
CMFlareLauncher
};

magazines[] = // and their respective magazines
{
120Rnd_CMFlare_Chaff_Magazine
};
};

class soko_g4_super_galeb: Test_Plane_01_base_F // CAS version of the plane
{
inherit class 'Test_Plane_01_base_F' does not exist
In File CLUSTER\Soko_G4_Super_Galeb\config.cpp: circa Line 530 rap: missing inheritence class(es)

 

Share this post


Link to post
Share on other sites
22 hours ago, Jackal326 said:

Take a screenshot of the error so we know WHICH inheritance classes are throwing the error. Will be so much easier to pinpoint the problem.

 

EDIT 1:

Also, I'm not very knowledgeable when it comes to coding vehicles, but I don't think


class Components :  Plane_Base_F
class Eventhandlers: Plane_Base_F
class AnimationSources: Plane_Base_F

would actually work...

This is the what I get, classes are in the above post...

DMFVdAS.png

Share this post


Link to post
Share on other sites

That is because you're not defining "Test_Plane_01_base_F" as a base class in your second config post...

	class soko_g4_super_galeb: Test_Plane_01_base_F // CAS version of the plane
	{
		simulation = "airplanex";
		scope			= public;				// scope 2 means it is available in editor, this is one of the macros in basicdefines_a3.hpp
		scopeCurator	= public;				// 2 means available from Zeus, whereas 0 means hidden
		displayName		= "Soko G-4 Super Galeb (N-62)"; // how does the vehicle show itself in editor
		[...BLAH BLAH...]

In that snippet class 'soko_g4_super_galeb' is trying to inherit from 'Test_Plane_01_base_F' but nowhere preceding it do you actually define 'Test_Plane_01_base_F' as a class, and as it is purely an example class you can't inherit from it. Your best bet is to inherit from either its parent class ('Plane_Base_F') or another existing aircraft in the game similar to the one you are creating by  using its classname instead of 'Test_Plane_01_base_F'...

Share this post


Link to post
Share on other sites
23 hours ago, Jackal326 said:

That is because you're not defining "Test_Plane_01_base_F" as a base class in your second config post...


	class soko_g4_super_galeb: Test_Plane_01_base_F // CAS version of the plane
	{
		simulation = "airplanex";
		scope			= public;				// scope 2 means it is available in editor, this is one of the macros in basicdefines_a3.hpp
		scopeCurator	= public;				// 2 means available from Zeus, whereas 0 means hidden
		displayName		= "Soko G-4 Super Galeb (N-62)"; // how does the vehicle show itself in editor
		[...BLAH BLAH...]

In that snippet class 'soko_g4_super_galeb' is trying to inherit from 'Test_Plane_01_base_F' but nowhere preceding it do you actually define 'Test_Plane_01_base_F' as a class, and as it is purely an example class you can't inherit from it. Your best bet is to inherit from either its parent class ('Plane_Base_F') or another existing aircraft in the game similar to the one you are creating by  using its classname instead of 'Test_Plane_01_base_F'...

When I do what you have suggested it does binarize, however when I load it in the the game it takes full length of airfield to take off and when in the air it handles like a brick.

Share this post


Link to post
Share on other sites
50 minutes ago, bhcluster said:

When I do what you have suggested it does binarize, however when I load it in the the game it takes full length of airfield to take off and when in the air it handles like a brick.

But you can actually get it in game, which is a marked improvement from it not even packing.

 

Now its down to fine-tuning a few things - the things that I have very little knowledge of being mainly a "weapons guy"

You could try

simulation = "airplane"

instead of

simulation = "airplanex"

If it still handles "like a brick" it is most likely config related, if that helps (I doubt it'll fix the issue) its PhysX related and is DEFINATELY well outside my wheel-house...

  • Like 1

Share this post


Link to post
Share on other sites
On 9/23/2020 at 9:30 PM, Jackal326 said:

But you can actually get it in game, which is a marked improvement from it not even packing.

 

Now its down to fine-tuning a few things - the things that I have very little knowledge of being mainly a "weapons guy"

You could try


simulation = "airplane"

instead of


simulation = "airplanex"

If it still handles "like a brick" it is most likely config related, if that helps (I doubt it'll fix the issue) its PhysX related and is DEFINATELY well outside my wheel-house...

I really appreciate you help which was more than I have expected.

Share this post


Link to post
Share on other sites
14 hours ago, bhcluster said:

I really appreciate you help which was more than I have expected.

No worries. Hopefully we (and by "we" and mean "you") are on the right track and we (I actually mean "we" this time) can find a solution.

Share this post


Link to post
Share on other sites

Everything "works" to my satisfaction except the plane handling, it still flies like a brick. Does anyone know what part of config is responsible for this? I used only the sample files from Arma 3 Samples for plane. One other thing when I try to binarize #include "cfgHUD.hpp" within config.cpp I get this error "config.cpp: circa Line 563 bad eval/exec"? Line 563 is last line and it has closing "};"

Share this post


Link to post
Share on other sites

OK I've got the plane flying like a brick fixed, what I did was edit the values in the "flightModel.hpp" file relating to the "aileronSensitivity", "aileronCoef" etc... More info here.

  • Like 1

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
Sign in to follow this  

×