Jump to content
eggbeast

{SOLVED] strange issue with muzzle flash not showing

Recommended Posts

ok so I am trying to fix a non-showing muzzle flash on a sub-class of APC.

the base vehicle is BI's BTR40 from arma 2.

i have a working PK MG in the parent class, and one child down (the m18 recoilless rifle version with PK in copilot seat)

however the other children have a glitch - they do not show the muzzle-flash proxy in editor.

they work in buldozer, but in editor they only light up the surroundings, the proxy model does not show

 

you can see from below that i am inheriting the PKM turret directly and so do not repeat those parts.

In  child1 the m18 version, the pkm_zasleh (muzzleflash) appears correctly

in all other children, inheriting the EXACT SAME content, they do not show up.

 

Does this mean that the model of the pkm_zasleh proxy in the m40, sp99 and mortar vehicles is somehow borked?

or have i missed something ?

cheers for any help

 

here are the inheritances

 

skeleton

	class uns_BTR_turret_PKM: uns_BTR_turret
	{
		isDiscrete = 1;
		skeletonInherit = "uns_BTR_turret";
		skeletonBones[]= 
		{
			"PKM_OtocVez","",
			"PKM_OtocHlaven","PKM_OtocVez",
			"PKM_ammobelt","PKM_OtocHlaven",
			"PKM_shells","PKM_ammobelt",
			"PKM_bullet06","PKM_shells",
			"PKM_bullet05","PKM_bullet06",
			"PKM_bullet04","PKM_bullet05",
			"PKM_bullet03","PKM_bullet04",
			"PKM_bullet02","PKM_bullet03",
			"PKM_bullet01","PKM_bullet02",
			"PKM_magazine","PKM_OtocHlaven",
			"PKM_charging_handle","PKM_OtocHlaven",
			"PKM_topcover","PKM_OtocHlaven",
			"PKM_trigger","PKM_OtocHlaven",
			"PKM_zasleh","PKM_OtocHlaven"
		};
	};	
	class uns_BTR_PKSkeleton: uns_BTR_turret_PKM //pk on only  turret
	{
		skeletonInherit="uns_BTR_turret_PKM";
		skeletonBones[]= 
		{
// PKM
			"PKM_handle_L","PKM_OtocHlaven",
			"PKM_handle_R","PKM_OtocHlaven"
		};
	};
	class uns_BTR_M18Skeleton: uns_BTR_turret_PKM //m18 RR on rear, pk on codriver
	{
		skeletonInherit="uns_BTR_turret_PKM";
		skeletonBones[]= 
		{
// M18 anims
//			"feedtray_cover","OtocHlaven"
		};
	};
	class uns_BTR_M40Skeleton: uns_BTR_turret_PKM //m40 RR on rear, pk on codriver
	{
		skeletonInherit="uns_BTR_turret_PKM";
		skeletonBones[]= 
		{
// M40 anims
			"MainTurret","",
			"dial1","MainTurret",
			"dial2","MainTurret",
			"MainGun","MainTurret",
			"magazine","MainGun",
			"breech","MainGun",
			"breechblock","breech",
			"breechhandle","MainGun",
			"damageGun","MainGun"
		};
	};
	class uns_BTR_SPG9Skeleton: uns_BTR_turret_PKM //spg9 RR on rear, pk on codriver
	{
		skeletonInherit="uns_BTR_turret_PKM";
		skeletonBones[]= 
		{
// RR anims
			"OtocVez","",
			"OtocHlaven","OtocVez",
			"ammo_hide","OtocHlaven",
			"breach","OtocHlaven",
			"handle","OtocHlaven"
		};
	};
	class uns_BTR_MortarSkeleton: uns_BTR_turret_PKM //mortar on rear, pk on codriver
	{
		skeletonInherit="uns_BTR_turret_PKM";
		skeletonBones[]= 
		{
			"computer",	"OtocHlaven"
		};
	};

 

 

