Jump to content
Sign in to follow this  
Night515

Cannot retexture gear after Personal Protection update

Recommended Posts

Up until now, I've been able to retexture plate carriers for NATO without a problem. However, after the Personal Protection update rolled out on devbranch, I haven't been able to change textures for the "V_PlateCarrier1_rgr", "V_PlateCarrier2_rgr", "V_PlateCarrierGL_rgr", and "V_PlateCarrierSpec_rgr".

 

CfgWeapons_NATO:

/// Vests

	class V_PlateCarrier1_rgr: Vest_NoCamo_Base
	{
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "V_PlateCarrier1_rgr";
		scope = 2;
		displayName = "$STR_A3_V_PlateCarrier1_rgr0";
		picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
		model = "\A3\Characters_F\BLUFOR\equip_b_vest02";
		descriptionShort = "$STR_A3_SP_AL_III";
		hiddenSelections[] = {"camo"};
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\vests_rgr_co.paa"};
		
		class ItemInfo: VestItem
		{
			uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02";
			containerClass = "Supply140";
			mass = 80;
			hiddenSelections[] = {"camo"};

			class HitpointsProtectionInfo
			{
				class Chest
				{
					HitpointName = "HitChest";
					Armor = 16;
					PassThrough = 0.3;
				};
				
				class Diaphragm
				{
					HitpointName = "HitDiaphragm";
					Armor = 16;
					PassThrough = 0.3;
				};
				
				class Body
				{
					hitpointName = "HitBody";
					passThrough = 0.3;
				};
			};
		};
	};
	
	class V_PlateCarrier1_mtp: V_PlateCarrier1_rgr
	{
		author = "$STR_A3_Night515";
		_generalMacro = "V_PlateCarrier1_mtp";
		displayName = "$STR_A3_V_PlateCarrier1_mtp0";
		picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_mtp_CA.paa";
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\vests_mcamo_co.paa"};
	};
	
	class V_PlateCarrier2_rgr: V_PlateCarrier1_rgr
	{
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "V_PlateCarrier2_rgr";
		scope = 2;
		displayName = "$STR_A3_V_PlateCarrier2_rgr0";
		picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_2_CA.paa";
		model = "\A3\Characters_F\BLUFOR\equip_b_vest01.p3d";
		descriptionShort = "$STR_A3_SP_AL_IV";
		hiddenSelections[] = {"camo"};
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\vests_rgr_co.paa"};
		
		class ItemInfo: VestItem
		{
			uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest01";
			containerClass = "Supply140";
			mass = 100;
			hiddenSelections[] = {"camo"};

			class HitpointsProtectionInfo
			{
				class Chest
				{
					HitpointName = "HitChest";
					Armor = 20;
					PassThrough = 0.2;
				};
				
				class Diaphragm
				{
					HitpointName = "HitDiaphragm";
					Armor = 20;
					PassThrough = 0.2;
				};
				
				class Body
				{
					hitpointName = "HitBody";
					passThrough = 0.2;
				};
			};
		};
	};
	
	class V_PlateCarrier2_mtp: V_PlateCarrier2_rgr
	{
		author = "$STR_A3_Night515";
		_generalMacro = "V_PlateCarrier2_mtp";
		displayName = "$STR_A3_V_PlateCarrier2_mtp0";
		picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_2_mtp_CA.paa";
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\vests_mcamo_co.paa"};
	};
	
	class V_PlateCarrierRecon_rgr: V_PlateCarrier1_rgr
	{
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "V_PlateCarrierRecon_rgr";
		scope = 2;
		picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa";
		displayName = "$STR_A3_V_PlateCarrier1_rgr_V_PlateCarrier_Kerry0";
		model = "\A3\Characters_F_EPA\BLUFOR\equip_b_vest_kerry.p3d";
		hiddenSelections[] = {"camo"};
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\vests_rgr_co.paa"};
		
		class ItemInfo: VestItem
		{
			uniformModel = "\A3\Characters_F_EPA\BLUFOR\equip_b_vest_kerry.p3d";
			containerClass = "Supply120";
			mass = 80;
			hiddenSelections[] = {"camo"};
		};
	};
	
	class V_PlateCarrierRecon_mtp: V_PlateCarrierRecon_rgr
	{
		author = "$STR_A3_Night515";
		_generalMacro = "V_PlateCarrierRecon_mtp";
		displayName = "$STR_A3_V_PlateCarrierRecon_mtp0";
		picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_mtp_CA.paa";
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\vests_mcamo_co.paa"};
	};
	
	class V_PlateCarrierGL_rgr: Vest_NoCamo_Base
	{
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "V_PlateCarrierGL_rgr";
		scope = 2;
		displayName = "$STR_A3_V_PlateCarrierGL_rgr0";
		picture = "\A3\Characters_F_Mark\Data\UI\icon_carrier_gl_rig_grn.paa";
		model = "\A3\Characters_F\BLUFOR\equip_b_carrier_gl_rig.p3d";
		overviewName = "$STR_B_SOLDIER_GL_F0";
		overviewPicture = "\A3\Data_F_Mark\Images\watermarkInfo_page09_ca.paa";
		descriptionShort = "$STR_A3_SP_ER";
		hiddenSelections[] = {"camo"};
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\carrier_gl_rig_rgr_co.paa"};
		
		class ItemInfo: VestItem
		{
			uniformModel = "\A3\Characters_F\BLUFOR\equip_b_carrier_gl_rig.p3d";
			containerClass = "Supply140";
			mass = 100;
			hiddenSelections[] = {"camo"};

			class HitpointsProtectionInfo
			{
				class Neck
				{
					hitpointName = "HitNeck";
					armor = 8;
					passThrough = 0.5;
				};
				
				class Arms
				{
					hitpointName = "HitArms";
					armor = 8;
					passThrough = 0.5;
				};
				
				class Chest
				{
					hitpointName = "HitChest";
					armor = 94;
					passThrough = 0.6;
				};
				
				class Diaphragm
				{
					hitpointName = "HitDiaphragm";
					armor = 94;
					passThrough = 0.6;
				};
				
				class Abdomen
				{
					hitpointName = "HitAbdomen";
					armor = 16;
					passThrough = 0.3;
				};
				
				class Pelvis
				{
					hitpointName = "HitPelvis";
					armor = 16;
					passThrough = 0.3;
				};
				
				class Body
				{
					hitpointName = "HitBody";
					passThrough = 0.6;
				};
			};
		};
	};
	
	class V_PlateCarrierGL_mtp: V_PlateCarrierGL_rgr
	{
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "V_PlateCarrierGL_mtp";
		displayName = "$STR_A3_V_PlateCarrierGL_mtp0";
		picture = "\A3\Characters_F_Mark\Data\UI\icon_carrier_gl_rig_mtp.paa";
		DLC = "Mark";
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\carrier_gl_rig_mcamo_co.paa"};
	};
	
	class V_PlateCarrierSpec_rgr: Vest_NoCamo_Base
	{
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "V_PlateCarrierSpec_rgr";
		scope = 2;
		displayName = "$STR_A3_V_PlateCarrierSpec_rgr0";
		picture = "\A3\Characters_F_Mark\Data\UI\icon_carrier_spec_rig_grn.paa";
		model = "\A3\Characters_F\BLUFOR\equip_b_carrier_spec_rig.p3d";
		DLC = "Mark";
		descriptionShort = "$STR_A3_SP_AL_V";
		hiddenSelections[] = {"camo"};
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\carrier_gl_rig_rgr_co.paa"};
		
		class ItemInfo: VestItem
		{
			uniformModel = "\A3\Characters_F\BLUFOR\equip_b_carrier_spec_rig.p3d";
			containerClass = "Supply100";
			mass = 120;
			hiddenSelections[] = {"camo"};

			class HitpointsProtectionInfo
			{
				class Neck
				{
					hitpointName = "HitNeck";
					armor = 8;
					passThrough = 0.5;
				};
				
				class Arms
				{
					hitpointName = "HitArms";
					armor = 8;
					passThrough = 0.5;
				};
				
				class Chest
				{
					hitpointName = "HitChest";
					armor = 24;
					passThrough = 0.1;
				};
				
				class Diaphragm
				{
					hitpointName = "HitDiaphragm";
					armor = 24;
					passThrough = 0.1;
				};
				
				class Body
				{
					hitpointName = "HitBody";
					passThrough = 0.1;
				};
			};
		};
	};
	
	class V_PlateCarrierSpec_mtp: V_PlateCarrierSpec_rgr
	{
		author = "$STR_A3_Bohemia_Interactive";
		_generalMacro = "V_PlateCarrierSpec_mtp";
		displayName = "$STR_A3_V_PlateCarrierSpec_mtp0";
		picture = "\A3\Characters_F_Mark\Data\UI\icon_carrier_spec_rig_mtp.paa";
		DLC = "Mark";
		hiddenSelectionsTextures[] = {"\A3_Aegis_F\Aegis\characters\BLUFOR\data\carrier_gl_rig_mcamo_co.paa"};
	};

