Jump to content
Sign in to follow this  
Richards.D

Phys-x Inconsistency Problem

Recommended Posts

Hello:

A few users have brought to my attention a really weird Phys-x issue, which now after quite a few hours of testing I cannot find a solution for. It works like this:

My MTVR Addon has many different variants. There are 4x4, 6x6, and 8x8 variants. The 8x8 LHS MTVR can go massively fast, it can go the max 120km/h without problem. The 6x6 is much slower at accelerating, but can reach about the top speed. The 6x6 Armed, Gunners Shield variants only have a weird error where they can only go 10km max. Sometimes it jumps to max 23, but they can go no faster. They have the identical configs.. and the Phys-x LOD has literally been copied and pasted.. so I fail to see why these variants are so incredibly slow by comparison.

If you want a MLOD of the file, just PM me if you think that will help. I'll post the Config and model.CFG

Cheers

CONFIG

enum {
DESTRUCTENGINE = 2,
DESTRUCTDEFAULT = 6,
DESTRUCTWRECK = 7,
DESTRUCTTREE = 3,
DESTRUCTTENT = 4,
STABILIZEDINAXISX = 1,
STABILIZEDINAXESXYZ = 4,
STABILIZEDINAXISY = 2,
STABILIZEDINAXESBOTH = 3,
DESTRUCTNO = 0,
STABILIZEDINAXESNONE = 0,
DESTRUCTMAN = 5,
DESTRUCTBUILDING = 1,
};

#define private		0
#define protected		1
#define public		2

#define true	1
#define false	0

#define TEast		0
#define TWest		1
#define TGuerrila		2
#define TCivilian		3
#define TSideUnknown		4
#define TEnemy		5
#define TFriendly		6
#define TLogic		7

#include "basicdefines_A3.hpp"

class DefaultEventhandlers;	// External class reference

class CfgPatches {
class DAR_MTVR {
	units[] = {DAR_MK23A, DAR_MK27, DAR_MK27T, DAR_4x4};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Soft_F"};
};
};

class CfgVehicleClasses {
class DARMil_Vehicles {
	displayName = "DAR MTVR";
};
};

class WeaponFireGun;	
class WeaponCloudsGun;	
class WeaponFireMGun;	
class WeaponCloudsMGun;	
class RCWSOptics;	

class CfgMovesBasic {
class DefaultDie;

class ManActions {};
};

class CfgMovesMaleSdr : CfgMovesBasic {

class States {

	class Crew;
	class AmovPercMstpSnonWnonDnon;

	class HMMWV_KIA_Cargo01_EP1 : DefaultDie {
		actions = "DeadActions";
		file = "\DAR_MTVR\Anim\HMWVW_KIA_Cargo01";
		speed = 1e+010;
		terminal = true;
		soundEnabled = false;
		looped = false;
		connectTo[] = {"Unconscious", 0.1};
	};
};
};


class CfgVehicles {
class LandVehicle;

class Car : LandVehicle {
	class NewTurret;	
};

class Car_F : Car {
	class AnimationSources;	

	class Turrets {
		class MainTurret : NewTurret {};
		class ViewOptics;
	};

	class HitPoints {
		class HitLFWheel;	
		class HitLF2Wheel;	
		class HitRFWheel;	
		class HitRF2Wheel;	
		class HitGlass1;	
		class HitGlass2;	
		class HitGlass3;	
		class HitGlass4;	
		class HitGlass5;	
		class HitGlass6;	
	};
};

class DAR_MTVRBase : Car_F {
	class SpeechVariants {
		class Default {
			speechSingular[] = {"veh_vehicle_armedcar_s"};
			speechPlural[] = {"veh_vehicle_armedcar_p"};
		};
	};
	maxSpeed = 120;
	acceleration = 15;
	textSingular = "$STR_A3_nameSound_veh_vehicle_armedcar_s";
	textPlural = "$STR_A3_nameSound_veh_vehicle_armedcar_p";
	nameSound = "veh_vehicle_armedcar_s";
	author = "Richards.D, Bohemia Interactive";
	_generalMacro = "";
	scope = 0; 
	Model = "\DAR_MTVR\DAR_MK23A.p3d";
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	mapSize = 6;
	displayName = MTVR Base;
	vehicleClass = "DARMil_Vehicles";
	crew = "B_Soldier_F";
	typicalCargo[] = {"B_Soldier_F", "B_Soldier_F", "B_Soldier_F", "B_Soldier_F"};
	side = TWest;
	faction = BLU_F;
	wheelCircumference = 4.08407044; 	
	antiRollbarForceCoef = 1.5;
	antiRollbarForceLimit = 4;
	antiRollbarSpeedMin = 0;
	antiRollbarSpeedMax = 20;
	crewVulnerable = true;
	ejectDeadCargo = true;
	ejectDeadDriver = true;
	crewCrashProtection = 0.8;
	weapons[] = {"TruckHorn2"};
	magazines[] = {};
	damperSize = 0.2;	// max. damper amplitude
	damperForce = 1;	// larger number more stiffness dampers
	damperDamping = 1;	// larger number less movement in dampers
	armor = 80;
	damageResistance = 0.05;
	turnCoef = 3;
	steerAheadPlan = 0.2;
	steerAheadSimul = 0.4;
	predictTurnPlan = 0.9;
	predictTurnSimul = 0.5;
	brakeDistance = 1.0;	// vehicle movement precision
	terrainCoef = 2.5;
	wheelDamageThreshold = 0.9;
	wheelDestroyThreshold = 0.99;
	wheelDamageRadiusCoef = 0.95;
	wheelDestroyRadiusCoef = 0.45;
	cost = 200000;
	precision = 15;
	armorGlass = 0.9;
	armorWheels = 0.8;
	soundServo[] = {"A3\sounds_f\dummysound", db-40, 1.0, 10};
	soundEnviron[] = {"", 0.562341, 1};
	transportMaxBackpacks = 50;
	transportSoldier = 13;