model cfg

	class uns_BTR_PK: uns_BTR 
	{
		skeletonName="uns_BTR_PKSkeleton";
		sectionsInherit="uns_BTR";
		sections[]=
		{
			"PKM_zasleh"
		};
		class Animations: Animations 
		{
// PKM Gun Animations
			class pk_MuzzleFlashROT
 			{
 				type="rotationZ";
 				source="muzzle_rot_pk";
 				selection="PKM_zasleh";
 				axis="PKM_barrel_axis";
 				sourceAddress="loop";
 				centerFirstVertex=true;
 				minValue=0;
 				maxValue=4;
 				angle0="rad 0";
 				angle1="rad 360";
 			};
			class PKM_Turret 
			{
				source="PKM_Turret";
				selection="PKM_OtocVez";
				axis="PKM_OsaVeze";
				type="rotationY";
				animPeriod=0;
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class PKM_Gun: PKM_Turret 
			{
				type="rotationX";
				source="PKM_Gun";
				selection="PKM_OtocHlaven";
				axis="PKM_OsaHlavne";
			};
			class PKM_magazine_hide
			{
				type="hide";
				source="PKM_reloadMagazine";
				selection="PKM_magazine";
				minValue=0; 
				maxValue=0.1;
				hideValue=1;
			};
			class PKM_trigger 
			{
				type = "rotationX";
				source = "PKM_reloadAnim";
				selection = "PKM_trigger";
				axis = "PKM_trigger_axis";
				minValue = 0;
				maxValue = 1;
				angle0 = "rad 0";
				angle1 = "rad 10";
			};
			class PKM_barrelrecoil_BEGIN
			{
				Type = "translation";
				Source = "PKM_recoil_source";
				Selection = "PKM_barrel";
				axis="PKM_barrel_axis";
				MinValue = 0.50;
				MaxValue = 0.80;
				MinPhase = 0.50;
				MaxPhase = 0.80;
				SourceAddress = "clamp";
				Offset0 = 0;
				Offset1 = 0.2;
			};
			class PKM_barrelrecoil_END: PKM_barrelrecoil_BEGIN
			{
				MinValue = 0.85;
				MaxValue = 1;
				MinPhase = 0.85;
				MaxPhase = 1;
				Offset1 = -0.2;
			}; 
			class PKM_feedtray_cover_up 
			{
				type="rotation";
				source="PKM_reloadMagazine";
				selection="PKM_topcover";
				axis="PKM_topcover_axis";
				minValue=0; 
				maxValue=0.1; 
				angle0="0";   
				angle1="rad -90"; 		
			};
			class PKM_feedtray_cover_down: PKM_feedtray_cover_up
			{
				minValue=0.9;
				maxValue=1;
				angle0="0";  
				angle1="rad 90";
			};
			class PKM_ammo_belt_rotation
			{
				type="rotationZ";
				source="PKM_ReloadAnim";
				selection="PKM_ammobelt";
				axis="PKM_ammobelt_axis";
				memory=1;
				sourceAddress="loop";
				minValue=0.000000;
				maxValue=1.000000;
				angle0=-0.087266;
				angle1=0.174533;
			};
			class PKM_ammobelt_reload
			{
				type="hide";
				source="PKM_reloadMagazine";
				selection="PKM_ammobelt";
				minValue=0;
				maxValue=1;				
				hideValue=0.1;
			};
			class PKM_Charging_handle_reload_begin
			{
				type="translation";
				source="PKM_reloadMagazine";
				memory = 1;
				animPeriod = 0;
				selection="PKM_charging_handle";
				axis="PKM_charging_handle_axis";
				minValue = 0.0;
				maxValue = 0.02;
				minPhase = 0.0;
				maxPhase = 0.02;
				offset0 = 0.0;
				offset1 = 0.5;
			};
			class PKM_Charging_handle_reload_end: PKM_Charging_handle_reload_begin
			{
				minValue = 0.05;
				maxValue = 0.07;
				minPhase = 0.05;
				maxPhase = 0.07;
				offset1 = -0.5;
			};
			class PKM_Bullet01 
			{
				type="hide";
				source="PKM_revolving";
				selection="PKM_bullet01";
				sourceAddress="mirror";
				minValue = -1;
				maxValue = 0;
				minphase = -1;
				maxphase = 0;
				hideValue = 0.94501;
			};
			class PKM_Bullet02: PKM_Bullet01 
			{
				selection="PKM_bullet02";
				hideValue = 0.95501;
			};
			class PKM_Bullet03: PKM_Bullet01 
			{
				selection="PKM_bullet03";
				hideValue = 0.96501;
			};
			class PKM_Bullet04: PKM_Bullet01 
			{
				selection="PKM_Bullet04";
				hideValue = 0.97501;
			};
			class PKM_Bullet05: PKM_Bullet01 
			{
				selection="PKM_Bullet05";
				hideValue = 0.98005004;
			};
			class PKM_Bullet06: PKM_Bullet01 
			{
				selection="PKM_Bullet06";
				hideValue = 0.99001003;
			};
		};
	};
	class uns_BTR_M18: uns_BTR_PK
	{
		skeletonName="uns_BTR_M18Skeleton";
		sectionsInherit="uns_BTR_PK";
		sections[]=
		{
			"G svetlo" //gunner light
		};
		class Animations: Animations 
		{
// M18 RR Gun anims
			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 uns_BTR_M40: uns_BTR_M18
	{
		skeletonName="uns_BTR_M40Skeleton";
		sectionsInherit="uns_BTR_M18";
		sections[]= {};
		class Animations: Animations 
		{
// M40 RR Gun anims
			class MainTurret 
			{
				type="rotationY";
				source="mainTurret";
				selection="MainTurret";
				axis="MainTurret_axis";
				memory=1;
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class dial1: MainTurret 
			{
				selection = "dial1";
				angle0 = "rad 3600";
				angle1 = "rad -3600";
			};
			class MainGun: MainTurret 
			{
				type="rotationX";
				source="mainGun";
				selection="MainGun";
				axis="MainGun_axis";
			};
			class dial2: MainGun 
			{
				selection = "dial2";
				angle0 = "rad 3600";
				angle1 = "rad -3600";
			};
//reload anims
			class magazine_hide 
			{
				type="hide";
				source="ReloadMagazine";
				selection="magazine";
				minValue=0;
				maxValue=1;
				minphase = 0.3;
				maxphase = 0.6;
				hideValue=0.6;
			};
			class breech_open 
			{
				type="rotation";
				source="ReloadMagazine";
				selection="breech";
				axis="breech_axis";
				minValue=0.25; 
				maxValue=0.4; 
				angle0="0";   
				angle1="rad -120";
			};
			class breech_close: breech_open 
			{
				minValue=0.6;
				maxValue=0.75;
				angle1="rad 120";
			};
			class breechblock_open 
			{
				type="rotation";
				source="ReloadMagazine";
				selection="breechblock";
				axis="breechblock_axis";
				minValue=0; 
				maxValue=0.25; 
				angle0="0";   
				angle1="rad -45";
			};
			class breechblock_close: breechblock_open 
			{
				minValue=0.75;
				maxValue=1;
				angle1="rad 45";
			};
			class breech_handle_open 
			{
				type="rotation";
				source="ReloadMagazine";
				memory = 1;
				selection="breechhandle";
				axis="breechhandle_axis";
				minValue = 0;
				maxValue = 0.25;
				angle0="0";   
				angle1="rad -170"; 
			};
			class breech_handle_close: breech_handle_open 
			{
				minValue = 0.75;
				maxValue = 1;
				angle1="rad 170"; 
			};
	// RR damage
			class damageGun	
			{
				type="hide";
				source="damage";
				selection="damageGun";
				minValue = 0.0;
				maxValue = 1.0;
				minPhase = 0.0;
				maxPhase = 1.0;
				hideValue = 1.0;
			};
		};
	};
	class uns_BTR_SPG9: uns_BTR_M18
	{
		skeletonName="uns_BTR_SPG9Skeleton";
		sectionsInherit="uns_BTR_M18";
		sections[]= {};
		class Animations: Animations 
		{
// RR Gun anims
			class ammo_hide 
			{
				type="hide";
				source="ReloadMagazine";
				selection="ammo_hide";
				minValue=0;
				maxValue=1;
				hidevalue = 0.1;
			};
			class breech_open 
			{
				type="rotation";
				source="ReloadMagazine";
				selection="breach";
				axis="breach_axis";
				minValue=0.25; 
				maxValue=0.4; 
				angle0="0";   
				angle1="rad 140";
			};
			class breech_close: breech_open 
			{
				minValue=0.6;
				maxValue=0.75;
				angle1="rad -140";
			};
			class breech_handle_open 
			{
				type="rotation";
				source="ReloadMagazine";
				memory = 1;
				selection="handle";
				axis="handle_axis";
				minValue = 0;
				maxValue = 0.25;
				angle0="0";   
				angle1="rad -90"; 
			};
			class breech_handle_close: breech_handle_open
			{
				minValue = 0.75;
				maxValue = 1;
				angle1="rad 90"; 
			};
		};
	};
	class uns_BTR_MORTAR: uns_BTR_M18
	{
		skeletonName="uns_BTR_MortarSkeleton";
		sectionsInherit="uns_BTR_M18";
		sections[]= {};
		class Animations: Animations 
		{
// Mortar anims
			class camElev
			{
				type="rotationX";
				source="camElev";
				selection="computer";
				axis="computer_axis";
				animPeriod=0;
				minValue="rad -360";
				maxValue="rad +360";
				angle0="rad -360";
				angle1="rad +360";
			};
			class camElev2: camElev
			{
				source="mainGun";
				angle0="rad +360";
				angle1="rad -360";
			};
		};
	};

 

config.cpp for cfg vehicles

	class uns_Type55_LMG: uns_Type55_MG_base
	{
		scope = 2;
		displayName = "Type 55 APC (PK)";
		model = "\uns_btr\uns_BTR_PK.p3d";
//etc
		class Turrets: Turrets
		{
			class MainTurret: MainTurret
			{
				primaryGunner = 0;
				primaryObserver = 0;
				proxyType = "CPGunner";
				gunnerName = "Gunner";
				proxyIndex = 2;
				commanding = -1;
				weapons[] = {"uns_pkt2"};
				magazines[] = {"uns_250Rnd_762x54_PKT","uns_250Rnd_762x54_PKT","uns_250Rnd_762x54_PKT","uns_250Rnd_762x54_PKT","uns_250Rnd_762x54_PKT"};
				selectionFireAnim = "PKM_zasleh";
				gunBeg = "PKM_usti_hlavne";
				gunEnd = "PKM_konec_hlavne";
				body = "PKM_Turret";
				gun = "PKM_Gun";
				memoryPointGunnerOptics = "PKM_gunnerview";
				animationSourceBody = "PKM_Turret";
				animationSourceGun = "PKM_Gun";
				gunnerLeftHandAnimName = "PKM_handle_L";
				gunnerRightHandAnimName = "PKM_handle_R";
				turretInfoType = "RscWeaponZeroing";
				discreteDistance[] = {100,200,300,400,500,600,700,800,900,1000,1100,1200};
				discreteDistanceInitIndex = 2;
				stabilizedInAxes = "StabilizedInAxesNone";
				gunnerAction = "gunner_standup01";
				gunnerInAction = "gunner_standup01";
				gunnerOpticsModel = "uns_compat\ca\weapons\optika_empty";
				initElev = 0;
				minElev = -18;
				maxElev = 55;
				minTurn = -55;
				maxTurn = 55;
				initTurn = 0;
				class ViewOptics
				{
					initAngleX = 0;
					minAngleX = -25;
					maxAngleX = 80;
					initAngleY = 0;
					minAngleY = -75;
					maxAngleY = 75;
					initFov = 0.4;
					minFov = 0.4;
					maxFov = 0.4;
					turretInfoType = "RscWeaponZeroing";
					discreteDistance[] = {100,200,300,400,500,600,700,800,900,1000,1100,1200};
					discreteDistanceInitIndex = 2;
				};
				class ViewGunner
				{
					initAngleX = 0;
					minAngleX = -25;
					maxAngleX = 80;
					initAngleY = 0;
					minAngleY = -65;
					maxAngleY = 65;
					initFov = 0.7;
					minFov = 0.7;
					maxFov = 0.7;
				};
			};
		};
		class AnimationSources: AnimationSources
		{
			class PKM_ReloadAnim
			{
				source = "reload";
				weapon = "uns_pkt2";
			};
			class PKM_ReloadMagazine: PKM_ReloadAnim
			{
				source = "reloadmagazine";
			};
			class PKM_Revolving: PKM_ReloadAnim
			{
				source = "revolving";
			};
			class muzzle_rot_pk: PKM_ReloadAnim
			{
				source = "ammorandom";
			};
		};
	};

/////////////////////////////////// m18  - pk works fine

	class uns_Type55_RR57: uns_Type55_LMG
	{
		displayName = "Type 55 APC (57mm Type36)";
		model = "\uns_btr\uns_BTR_M18.p3d";
		class Turrets: Turrets
		{
			class MainTurret: MainTurret
			{
				gunnerName = "Front Gunner";
				primaryGunner = 0;
				proxyType = "CPGunner";
				proxyIndex = 1;
				commanding = 1;
				gunnerAction = "driver_mid01";
				gunnerInAction = "driver_mid01";
				//inherits pkm from above
				gunnerLeftHandAnimName = "";
				gunnerRightHandAnimName = "";
			};
			class RR_turret: MainTurret
			{
				gunnerName = "Rear Gunner";
				primaryGunner = 1;
				proxyType = "CPGunner";
				proxyIndex = 2;
				commanding = 2;
				gunnerForceOptics = 0;
				gunnerOutOpticsShowCursor = 0;
				stabilizedInAxes = 0;
				soundServo[] = {"\uns_compat\ca\sounds\vehicles\servos\turret-1",0.0316228,1,15};
//				soundServo[] = {"A3\Sounds_F\vehicles\armor\noises\servo_armor_comm",0.017783,1.0,15};
				weapons[] = {"uns_Type36"};
				magazines[] = {"uns_Type36_HEATmag","uns_Type36_HEATmag","uns_Type36_HEATmag","uns_Type36_HEATmag","uns_Type36_HEATmag","uns_Type36_HEATmag",
				"uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_HEmag","uns_Type36_WPmag","uns_Type36_WPmag","uns_Type36_WPmag","uns_Type36_WPmag","uns_Type36_WPmag","uns_Type36_WPmag"};
				gunBeg = "usti hlavne";
				gunEnd = "konec hlavne";
				body = "MainTurret";
				gun = "MainGun";
				animationSourceBody = "MainTurret";
				animationSourceGun = "MainGun";
				selectionFireAnim = "zasleh";
				memoryPointGunnerOptics = "gunnerview";
				gunnerLeftHandAnimName = "";
				gunnerRightHandAnimName = "";
				gunnerAction = "uns_btr_m18_gunner_2";//"BTR40_Gunner_EP1";
				gunnerInAction = "uns_btr_m18_gunner_2";
				ejectDeadGunner = 1;
				gunnerOpticsModel = "uns_compat\ca\weapons\2Dscope_SPG_4";
				minTurn = -360;
				maxTurn = 360;
				maxElev = 40;
				class ViewOptics: ViewOptics
				{
					initFov = 0.111;
					minFov = 0.111;
					maxFov = 0.111;
				};
			};
		};
		class AnimationSources: AnimationSources
		{
			class reloadMagazine
			{
				source = "reloadmagazine";
				weapon = "uns_Type36";
			};
			//inherits pkm anims from above
		};
	};

/////////////////////////////////// spg9  - pk muz flash fails to show up

	class uns_Type55_RR73: uns_Type55_RR57
	{
		displayName = "Type 55 APC (73mm SPG9)";
		model = "\uns_btr\uns_BTR_SPG9.p3d";
		class Turrets: Turrets
		{
			class MainTurret: MainTurret {};
			class RR_turret: MainTurret
			{
				gunnerName = "Rear Gunner";
				primaryGunner = 1;
				proxyType = "CPGunner";
				proxyIndex = 2;
				commanding = 2;
				gunnerForceOptics = 0;
				gunnerOutOpticsShowCursor = 0;
				weapons[] = {"uns_SPG9"};
				magazines[] = {
					"uns_OG9_HEmag","uns_OG9_HEmag","uns_OG9_HEmag","uns_OG9_HEmag",
					"uns_OG9_HEmag","uns_OG9_HEmag","uns_OG9_HEmag","uns_OG9_HEmag",
					"uns_OG9_HEmag","uns_OG9_HEmag","uns_PG9_ATmag","uns_PG9_ATmag",
					"uns_PG9_ATmag","uns_PG9_ATmag","uns_PG9_ATmag","uns_PG9_ATmag",
					"uns_PG9_ATmag","uns_PG9_ATmag","uns_PG9_ATmag","uns_PG9_ATmag"
				};
				gunBeg = "RR_gunBeg";
				gunEnd = "RR_gunEnd";
				body = "MainTurret";
				gun = "MainGun";
				memoryPointGunnerOptics = "gunnerview";
				animationSourceBody = "MainTurret";
				animationSourceGun = "MainGun";
				stabilizedInAxes = 0;
				soundServo[] = {"A3\Sounds_F\vehicles\armor\noises\servo_armor_comm", 0.017783, 1.000000, 15};
				gunnerAction = "uns_btr_m18_gunner";
				gunnerInAction = "uns_btr_m18_gunner";
				ejectDeadGunner = 1;
				gunnerOpticsModel = "uns_compat\ca\weapons\2Dscope_SPG_4";
				minTurn = -360;
				maxTurn = 360;
				initTurn = 0;
				minElev = -20;
				maxElev = 70;
				initElev = 0;
				class ViewGunner
				{
					initAngleX = 5;
					minAngleX = -30;
					maxAngleX = 30;
					initAngleY = 0;
					minAngleY = -100;
					maxAngleY = 100;
					initFov = 0.700000;
					minFov = 0.250000;
					maxFov = 1.100000;
				};
				class ViewOptics
				{
					initAngleX = 0;
					minAngleX = -30;
					maxAngleX = 30;
					initAngleY = 0;
					minAngleY = -100;
					maxAngleY = 100;
					initFov = 0.111000;
					minFov = 0.111000;
					maxFov = 0.111000;
				};
			};
		};
		class AnimationSources: AnimationSources
		{
			class ReloadMagazine
			{
				source = "reload";
				weapon = "uns_SPG9";
				animPeriod = 5;
			};
		};
	};


/////////////////////////////////// m40  - pk muz flash fails to show up

	class uns_Type55_M40: uns_Type55_RR57
	{
		displayName = "Type 55 APC (M40)";
		model = "\uns_btr\uns_BTR_M40.p3d";
		class Turrets: Turrets
		{
			class MainTurret: MainTurret {};
			class RR_turret: MainTurret
			{
				gunnerName = "Rear Gunner";
				primaryGunner = 1;
				proxyType = "CPGunner";
				proxyIndex = 2;
				commanding = 2;
				gunnerForceOptics = 0;
				gunnerOutOpticsShowCursor = 0;
				weapons[] = {"uns_M40RR"};
				magazines[] = {
					"uns_M40_HEATmag","uns_M40_HEATmag","uns_M40_HEATmag","uns_M40_HEATmag",
					"uns_M40_HEmag","uns_M40_HEmag","uns_M40_HEmag","uns_M40_HEmag",
					"uns_M40_APERSmag","uns_M40_APERSmag","uns_M40_APERSmag","uns_M40_APERSmag",
					"uns_M40_WPmag","uns_M40_WPmag"
				};
				gunBeg = "usti hlavne";
				gunEnd = "konec hlavne";
				body = "MainTurret";
				gun = "MainGun";
				memoryPointGunnerOptics = "gunnerview";
				animationSourceBody = "MainTurret";
				animationSourceGun = "MainGun";
				stabilizedInAxes = 0;
				soundServo[] = {"A3\Sounds_F\vehicles\armor\noises\servo_armor_comm", 0.017783, 1.000000, 15};
				gunnerAction = "uns_btr_m18_gunner_2";
				gunnerInAction = "uns_btr_m18_gunner_2";
				ejectDeadGunner = 1;
				gunnerOpticsModel = "uns_compat\ca\weapons\2Dscope_SPG_4";
				minTurn = -360;
				maxTurn = 360;
				initTurn = 0;
				minElev = -20;
				maxElev = 70;
				initElev = 0;
				class ViewGunner
				{
					initAngleX = 5;
					minAngleX = -30;
					maxAngleX = 30;
					initAngleY = 0;
					minAngleY = -100;
					maxAngleY = 100;
					initFov = 0.700000;
					minFov = 0.250000;
					maxFov = 1.100000;
				};
				class ViewOptics
				{
					initAngleX = 0;
					minAngleX = -30;
					maxAngleX = 30;
					initAngleY = 0;
					minAngleY = -100;
					maxAngleY = 100;
					initFov = 0.111000;
					minFov = 0.111000;
					maxFov = 0.111000;
				};
			};
		};
		class AnimationSources: AnimationSources
		{
			class ReloadMagazine
			{
				source = "ReloadMagazine";
				weapon = "uns_M40RR";
				animPeriod = 5;
			};
		};
	};

/////////////////////////////////// mortar  - pk muz flash fails to show up

	class uns_Type55_mortar: uns_Type55_LMG
	{
		displayName = "Type 55 APC (82mm Mortar)";
		model = "\uns_btr\uns_BTR_mortar.p3d";
		class Turrets: Turrets
		{
			class MainTurret: MainTurret
			{
				gunnerName = "Front Gunner";
				primaryGunner = 0;
				proxyType = "CPGunner";
				proxyIndex = 1;
				commanding = 1;
				gunnerAction = "driver_mid01";
				gunnerInAction = "driver_mid01";
				gunnerLeftHandAnimName = "";
				gunnerRightHandAnimName = "";
			};
			class Mortar_turret: MainTurret
			{
				gunnerName = "Rear Gunner";
				primaryGunner = 1;
				proxyType = "CPGunner";
				proxyIndex = 2;
				commanding = 2;
//weapons
				weapons[] = {"uns_M1941_82mm_Mortar"};
				magazines[] = {
				"uns_8Rnd_82mmHE_M1941","uns_8Rnd_82mmHE_M1941","uns_8Rnd_82mmHE_M1941",
				"uns_8Rnd_82mmWP_M1941",
				"uns_8Rnd_82mmSMOKE_M1941",
				"uns_8Rnd_82mmILLUM_M1941"};
				gunBeg = "usti hlavne";
				gunEnd = "konec hlavne";
				animationSourceBody = "MainTurret";
				animationSourceGun = "MainGun";
				body = "MainTurret";
				gun = "MainGun";
				gunnerLeftHandAnimName = "";
				gunnerRightHandAnimName = "";
//crew
				gunnerAction = "Mortar_01_F_Turret";
				gunnerInAction = "Mortar_01_F_Turret";
				ejectDeadGunner = 1;
//handling
				stabilizedInAxes = 0;
				soundServo[] = {"A3\Sounds_F\vehicles\armor\noises\servo_armor_comm",0.0316228,1,15};
//optics
				animationSourceCamElev = "camElev";
				turretInfoType = "RscWeaponRangeArtillery";
				elevationMode = 3;
				memoryPointGunnerOptics	= "computer";
				memoryPointGunnerOutOptics = "gunnerview";
				discreteDistanceCameraPoint[] = {"eye"};
				cameraDir = "look";
				initCamElev = 0;
				minCamElev = -35;
				maxCamElev = 35;
				gunnerForceOptics = 1;
				gunnerOpticsModel = "uns_compat\ca\weapons\2Dscope_SPG_4";
				gunnerOutOpticsShowCursor = 0;
				minTurn = -360;
				maxTurn = 360;
				maxElev = 40;
				class ViewOptics: ViewOptics
				{
					initFov = 0.111;
					minFov = 0.111;
					maxFov = 0.111;
					turretInfoType = "RscWeaponRangeArtillery";
				};
			};
		};
		class AnimationSources: AnimationSources {};
	};

 

Share this post


Link to post
Share on other sites

in your cfgweapons make sure you do not use shotFromTurret=true;

https://community.bistudio.com/wiki/CfgWeapons_Config_Reference#shotFromTurret.3Dfalse

Not sure what other purpose that parameter has, but it disables the hardcoded flash functionality...

if thats not the case then i dont really know... looks ok so far. If you have trouble with the hardcoded muzzle anim system you could always create custom animation classes that use the reload sources from the guns to drive a proxy hide animations.

 

Share this post


Link to post
Share on other sites

thanks man

 

the weapon used is the same in all of the mainturret turrets in each vehicle - uns_pkt.

this weapon works fine in the pk version uns_btr_lmg and the m18 recoilless version with pk in codriver (mainturret) - uns_btr_rr57

the three non working versions are clones of the uns_btr_m18 but with different weapons in their secondary turret (e.g. spg9, m40, mortar)

 

afaik shotfromturret is used to manage cannon and mg's operating in the SAME turret (e.g. bmp3). in this case, the M18 / M40 etc are in a second /child turret. you can see that my pk turrets all inherit from a working mainturret with uns_pkt weapon equipped.

 

  • the pk flash shows up correctly in buldozer for each vehicle
  • the flash shows up correctly in game for the parent classes uns_btr_lmg and uns_btr_rr57
  • config and model.cfg inheritances are generic for the pk throughout these vehicles, except for the uns_btr_lmg which has handle anims added.

my only remaining theories are:

1. the pk muzzle flash proxy in the non-working vehicles is somehow corrupted (i wil ltry completely replacing it in one non-working model)

2. the non-working models have additional selections parenting or overlapping pkm_zasleh (e.g. damagegun or damagehide etc) which break the hide anim (cutting the pkm_zasleh to an edit lod, they have exact same selections attached to the proxy that the working models have so this is unlikely)

 

anything else i can try?

Share this post


Link to post
Share on other sites

hmmm i am now wondering if incorrectly applied autocenter properties on the vehicle is making the muzzle flash appear under the ground, hence seeing some light fx on the broken versions... testing - nope that wasn't it.

 

ok i have now deleted the muzzle flashes from the 3 bad vehicles, and replaced with the working one from the m18. still does not work

 

vids:

this shows the BTR_m18 with working pk muzzle flash
then the non-working BTR_m40 with non-working pk muzzle flash (note the light fx shows just not the actual model of the flash)
then the non-working BTR_mortar with non-working pk muzzle flash

 

 

this shows the BTR_m18 with working pk muzzle flash in buldozer

 

this shows the BTR_mortar with apparently working pk muzzle flash in buldozer - but it fails in-game

 

Share this post


Link to post
Share on other sites

PKM_zasleh is part of

 

PKM_otochlaven

PKM_otocvez

zbytek

 

in each model

 

i am so effin stumped why they don't work.

Share this post


Link to post
Share on other sites

Two suggestions:

 

1) Check your inheritance is as you want it

uns_Type55_RR73 \ RR_turret is inheriting selectionFireAnim = "PKM_zasleh" from MainTurret

whereas 

uns_Type55_RR57 \ RR_turret is using selectionFireAnim = "zasleh"

 

So should it be?

class uns_Type55_RR73 : uns_Type55_RR57 {
	class Turrets : Turrets	{
		class MainTurret : MainTurret {};
		class RR_turret : RR_turret {...};
	};
};

 

2. Try explicitly defining selectionFireAnim = "zasleh"; in each turret, as there are some odd inheritance issues in some classes.

 

 

For reference, this is your inheritance of the selectionFireAnim's

 

class uns_Type55_LMG : uns_Type55_MG_base {
	class Turrets : Turrets {
		class MainTurret : MainTurret {
			selectionFireAnim = "PKM_zasleh";
		};
	};
};

// working
class uns_Type55_RR57 : uns_Type55_LMG {
	class Turrets : Turrets	{
		class MainTurret : MainTurret {}
		class RR_turret : MainTurret {
			selectionFireAnim = "zasleh";
		};
	};
};

// broken
class uns_Type55_RR73 : uns_Type55_RR57 {
	class Turrets : Turrets	{
		class MainTurret : MainTurret {};
		class RR_turret : MainTurret {};
	};
};

 

Share this post


Link to post
Share on other sites

thanks for replying - i appreciate any help here - been on it all day!

 

just to clarify

class uns_Type55_LMG : uns_Type55_MG_base {
	class Turrets : Turrets {
		class MainTurret : MainTurret {
			selectionFireAnim = "PKM_zasleh"; //this is the pkm turret, correct flash selection
		};
	};
};

// working
class uns_Type55_RR57 : uns_Type55_LMG {
	class Turrets : Turrets	{
		class MainTurret : MainTurret {}  //this is the pkm turret, assume correct flash selection inherited
		class RR_turret : MainTurret {
			selectionFireAnim = "zasleh";  //this is the recoilless rifle turret,no flash selection required
		};
	};
};

// broken
class uns_Type55_RR73 : uns_Type55_RR57 {
	class Turrets : Turrets	{
		class MainTurret : MainTurret {};  //this is the pkm turret, assume correct flash selection inherited
		class RR_turret : MainTurret {};   //this is the recoilless rifle turret, no flash selection required - but it is not defined, SO MAYBE THIS IS CAUSING THE ISSUE! will check
	};
};

 

Share this post


Link to post
Share on other sites

yep that was it! thanks Apollo - i owe you a crate mate.

 

i was so busy looking upstream at the inheritances i forgot that if a DOWNSTREAM weapon inherits the same flash from your turret it will bugger it up.

 

awesome - thank you so much!

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

×