CfgWeapons:

class CfgWeapons
{
	class Uniform_Base;
	class UniformItem;
	class Vest_NoCamo_Base;
	class Vest_Camo_Base;
	class VestItem;
	class V_BandollierB_khk;
	class V_Chestrig_khk;
	class ItemCore;
	class HeadgearItem;
	class H_HelmetB_plain_mcamo;
	class H_Booniehat_khk_hs;
	class H_Cap_oli_hs;
	
	#include "CfgWeapons_CTRG.hpp"
	#include "CfgWeapons_GUER.hpp"
	#include "CfgWeapons_NATO.hpp"
};

And CfgPatches:

// Config

class CfgPatches 
{
	class A3_Aegis_F_characters_BLUFOR
	{
		units[] = {};
		weapons[] = {};
		requiredVersion = 0.1;
		requiredAddons[] = {"A3_Characters_F","A3_Characters_F_beta","A3_Characters_F_Gamma","A3_Characters_F_Bootcamp","A3_Characters_F_EPA","A3_Characters_F_EPB","A3_Characters_F_EPC","A3_Characters_F_Mark"};
	};
};

Anything I'm doing wrong?

Share this post


Link to post
Share on other sites

The config seems fine (besides a couple of things, mentioned below). I wonder, do you have those configs locally? If so, do you launch the game with a -filepatching parameter?

 