	class Library {
		libTextDesc = "DAR MTVRs";
	};
	castDriverShadow = "false";
	driverAction = "driver_offroad01";
	cargoAction[] = {"passenger_low01", "passenger_generic01_leanright", "passenger_generic01_foldhands", "passenger_generic01_foldhands", "passenger_generic01_foldhands"};

	// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
	threat[] = {0.8, 0.6, 0.3};

	driverLeftHandAnimName = "drivewheel";
	driverRightHandAnimName = "drivewheel";

	class TransportMagazines {};

	class TransportItems {};

	class TransportWeapons {};

	idleRpm = 800;
	redRpm = 5500;
	brakeIdleSpeed = 1.78;
	fuelCapacity = 250;

	class complexGearbox {
		GearboxRatios[] = {"R1", -2.575, "N", 0, "D1", 4.5, "D2", 2.6, "D3", 1.32, "D4", 0.96, "D5", 0.65};
		TransmissionRatios[] = {"High", 5.539};
		gearBoxMode = "auto";
		moveOffGear = 1;
		driveString = "D";
		neutralString = "N";
		reverseString = "R";
	};
	simulation = "carx";
	dampersBumpCoef = 6.0;
	differentialType = "all_limited";
	frontRearSplit = 0.5;
	frontBias = 1.3;
	rearBias = 1.3;
	centreBias = 1.3;
	clutchStrength = 55.0;
	enginePower = 650;
	maxOmega = 900.91;
	peakTorque = 1253;
	dampingRateFullThrottle = 0.08;
	dampingRateZeroThrottleClutchEngaged = 2.0;
	dampingRateZeroThrottleClutchDisengaged = 0.35;
	torqueCurve[] = {{0, 0}, {0.14, 0.41}, {0.29, 0.77}, {0.43, 1}, {0.57, 1}, {0.71, 0.87}, {0.86, 0.77}, {1, 0.62}};
	changeGearMinEffectivity[] = {0.95, 0.15, 0.95, 0.95, 0.95, 0.95, 0.95};
	switchTime = 0.31;
	latency = 1.0;

	class Wheels
	{
		class LF
		{
			boneName = "wheel_1_1_damper";
			steering = 1;
			side = "left";
			center   = "wheel_1_1_axis";
			boundary = "wheel_1_1_bound";
			mass = 20;
			MOI = 3.3;
			dampingRate = 0.5;
			maxBrakeTorque = 6000;
			maxHandBrakeTorque = 0;
			suspTravelDirection[] = {0, -1, 0};
			suspForceAppPointOffset = "wheel_1_1_axis";
			tireForceAppPointOffset = "wheel_1_1_axis";
			maxCompression = 0.15;
			mMaxDroop = 0.15;
			sprungMass = 550;
			springStrength = 50875;
			springDamperRate = 12740;
			longitudinalStiffnessPerUnitGravity = 8000;
			latStiffX = 35;
			latStiffY = 180;
			frictionVsSlipGraph[] = {{0.17, 0.85}, {0.4, 0.65}, {1, 0.4}};
		};
		class LR : LF
		{
			boneName = "wheel_1_2_damper";
			steering = 0;
			center   = "wheel_1_2_axis";
			boundary = "wheel_1_2_bound";
			suspForceAppPointOffset = "wheel_1_2_axis";
			tireForceAppPointOffset = "wheel_1_2_axis";
			maxHandBrakeTorque = 3000;
			latStiffY = 180;	
			sprungMass = 550;
			springStrength = 50875;
			springDamperRate = 12740;				
		};
		class RF : LF
		{
			boneName = "wheel_2_1_damper";
			center   = "wheel_2_1_axis";
			boundary = "wheel_2_1_bound";
			suspForceAppPointOffset = "wheel_2_1_axis";
			tireForceAppPointOffset = "wheel_2_1_axis";
			steering = 1;
			side = "right";
		};
		class RR : RF
		{
			boneName = "wheel_2_2_damper";
			steering = 0;
			center   = "wheel_2_2_axis";
			boundary = "wheel_2_2_bound";
			suspForceAppPointOffset = "wheel_2_2_axis";
			tireForceAppPointOffset = "wheel_2_2_axis";
			maxHandBrakeTorque = 3000;
			latStiffY = 180;	
			sprungMass = 550;
			springStrength = 50875;
			springDamperRate = 12740;			
		};

		class RR1 : RR
		{
			boneName = "wheel_2_3_damper";
			steering = 0;
			center   = "wheel_2_3_axis";
			boundary = "wheel_2_3_bound";
			suspForceAppPointOffset = "wheel_2_3_axis";
			tireForceAppPointOffset = "wheel_2_3_axis";
			maxHandBrakeTorque = 3000;
			latStiffY = 180;	
			sprungMass = 550;
			springStrength = 50875;
			springDamperRate = 12740;			
		};

		class RR2 : RR
		{
			boneName = "wheel_2_4_damper";
			steering = 0;
			center   = "wheel_2_4_axis";
			boundary = "wheel_2_4_bound";
			suspForceAppPointOffset = "wheel_2_4_axis";
			tireForceAppPointOffset = "wheel_2_4_axis";
			maxHandBrakeTorque = 3000;
			latStiffY = 180;	
			sprungMass = 550;
			springStrength = 50875;
			springDamperRate = 12740;				
		};

		class LR1 : LR
		{
			boneName = "wheel_1_3_damper";
			steering = 0;
			center   = "wheel_1_3_axis";
			boundary = "wheel_1_3_bound";
			suspForceAppPointOffset = "wheel_1_3_axis";
			tireForceAppPointOffset = "wheel_1_3_axis";
			maxHandBrakeTorque = 3000;
			latStiffY = 180;	
			sprungMass = 550;
			springStrength = 50875;
			springDamperRate = 12740;				
		};

		class LR2 : LR
		{
			boneName = "wheel_1_4_damper";
			steering = 0;
			center   = "wheel_1_4_axis";
			boundary = "wheel_1_4_bound";
			suspForceAppPointOffset = "wheel_1_4_axis";
			tireForceAppPointOffset = "wheel_1_4_axis";
			maxHandBrakeTorque = 3000;
			latStiffY = 180;	
			sprungMass = 550;
			springStrength = 50875;
			springDamperRate = 12740;			
		};
	};

	#include "sounds.hpp"

	class Exhausts {
		class Exhaust1 {
			position = "vyfuk start";
			direction = "vyfuk konec";
			effect = "ExhaustEffectOffroad";
		};
	};

	class Turrets : Turrets {
		class MainTurret : MainTurret {
			body = "mainTurret";
			gun = "mainGun";
			hasGunner = true;
			weapons[] = {HMG_M2};
			magazines[] = {"100Rnd_127x99_mag_Tracer_Yellow", "100Rnd_127x99_mag_Tracer_Yellow", "100Rnd_127x99_mag_Tracer_Yellow", "100Rnd_127x99_mag_Tracer_Yellow", "100Rnd_127x99_mag_Tracer_Yellow", "100Rnd_127x99_mag_Tracer_Yellow"};
			soundServo[] = {"A3\sounds_f\dummysound", db-40, 1.0, 10};
			minElev = -25;
			maxElev = 60;
			gunnerAction = "gunner_standup01";
			viewGunnerInExternal = "true";
			castGunnerShadow = true;
			stabilizedInAxes = "StabilizedInAxesBoth";
			gunnerRightHandAnimName = "OtocHlaven_shake";
			gunnerLeftHandAnimName = "OtocHlaven_shake";

			class ViewOptics : ViewOptics {
				initFov = 0.7;
				minFov = 0.25;
				maxFov = 1.1;
			};

			class ViewGunner : ViewOptics {};
		};
	};

	class HitPoints : HitPoints {
		class HitGlass1 : HitGlass1 {
			armor = 0.1;
		};

		class HitGlass2 : HitGlass2 {
			armor = 0.1;
		};

		class HitGlass3 : HitGlass3 {
			armor = 0.1;
		};

		class HitGlass4 : HitGlass4 {
			armor = 0.1;
		};

		class HitLFWheel : HitLFWheel {
			armor = 0.38;
		};

		class HitLBWheel : HitLF2Wheel {
			armor = 0.38;
		};

		class HitRFWheel : HitRFWheel {
			armor = 0.38;
		};

		class HitRBWheel : HitRF2Wheel {
			armor = 0.38;
		};

		class HitFuel {
			armor = 1.4;
			material = -1;
			name = "palivo";
			visual = "";
			passThrough = true;
		};
	};

	class Reflectors {
		class LightCarHeadL01 {
			color[] = {1900, 1800, 1700};
			ambient[] = {5, 5, 5};
			position = "LightCarHeadL01";
			direction = "LightCarHeadL01_end";
			hitpoint = "Light_L";
			selection = "Light_L";
			size = 1;
			innerAngle = 100;
			outerAngle = 179;
			coneFadeCoef = 10;
			intensity = 1;
			useFlare = 1;
			dayLight = 0;
			flareSize = 1;

			class Attenuation {
				start = 1;
				constant = 0;
				linear = 0;
				quadratic = 0.25;
				hardLimitStart = 30;
				hardLimitEnd = 60;
			};
		};

		class LightCarHeadL02 : LightCarHeadL01 {
			position = "LightCarHeadL02";
			direction = "LightCarHeadL02_end";
			FlareSize = 0.5;
		};

		class LightCarHeadR01 : LightCarHeadL01 {
			position = "LightCarHeadR01";
			direction = "LightCarHeadR01_end";
			hitpoint = "Light_R";
			selection = "Light_R";
		};

		class LightCarHeadR02 : LightCarHeadR01 {
			position = "LightCarHeadR02";
			direction = "LightCarHeadR02_end";
			FlareSize = 0.5;
		};
	};
	aggregateReflectors[] = {{"Left", "Right", "Left2", "Right2"}};

	class RenderTargets {
		class LeftMirror {
			renderTarget = "rendertarget0";

			class CameraView1 {
				pointPosition = "PIP0_pos";
				pointDirection = "PIP0_dir";
				renderQuality = 2;
				renderVisionMode = 4;
				fov = 0.7;
			};
		};

		class RightMirror {
			renderTarget = "rendertarget2";

			class CameraView1 {
				pointPosition = "PIP2_pos";
				pointDirection = "PIP2_dir";
				renderQuality = 2;
				renderVisionMode = 4;
				fov = 0.7;
			};
		};
	};
};

class DAR_MK23A : DAR_MTVRBase {
	scope = 2; 
	displayName = "Mk. 23 MTVR Cargo APK M2";
	accuracy = 0.32;	// accuracy needed to recognize type of this target
	model = "\DAR_MTVR\DAR_MK23A.p3d";
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	side = TWest;
	faction = BLU_F;
	armor = 120;

	class AnimationSources : AnimationSources {
		class ReloadAnim {
			source = "reload";
			weapon = HMG_M2;
		};

		class ReloadMagazine {
			source = "reloadmagazine";
			weapon = HMG_M2;
		};

		class Revolving {
			source = "revolving";
			weapon = HMG_M2;
		};
	};
};

class DAR_MK23AD : DAR_MTVRBase {
	scope = 2; 
	displayName = "Mk. 23 MTVR Cargo APK M2 Deployment";
	accuracy = 0.32;	// accuracy needed to recognize type of this target
	model = "\DAR_MTVR\DAR_MK23AD.p3d";
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	side = TWest;
	faction = BLU_F;
	armor = 120;