About the code: you needlessly copy a lot of stuff from the original class; basically just having the hiddenSelections[], hiddenSelectionsTextures[] in the class itself, and hiddenSelections[] in ItemInfo subclass would do the trick (unless you want to change something else as well). Also, be careful with localization strings: if you use them (e.g.: $STR_A3_V_PlateCarrier1_rgr0), do so without quotation marks.

Share this post


Link to post
Share on other sites

The config seems fine (besides a couple of things, mentioned below). I wonder, do you have those configs locally? If so, do you launch the game with a -filepatching parameter?

 

About the code: you needlessly copy a lot of stuff from the original class; basically just having the hiddenSelections[], hiddenSelectionsTextures[] in the class itself, and hiddenSelections[] in ItemInfo subclass would do the trick (unless you want to change something else as well). Also, be careful with localization strings: if you use them (e.g.: $STR_A3_V_PlateCarrier1_rgr0), do so without quotation marks.

 

Could the issue be that the subclass is VestItem: ItemInfo rather than ItemInfo: ItemInfo? The latter is what it appears as in the characters_f config.

Share this post


Link to post
Share on other sites

ItemInfo: VestItem, rather. But as a matter of fact, could be. It doesn't seem to me it should matter in this case, but when I tested it a bit, I encountered some problems, so it might be better to inherit your ItemInfo subclass from ItemInfo instead of VestItem. Then it should properly take the content of ItemInfo subclass of the vests' parent classes.

Share this post


Link to post
Share on other sites

ItemInfo: VestItem, rather. But as a matter of fact, could be. It doesn't seem to me it should matter in this case, but when I tested it a bit, I encountered some problems, so it might be better to inherit your ItemInfo subclass from ItemInfo instead of VestItem. Then it should properly take the content of ItemInfo subclass of the vests' parent classes.

I tried ItemInfo but to no avail. I also tested my addon on Stable but the vests didn't work. Oddly, in the Config Viewer, it shows it as having no hiddenSelectionsTextures or hiddenSelections. And another edit of the V_PlateCarrier3_rgr didn't work period, with no code at all in the viewer.

Share this post


Link to post
Share on other sites

To be sure, I'll ask again: if you have your mod in local data, do you launch the game with -filepatching parameter? Besides that, I'd kindly ask you to send me your mod (in PM, I guess), so I can try it here.

Share this post


Link to post
Share on other sites

To be sure, I'll ask again: if you have your mod in local data, do you launch the game with -filepatching parameter? Besides that, I'd kindly ask you to send me your mod (in PM, I guess), so I can try it here.

I'm not launching the game w/ the -filepatching parameter. Also, I'll PM the mod + some of the unbinarized code.

Share this post


Link to post
Share on other sites

Update! After moving the BLUFOR vests into the main config file, everything works now!

 

Thanks for the help. :)

Share this post


Link to post
Share on other sites

Glad to help. :) I guess the duplicity of declaration of some classes, overlooked due to the includes, was eventually sorted out by merging the config files you mention.

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  

×