	class AnimationSources : AnimationSources {
		class ReloadAnim {
			source = "reload";
			weapon = HMG_M2;
		};

		class ReloadMagazine {
			source = "reloadmagazine";
			weapon = HMG_M2;
		};

		class Revolving {
			source = "revolving";
			weapon = HMG_M2;
		};
	};
};

class DAR_MK27 : DAR_MTVRBase {
	scope = 2;
	model = "\DAR_MTVR\DAR_MK27.p3d";
	displayname = "Mk. 27 MTVR Extended Cargo";
	transportSoldier = 28;
	transportMaxBackpacks = 50;
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	hasGunner = false;

	side = TWest;
	faction = BLU_F;

	class Turrets {};

	class Library {
		libTextDesc = "Mk. 27 MTVR Extended";
	};

	vehicleClass = "DARMil_Vehicles";

	// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
	threat[] = {0.0, 0.0, 0.0};


	class TransportWeapons {};
};

class DAR_MK27T : DAR_MTVRBase {
	scope = 2;
	model = "\DAR_MTVR\DAR_MK27T.p3d";
	displayname = "Mk. 27 MTVR Extended Cargo Covered";
	transportSoldier = 28;
	transportMaxBackpacks = 50;
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	hasGunner = false;

	side = TWest;
	faction = BLU_F;

	class Turrets {};

	class Library {
		libTextDesc = "Mk. 27 MTVR Extended";
	};

	vehicleClass = "DARMil_Vehicles";

	// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
	threat[] = {0.0, 0.0, 0.0};


	class TransportWeapons {};
};

class DAR_4X4 : DAR_MTVRBase {
	scope = 2;
	model = "\DAR_MTVR\DAR_4X4.p3d";
	displayname = "MTVR 4X4 Short Bed";
	transportSoldier = 7;
	transportMaxBackpacks = 25;
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	hasGunner = false;

	side = TWest;
	faction = BLU_F;

	class Turrets {};

	class Library {
		libTextDesc = "4x4 Short Bed";
	};

	vehicleClass = "DARMil_Vehicles";

	// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
	threat[] = {0.0, 0.0, 0.0};


	class TransportWeapons {};
};


class DAR_MK23 : DAR_MTVRBase {
	scope = 2;
	model = "\DAR_MTVR\DAR_MK23.p3d";
	displayname = "Mk. 23 MTVR Cargo";
	transportSoldier = 13;
	transportMaxBackpacks = 25;
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	hasGunner = false;

	side = TWest;
	faction = BLU_F;

	class Turrets {};

	class Library {
		libTextDesc = "4x4 Short Bed";
	};

	vehicleClass = "DARMil_Vehicles";

	// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
	threat[] = {0.0, 0.0, 0.0};


	class TransportWeapons {};
};

class DAR_LHS_16 : DAR_MTVRBase {
	scope = 2;
	model = "\DAR_MTVR\DAR_LHS_16.p3d";
	displayname = "MTVR LHS 16 Ton";
	transportSoldier = 2;
	transportMaxBackpacks = 25;
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	hasGunner = false;
	supplyRadius = 8;
	transportAmmo = 2500;
	transportRepair = 200000000;

	side = TWest;
	faction = BLU_F;

	class Turrets {};

	class Library {
		libTextDesc = "16T LHS";
	};

	vehicleClass = "DARMil_Vehicles";

	// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
	threat[] = {0.0, 0.0, 0.0};


	class TransportWeapons {};
};



class DAR_LHS_8 : DAR_MTVRBase {
	scope = 2;
	model = "\DAR_MTVR\DAR_LHS_8.p3d";
	displayname = "MTVR LHS 8 Ton Fuel";
	transportSoldier = 0;
	transportMaxBackpacks = 25;
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	hasGunner = false;
	supplyRadius = 8;
	transportFuel = 10000;

	side = TWest;
	faction = BLU_F;

	class Library {
		libTextDesc = "8T LHS";
	};

	class AnimationSources : AnimationSources {
		class ReloadAnim {
			source = "reload";
			weapon = HMG_M2;
		};

		class ReloadMagazine {
			source = "reloadmagazine";
			weapon = HMG_M2;
		};

		class Revolving {
			source = "revolving";
			weapon = HMG_M2;
		};
	};

	vehicleClass = "DARMil_Vehicles";

	// threat (VSoft, VArmor, VAir), how threatening vehicle is to unit types
	threat[] = {0.0, 0.0, 0.0};


	class TransportWeapons {};
};

class DAR_MK23ADT : DAR_MTVRBase {
	scope = 2; 
	displayName = "Mk. 23 MTVR Cargo APK M2 Deployment Tan";
	accuracy = 0.32;	// accuracy needed to recognize type of this target
	model = "\DAR_MTVR\DAR_MK23ADT.p3d";
	picture = "\DAR_MTVR\Data\UI\picture_mtvr_ca.paa";
	Icon = "\DAR_MTVR\Data\UI\icon_mtvr_ca.paa";
	side = TWest;
	faction = BLU_F;
	armor = 120;

	class AnimationSources : AnimationSources {
		class ReloadAnim {
			source = "reload";
			weapon = HMG_M2;
		};

		class ReloadMagazine {
			source = "reloadmagazine";
			weapon = HMG_M2;
		};

		class Revolving {
			source = "revolving";
			weapon = HMG_M2;
		};
	};
};
};

		
	#define BULLET_HIDE(x,from,count) class Bullet##x\
		{\
			type="hide";\
			source="revolving";\
			sourceAddress="mirror";\
			selection=bullet##x;\
			minValue=-1.000000;\
			maxValue= 0.000000;\
			hideValue=((count+x-from-2)/count)+0.00001;\
		};

class Rotation
{
type = "rotation";
memory = 1;
minValue = 0;
maxValue = 1;
angle0 = 0;
angle1 = 1;
};

class CfgSkeletons
{
	class Default
	{
		isDiscrete = 1;
		skeletonInherit = "";
		skeletonBones[] = {};
	};
	class Vehicle : Default {};

	class Car : Vehicle {

		skeletonBones[]=
		{
			"drivewheel","",

			"wheel_1_1_damper_land","",
			"wheel_1_2_damper_land","",
			"wheel_1_3_damper_land","",
			"wheel_1_4_damper_land","",

			"wheel_2_1_damper_land","",
			"wheel_2_2_damper_land","",
			"wheel_2_3_damper_land","", 
			"wheel_2_4_damper_land","",

			"wheel_1_1_damper","wheel_1_1_damper_land",
			"wheel_1_2_damper","wheel_1_2_damper_land",
			"wheel_1_3_damper","wheel_1_3_damper_land",
			"wheel_1_4_damper","wheel_1_4_damper_land",

			"wheel_2_1_damper","wheel_2_1_damper_land",
			"wheel_2_2_damper","wheel_2_2_damper_land",
			"wheel_2_3_damper","wheel_2_3_damper_land",
			"wheel_2_4_damper","wheel_2_4_damper_land",

			"wheel_1_1_steering","wheel_1_1_damper",
			"wheel_1_2_steering","wheel_1_2_damper",
			"wheel_1_3_steering","wheel_1_3_damper",
			"wheel_1_4_steering","wheel_1_4_damper",

			"wheel_2_1_steering","wheel_2_1_damper",
			"wheel_2_2_steering","wheel_2_2_damper",
			"wheel_2_3_steering","wheel_2_3_damper",
			"wheel_2_4_steering","wheel_2_4_damper",

			"wheel_1_1","wheel_1_1_steering",
			"wheel_1_2","wheel_1_2_steering",
			"wheel_1_3","wheel_1_3_steering",
			"wheel_1_4","wheel_1_4_steering",

			"wheel_2_1","wheel_2_1_steering",
			"wheel_2_2","wheel_2_2_steering",
			"wheel_2_3","wheel_2_3_steering",
			"wheel_2_4","wheel_2_4_steering",

			"wheel_1_1_unhide","wheel_1_1",
			"wheel_1_2_unhide","wheel_1_2",
			"wheel_1_3_unhide","wheel_1_3",
			"wheel_1_4_unhide","wheel_1_4",

			"wheel_2_1_unhide","wheel_2_1",
			"wheel_2_2_unhide","wheel_2_2",
			"wheel_2_3_unhide","wheel_2_3",
			"wheel_2_4_unhide","wheel_2_4",

			"wheel_1_1_hide","wheel_1_1",
			"wheel_1_2_hide","wheel_1_2",
			"wheel_1_3_hide","wheel_1_3",
			"wheel_1_4_hide","wheel_1_4",

			"wheel_2_1_hide","wheel_2_1",
			"wheel_2_2_hide","wheel_2_2",
			"wheel_2_3_hide","wheel_2_3",
			"wheel_2_4_hide","wheel_2_4",

			"OtocVez","",
			"OtocHlaven","OtocVez",

			"damageHide","",
			"damageVez","OtocVez",
			"damageHlaven","OtocHlaven",
			"Light_R",
			"Light_L",

			"ukaz_rychlo","",
			"ukaz_rychlo2","",
			"ukaz_rpm","",
			"mph","",
			"rpm","",
			"fuel","",
			"fuel_1","",
			"fuel_01","",
			"fuel_2","",
			"fuel_3","",
			"prop_01","",
			"prop_02","",
			"prop_2","",
			"prop_1","",
			"glass1","damageHide",
			"glass2","damageHide",
			"glass3","damageHide",
			"glass4","damageHide"
		};
	};

	class DAR_MTVRSkeleton:Car
	{
		isDiscrete=1;
		skeletonInherit="Car";
		skeletonBones[]=
		{
			"ammo_belt","OtocHlaven"
		};
	};

	class DAR_MTVR_M2_Skeleton:DAR_MTVRSkeleton
	{
		isDiscrete=1;
		skeletonInherit="DAR_MTVRSkeleton";
		skeletonBones[]=
		{
			"ammo_belt","OtocHlaven_Shake",
			"OtocHlaven_Shake","OtocHlaven",
			"bolt","OtocHlaven_Shake",
			"recoil","OtocHlaven_Shake",
			"charging_handle","OtocHlaven_Shake",
			"magazine","OtocHlaven_Shake",
			"feedtray_cover","OtocHlaven_Shake",
			"bullet001","bullet002",
			"bullet002","bullet003",
			"bullet003","bullet004",
			"bullet004","bullet005",
			"bullet005","bullet006",
			"bullet006","bullet007",
			"bullet007","bullet008",
			"bullet008","bullet009",
			"bullet009","bullet010",
			"bullet010","bullet011",
			"bullet011","bullet012",
			"bullet012","ammo_belt"
		};
	};
};

class CfgModels
{
	class Vehicle
	{
		sections[]={};
		sectionsInherit="";
		skeletonName="";

	};
	class Car: Vehicle
	{
		sectionsInherit="Vehicle";
		sections[]=
		{	
			"ammo",
			"sklo predni p",
			"sklo predni l",
			"zadni svetlo",
			"brzdove svetlo",
			"spz",
			"karoserie",
			"motor",
			"zbran",
			"vez",
			"zbytek",
			"clan",
			"clan_sign",
			"zasleh",
			"P svetlo",
			"L svetlo",
			"Light_R",
			"Light_L",
			"palivo",
			"glass1",
			"glass2",
			"glass3",
			"glass4"
		};
		skeletonName="Car";

		class Animations
		{

		class damageHide
		{
			type="hide";
			source="damage";
			selection="damageHide";
			hideValue=1.0;
		};

		class damageHideVez:damageHide
		{
			selection="OtocVez";
		};
		class damageHideHlaven:damageHide
		{
			selection="OtocHlaven";
		};

		class wheel_1_1_destruct
		{
			type="hide";
			selection="wheel_1_1_hide";
			source="HitLFWheel";
			minValue = 0; 
			maxValue = 1;
			hidevalue = 0.99;
		};
		class wheel_1_2_destruct:wheel_1_1_destruct {source="HitLBWheel";selection="wheel_1_2_hide";};
		class wheel_1_3_destruct:wheel_1_1_destruct {source="HitLMWheel";selection="wheel_1_3_hide";};
		class wheel_1_4_destruct:wheel_1_1_destruct {source="HitLF2Wheel";selection="wheel_1_4_hide";};

		class wheel_2_1_destruct:wheel_1_1_destruct {source="HitRFWheel";selection="wheel_2_1_hide";};
		class wheel_2_2_destruct:wheel_1_1_destruct {source="HitRBWheel";selection="wheel_2_2_hide";};
		class wheel_2_3_destruct:wheel_1_1_destruct {source="HitRMWheel";selection="wheel_2_3_hide";};
		class wheel_2_4_destruct:wheel_1_1_destruct {source="HitRF2Wheel";selection="wheel_2_4_hide";};

		class wheel_1_1_destruct_unhide
		{
			type="hide";
			selection="wheel_1_1_unhide";
			source="HitLFWheel";
			minValue = -1;
			maxValue = 0; 
			hidevalue = 0.01;
			sourceAddress="mirror";
		};
		class wheel_1_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLBWheel";selection="wheel_1_2_unhide";};
		class wheel_1_3_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLMWheel";selection="wheel_1_3_unhide";};
		class wheel_1_4_destruct_unhide:wheel_1_1_destruct_unhide {source="HitLF2Wheel";selection="wheel_1_4_unhide";};

		class wheel_2_1_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRFWheel";selection="wheel_2_1_unhide";};
		class wheel_2_2_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRBWheel";selection="wheel_2_2_unhide";};
		class wheel_2_3_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRMWheel";selection="wheel_2_3_unhide";};
		class wheel_2_4_destruct_unhide:wheel_1_1_destruct_unhide {source="HitRF2Wheel";selection="wheel_2_4_unhide";};

		#define DamageOffset 0.2

		class wheel_1_1_Damage:wheel_1_1_destruct
			{
			type="translation";
			axis="Basic_Damper_Destruct_Axis";
			memory=1;
			selection="wheel_1_1_damper_land";
			source="HitLFWheel";
			minValue = 0.0;
			maxValue = 1;
			offset0 = 0;
			offset1 = DamageOffset;
			};

			class wheel_1_2_Damage:wheel_1_1_Damage {source="HitLBWheel";selection="wheel_1_2_damper_land";};
			class wheel_1_3_Damage:wheel_1_1_Damage {source="HitLMWheel";selection="wheel_1_3_damper_land";};
			class wheel_1_4_Damage:wheel_1_1_Damage {source="HitLF2Wheel";selection="wheel_1_4_damper_land";};

			class wheel_2_1_Damage:wheel_1_1_Damage {source="HitRFWheel";selection="wheel_2_1_damper_land";};
			class wheel_2_2_Damage:wheel_1_1_Damage {source="HitRBWheel";selection="wheel_2_2_damper_land";};
			class wheel_2_3_Damage:wheel_1_1_Damage {source="HitRMWheel";selection="wheel_2_3_damper_land";};
			class wheel_2_4_Damage:wheel_1_1_Damage {source="HitRF2Wheel";selection="wheel_2_4_damper_land";};



			class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damage {selection="wheel_1_1_damper";offset1 = -1*DamageOffset;};
			class wheel_1_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLBWheel";selection="wheel_1_2_damper";};
			class wheel_1_3_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLMWheel";selection="wheel_1_3_damper";};
			class wheel_1_4_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitLF2Wheel";selection="wheel_1_4_damper";};

			class wheel_2_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRFWheel";selection="wheel_2_1_damper";};
			class wheel_2_2_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRBWheel";selection="wheel_2_2_damper";};
			class wheel_2_3_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRMWheel";selection="wheel_2_3_damper";};
			class wheel_2_4_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {source="HitRF2Wheel";selection="wheel_2_4_damper";};


			class Glass1_destruct
			{
			type="hide";
			selection="glass1";
			source="HitGlass1";
			minValue = 0; 
			maxValue = 1; 
			hidevalue = 0.99;
			};
			class Glass2_destruct:Glass1_destruct{selection="glass2";source="HitGlass2";};
			class Glass3_destruct:Glass1_destruct{selection="glass3";source="HitGlass3";};
			class Glass4_destruct:Glass1_destruct{selection="glass4";source="HitGlass4";};


		class Fuel: Rotation
		{
			source="fuel";
			selection="fuel";
			axis="fuel_axis";
			maxValue=1;
			memory=1;
			angle0="rad -110";
			angle1=0;
		};
		class IndicatorSpeed: Rotation
		{
			source="speed";
			selection="mph";
			axis="mph_axis";
			memory=1;
			maxValue=38.900002;
			angle1="rad -265";
		};
		class IndicatorFuel: Rotation
		{
			type="rotation";
			source="fuel";
			selection="fuel_1";
			axis="fuel_1_axis";
			memory=1;
			minValue=0.000000;
			maxValue=1.000000;
			angle0=-0.087266;
			angle1=-1.658063;
		};
		class IndicatorRPM: Rotation
		{
			source="rpm";
			selection="rpm";
			axis="rpm_axis";
			memory=1;
			angle1="rad 80";
		};

			class DrivingWheel: Rotation
			{
				source="drivingWheel";
				selection="drivewheel";
				axis="drivewheel_axis";
				minValue=-1;
				maxValue=1;
				angle0=(rad -80);
				angle1=(rad 80);
			};
			class wheel_1_1_pad
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_1_1_pad";
				axis="wheel_1_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class wheel_2_1_pad
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_2_1_pad";
				axis="wheel_2_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class TurnFrontWheelR
			{
				type="rotationY";
				source="drivingWheel";
				memory = 1;
				animPeriod = 0;
				selection="wheel_2_1_steering";
				axis="wheel_2_1_steering_axis";
				minValue="rad -180";
				maxValue="rad +180";
				angle0="rad +45";
				angle1="rad -45";
			};
			class TurnFrontWheelL: TurnFrontWheelR
			{
				selection="wheel_1_1_steering";
				axis="wheel_1_1_steering_axis";
			};
			class TurnFrontWheelR2: TurnFrontWheelL
			{
				selection="posun wheel_1_1";
			};
			class TurnFrontWheelL2: TurnFrontWheelR
			{
				selection="posun wheel_2_1";
			};
			class wheel_1_1
			{
				type="rotationX";
				source="wheel";
				memory = 1;//by default
				animPeriod = 0;//Unknown
				selection="wheel_1_1";
				axis="wheel_1_1_axis";
				minValue = 0.0;
				maxValue = 1.0;
				minPhase = 0.0;
				maxPhase = 1.0;
				angle0 = 0;
				angle1 = "rad -360";
			};
			class wheel_1_2: wheel_1_1
			{
				selection="wheel_1_2";
				axis="wheel_1_2_axis";
			};
			class wheel_1_3: wheel_1_1
			{
				selection="wheel_1_3";
				axis="wheel_1_3_axis";
			};
			class wheel_1_4: wheel_1_1
			{
				selection="wheel_1_4";
				axis="wheel_1_4_axis";
			};
			class wheel_2_1: wheel_1_1
			{
				selection="wheel_2_1";
				axis="wheel_2_1_axis";
			};
			class wheel_2_2: wheel_1_1
			{
				selection="wheel_2_2";
				axis="wheel_2_2_axis";
			};
			class wheel_2_3: wheel_1_1
			{
				selection="wheel_2_3";
				axis="wheel_2_3_axis";
			};
			class wheel_2_4: wheel_1_1
			{
				selection="wheel_2_4";
				axis="wheel_2_4_axis";
			};
			class Wheel_1_1_Damper
			{
				type="translation";
				source="damper";
				selection="wheel_1_1_damper_land";
				axis="posun wheel_1_1";
				animPeriod = 1;
				minValue="0";
				maxValue="1";
				offset0= "0.5";
				offset1= "-0.25";
				memory=1;
			};
			class wheel_2_1_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_1_damper_land";
				axis="posun wheel_2_1";
			};
			class wheel_1_2_Damper: wheel_1_1_Damper
			{
				selection="wheel_1_2_damper_land";
				axis="posun wheel_1_2";
			};
			class wheel_1_3_Damper: wheel_1_1_Damper
			{
				selection="wheel_1_3_damper_land";
				axis="posun wheel_1_3";
			};
			class wheel_1_4_Damper: wheel_1_1_Damper
			{
				selection="wheel_1_4_damper_land";
				axis="posun wheel_1_4";
			};
			class wheel_2_2_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_2_damper_land";
				axis="posun wheel_2_2";
			};
			class wheel_2_3_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_3_damper_land";
				axis="posun wheel_2_3";
			};
			class wheel_2_4_Damper: wheel_1_1_Damper
			{
				selection="wheel_2_4_damper_land";
				axis="posun wheel_2_4";
			};
			class damageVez: damageHide
			{
				selection="damageVez";
			};
			class damageHlaven: damageHide
			{
				selection="damageHlaven";
			};
		};
	};

	class DAR_MK23: Car
	{
		sectionsInherit="Car";
		sections[]=
		{
			"Camo1",
		};

		skeletonName="DAR_MTVRSkeleton";

		class Animations: Animations
		{

			class wheel_1_1_Damage:wheel_1_1_Damage {offset1 = 0.20;};
			class wheel_1_2_Damage:wheel_1_2_Damage {offset1 = 0.20;};
			class wheel_1_3_Damage:wheel_1_2_Damage {offset1 = 0.20;};
			class wheel_1_4_Damage:wheel_1_2_Damage {offset1 = 0.20;};
			class wheel_2_1_Damage:wheel_2_1_Damage {offset1 = 0.20;};
			class wheel_2_2_Damage:wheel_2_2_Damage {offset1 = 0.20;};
			class wheel_2_3_Damage:wheel_2_3_Damage {offset1 = 0.20;};
			class wheel_2_4_Damage:wheel_2_4_Damage {offset1 = 0.20;};
			class wheel_1_1_Damper_Damage_BackAnim:wheel_1_1_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_1_2_Damper_Damage_BackAnim:wheel_1_2_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_1_Damper_Damage_BackAnim:wheel_2_1_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_2_Damper_Damage_BackAnim:wheel_2_2_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_3_Damper_Damage_BackAnim:wheel_2_3_Damper_Damage_BackAnim {offset1 = -0.20;};
			class wheel_2_4_Damper_Damage_BackAnim:wheel_2_4_Damper_Damage_BackAnim {offset1 = -0.20;};



			class IndicatorSpeed: IndicatorSpeed
			{
				maxValue=16.670000;
				angle0=-0.174533;
				angle1=3.141593;
			};
			class IndicatorRPM: IndicatorRPM
			{
				angle0=0.000000;
				angle1=1.483530;
			};
			class fuel
			{
				type="rotation";
				source="fuel";
				selection="fuel_1";
				axis="fuel_1_axis";
				memory=0;
				minValue=0.000000;
				maxValue=1.000000;
				angle0=-0.087266;
				angle1=-1.658063;
			};
			class prop_01
			{
				type="rotation";
				source="rpm";
				selection="prop_01";
				axis="prop_01_axis";
				memory=0;
				minValue=0.000000;
				maxValue=0.360000;
				angle0=1.396263;
				angle1=0.000000;
			};
			class prop_02
			{
				type="rotation";
				source="rpm";
				selection="prop_02";
				axis="prop_02_axis";
				memory=0;
				minValue=0.000000;
				maxValue=0.640000;
				angle0=0.349066;
				angle1=-0.349066;
			};
		};
	};

	class DAR_MK23ATurret: DAR_MK23
	{
		class Animations: Animations
		{
			class MainTurret
			{
				type="rotationY";
				source="mainTurret";
				selection="OtocVez";
				axis="OsaVeze";
				animPeriod=0;
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class MainGun: MainTurret
			{
				type="rotationX";
				source="mainGun";
				selection="OtocHlaven";
				axis="OsaHlavne";
			};
			class damageHlaven: damageHide
			{
				selection="damageHlaven";
			};
		};
	};

	class DAR_MK23A: DAR_MK23ATurret
	{
		skeletonName="DAR_MTVR_M2_Skeleton";
		class Animations: Animations
		{
			class ammo_belt_rotation
			{
				type="rotationZ";
				source="ReloadAnim";
				selection="ammo_belt";
				axis="ammo_belt_axis";
				memory=1;
				sourceAddress="loop";
				minValue=0.000000;
				maxValue=1.0000;
				angle0=0.000000;
				angle1=-0.209440;
			};
			class Barrel_recoil:ammo_belt_rotation
			{
				type="translation";
				selection="recoil";
				axis="recoil_axis";
				sourceAddress="mirror";
				minValue=0.0;
				maxValue=0.5;
				offset0=0;
				offset1=-0.05;
			};
			class Bolt_recoil:Barrel_recoil
			{
				selection="bolt";
				offset0=0;
				maxValue=0.5;
				offset1=-0.25;
			};
			class Turret_shake:Barrel_recoil
			{
				selection="OtocHlaven_Shake";
				axis="osaveze";
				offset0=0;
				offset1=-0.002;
				maxValue=0.05;
			};
			class Turret_shake_aside:Turret_shake
			{
				axis="osahlavne";
				maxValue=0.05*1.3;
			};
			class Charging_handle_shake:Barrel_recoil
			{
				type="rotation";
				selection="Charging_handle";
				axis="Charging_handle_axis";
				sourceAddress="mirror";
				maxValue=0.005;
				angle0=0.000000;
				angle1=-0.1;
			};
			class Feedtray_cover_up
			{
				type="rotation";
				source="reloadMagazine";
				selection="feedtray_cover";
				axis="feedtray_cover_axis";
				memory=1;
				minValue=0.1000000;
				maxValue=0.130000;
				angle0=0.000000;
				angle1=-1.570796;
			};
			class Feedtray_cover_down:feedtray_cover_up
			{
				minValue=0.860000;
				maxValue=0.900000;
				angle0=0.000000;
				angle1=1.570796;
			};
			class Bolt_reload_begin:Bolt_recoil
			{
				type="translation";
				sourceAddress="clamp";
				source="reloadMagazine";
				minValue=0.00000;
				maxValue=0.0200000;
			};
			class Bolt_reload_end:bolt_reload_begin
			{
				minValue=0.050000;
				maxValue=0.070000;
				offset0=0;
				offset1=+0.25;
			};
			class Charging_handle_reload_begin:Bolt_reload_begin{selection="Charging_handle";};
			class Charging_handle_reload_end:Bolt_reload_end{selection="Charging_handle";};

			class Magazine_hide
			{
				type="hide";
				source="reloadMagazine";
				sourceAddress="mirror";
				selection="magazine";
				minValue=0.0;
				maxValue=0.5;
				hideValue=0.56;
			};

			/*BULLET_HIDE(001,12,100)
			BULLET_HIDE(002,12,100)
			BULLET_HIDE(003,12,100)
			BULLET_HIDE(004,12,100)
			BULLET_HIDE(005,12,100)
			BULLET_HIDE(006,12,100)
			BULLET_HIDE(007,12,100)
			BULLET_HIDE(008,12,100)
			BULLET_HIDE(009,12,100)
			BULLET_HIDE(010,12,100)
			BULLET_HIDE(011,12,100)
			BULLET_HIDE(012,12,100)*/
		};
	};

class DAR_MK23AD: DAR_MK23A {};

class DAR_MK27: DAR_MK23A {};

class DAR_MK27T: DAR_MK23A {};

class DAR_4X4: DAR_MK23A {};

class DAR_LHS_16: DAR_MK23A {};

class DAR_LHS_8: DAR_MK23A {};

class DAR_MK23ADT: DAR_MK23A {};


};

Share this post


Link to post
Share on other sites

it doesn't look like your re-configuring your suspension for each type of vehicle, I could have mis-read my quick browse of your config but the suspension plays a role in the handling and acceleration of the vehicles, as well as the wheel circumference and radius.

Share this post


Link to post
Share on other sites

Right, What I did was have the base config with up to 8x8 mapped out. Should I only do the base config to say.. 4x4 for the vehicle with the least tires, and then add the additional tires/suspension under the vehicle which has more tires?

Share this post


Link to post
Share on other sites

pretty much, the higher number of tires the lower the sprung mass is per tire, and it also changes your spring damper rate aswell. Pretty much you can just define out one wheel and then inherit that wheels characteristics to the desired numbers of tires and edit it on a case by case method. If you get what im saying. if you got any issues with the suspension i recommend RedPhonix's suspension spread sheet, its very accurate and it hasn't steered me wrong yet. I had issues with the suspension with an AAV port i am doing (among others) and as soon i got the number of wheels and there approximate size and weight, everything functioned as intended.

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  

×