Jump to content
Vespa

Arma3 Characters Modding Tutorial

Recommended Posts

i dont wanne keep spamming, but ofcource thx! but i think when i added the Beret, it cause a script fault, like i can spawn my 3 units but they dont have a helmet or Beret, or even a Vest? but thx for Faction!
Post your full config if you are still getting errors (use the [noParse]

Share this post


Link to post
Share on other sites

Hey, yeah here is the config still getting errors with the Config, ill remade it but it gives an error on backpack U Instead of a } or maybe more dident test it yet, today

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 
}; 

class CfgPatches 
{ 
   class DutchUnits_config  
   { 
       units[] = {}; 
       weapons[] = {}; 
       requiredVersion = 0.1; 
       requiredAddons[] = {"A3_Characters_F","A3_Characters_F_BLUFOR"}; 
   }; 
};

class cfgFactionClasses 
{ 
   class DutchUnits_Faction_01 
   {  
       displayName = "Nederlandse Gevechts Eenheden";  
       priority = 2; // Position in list.  
       side = 1; // Opfor = 0, Blufor = 1, Indep = 2.  
       icon = "{}"; //Nato icon.  
   };  
};   

class CfgVehicles 
{ 

   class B_Kitbag_Base;


   class DutchUnits_B_Kitbag_01: B_Kitbag_Base 
   { 
       scope = 2; 
       picture = "\A3\Weapons_F\ammoboxes\bags\data\ui\icon_B_C_Kitbag_mcamo"; 
       displayName = "DPM Woodland Gevechts Tas"; 
       hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_fast_mcamo_co.paa"}; 
   };

   class DutchUnits_B_Kitbag_02: B_Kitbag_Base 
   { 
       scope = 2; 
       picture = "\A3\Weapons_F\ammoboxes\bags\data\ui\icon_B_C_Kitbag_mcamo"; 
       displayName = "DPM Desert Gevechts Tas"; 
       hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_fast_mcamo_co.paa"}; 
   };

   class Dutch Units_B_Kitbag_03: B_Kitbag_Base 
   { 
       scope = 2; 
       picture = "\A3\Weapons_F\ammoboxes\bags\data\ui\icon_B_C_Kitbag_mcamo"; 
       displayName = "11 LMB Gevechts Tas"; 
       hiddenSelectionsTextures[] = {"\A3\weapons_f\ammoboxes\bags\data\backpack_fast_mcamo_co.paa"}; 
   }; 

   class B_Soldier_base_F; 

   class DutchUnits_Soldier_F_01 : B_Soldier_base_F 
   { 
       _generalMacro = "B_Soldier_F"; 
       scope = 2; 
       displayName = "DPM Woodland"; 
       nakedUniform = "U_BasicBody"; 
       uniformClass = "DutchUnits_Uniform_01";
       backpack = "DutchUnits_B_Kitbag_01";
       faction = "DutchUnits_Faction_01";  
       hiddenSelections[] = {"Camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\DPMWoodland_co.paa"}; 
       linkedItems[] = {"DutchUnits_Vest_01", "DutchUnits_Helmet_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; 
       respawnLinkedItems[] = {"DutchUnits_Vest_01", "DutchUnits_Helmet_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; 
   }; 
   class DutchUnits_Soldier_F_02 : B_Soldier_base_F 
   { 
       _generalMacro = "B_Soldier_F"; 
       scope = 2; 
       displayName = "DPM Desert"; 
       nakedUniform = "U_BasicBody"; 
       uniformClass = "DutchUnits_Uniform_02";
       backpack = "DutchUnits_B_Kitbag_02";
       faction = "DutchUnits_Faction_01";  
       hiddenSelections[] = {"Camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\DPMDesert_co.paa"}; 
       linkedItems[] = {"DutchUnits_Vest_02", "DutchUnits_Helmet_02", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; 
       respawnLinkedItems[] = {"DutchUnits_Vest_02", "DutchUnits_Helmet_02", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; 
   }; 
   class DutchUnits_Soldier_F_03 : B_Soldier_base_F 
   { 
       _generalMacro = "B_Soldier_F"; 
       scope = 2; 
       displayName = "11 LMB"; 
       nakedUniform = "U_BasicBody"; 
       uniformClass = "DutchUnits_Uniform_03";
       backpack = "DutchUnits_B_Kitbag_03";
       faction = "DutchUnits_Faction_01";  
       hiddenSelections[] = {"Camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\11LMB_co.paa"}; 
       linkedItems[] = {"DutchUnits_Vest_03", "DutchUnits_Beret_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; 
       respawnLinkedItems[] = {"DutchUnits_Vest_03", "DutchUnits_Beret_01", "NVGoggles", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio"}; 
   }; 
};

   class cfgWeapons 

   class Uniform_Base; 
   class UniformItem; 

   class DutchUnits_Uniform_01 : Uniform_Base 
   { 
       scope = 2; 
       displayName = "DPM Woodland"; 
       picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa"; 
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver"; 
       class ItemInfo : UniformItem  
       { 
           uniformModel = "-"; 
           uniformClass = "DutchUnits_Soldier_F_01"; 
           containerClass = "Supply20"; 
           mass = 80; 
       }; 
   }; 
   class DutchUnits_Uniform_02 : Uniform_Base 
   { 
       scope = 2; 
       displayName = "DPM Desert"; 
       picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa"; 
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver"; 
       class ItemInfo : UniformItem  
       { 
           uniformModel = "-"; 
           uniformClass = "DutchUnits_Soldier_F_02"; 
           containerClass = "Supply20"; 
           mass = 80; 
       }; 
   }; 
   class DutchUnits_Uniform_03 : Uniform_Base 
   { 
       scope = 2; 
       displayName = "11 LMB"; 
       picture = "\A3\characters_f\data\ui\icon_U_B_CombatUniform_mcam_ca.paa"; 
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver"; 
       class ItemInfo : UniformItem  
       { 
           uniformModel = "-"; 
           uniformClass = "DutchUnits_Soldier_F_03"; 
           containerClass = "Supply20"; 
           mass = 80; 
       }; 
   }; 

   class ItemCore; 
   class HeadgearItem; 

   class DutchUnits_Helmet_01 : ItemCore 
   { 
       scope = 2; 
       weaponPoolAvailable = 1; 
       displayName = "Gevechts Helm #1"; 
       picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; 
       model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; 
       hiddenSelections[] = {"camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\Dutch_WHelmet.paa"}; 
       class ItemInfo : HeadgearItem 
       { 
           mass = 100; 
           uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; 
           modelSides[] = {3, 1}; 
           armor = 3*0.5; 
           passThrough = 0.8; 
           hiddenSelections[] = {"camo"}; 
       }; 
   };
   class DutchUnits_Beret_01: ItemCore 
   { 
       scope = 2; 
       weaponPoolAvailable = 1; 
       displayName = "11 LMB Rode Baret"; 
       picture = "\A3\characters_f\Data\UI\icon_H_Beret_blk_CA.paa"; 
       model = "\A3\Characters_F\Common\headgear_beret01"; 
       hiddenSelections[] = {"camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\Dutch_Beret.paa"}; 
       class ItemInfo: ItemInfo 
       { 
           mass = 6; 
           allowedSlots[] = {801,901,701,605}; 
           uniformModel = "\A3\Characters_F\Common\headgear_beret01"; 
           modelSides[] = {6}; 
           armor = "3*0"; 
           passThrough = 1; 
           hiddenSelections[] = {"camo"}; 
       }; 
   };   
   class DutchUnits_Helmet_02 : ItemCore 
   { 
       scope = 2; 
       weaponPoolAvailable = 1; 
       displayName = "Gevechts Helm #2"; 
       picture = "\A3\characters_f\Data\UI\icon_H_HelmetB_CA.paa"; 
       model = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; 
       hiddenSelections[] = {"camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\Dutch_DHelmet.paa"}; 
       class ItemInfo : HeadgearItem 
       { 
           mass = 100; 
           uniformModel = "\A3\Characters_F\BLUFOR\headgear_b_helmet_ballistic"; 
           modelSides[] = {3, 1}; 
           armor = 3*0.5; 
           passThrough = 0.8; 
           hiddenSelections[] = {"camo"}; 
       }; 
   }; 


   class Vest_Camo_Base; 
   class VestItem; 

   class DutchUnits_Vest_01 : Vest_Camo_Base 
   { 
       scope = 2; 
       displayName = "Gevechts Vest #1 "; 
       picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; 
       model = "\A3\Characters_F\BLUFOR\equip_b_vest02"; 
       hiddenSelections[] = {"camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\DutchWVest.paa"}; 
       class ItemInfo : VestItem 
       { 
           uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; 
           containerClass = "Supply100"; 
           mass = 50; 
           armor = 5*0.5; 
           passThrough = 0.7; 
           hiddenSelections[] = {"camo"}; 
       }; 
   }; 
   class DutchUnits_Vest_02 : Vest_Camo_Base 
   { 
       scope = 2; 
       displayName = "Gevechts Vest #2"; 
       picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; 
       model = "\A3\Characters_F\BLUFOR\equip_b_vest02"; 
       hiddenSelections[] = {"camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\DutchDVest.paa"}; 
       class ItemInfo : VestItem 
       { 
           uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; 
           containerClass = "Supply100"; 
           mass = 50; 
           armor = 5*0.5; 
           passThrough = 0.7; 
           hiddenSelections[] = {"camo"}; 
       }; 
   }; 
   class DutchUnits_Vest_03 : Vest_Camo_Base 
   { 
       scope = 2; 
       displayName = "Gevechts Vest #3"; 
       picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; 
       model = "\A3\Characters_F\BLUFOR\equip_b_vest02"; 
       hiddenSelections[] = {"camo"}; 
       hiddenSelectionsTextures[] = {"NLD_2009-2014\Dutch11LMBVest.paa"}; 
       class ItemInfo : VestItem 
       { 
           uniformModel = "\A3\Characters_F\BLUFOR\equip_b_vest02"; 
           containerClass = "Supply100"; 
           mass = 50; 
           armor = 5*0.5; 
           passThrough = 0.7; 
           hiddenSelections[] = {"camo"}; 
       }; 
   }; 
};  

Share this post


Link to post
Share on other sites

Haha Yeah, thats why i dident have Weapons, Helmets , Beret, but with the Backpack at my config it was giving an error Line 60:/CfGVehicles/: U Encountered instead of { if i get this fixed i think this is last error? then i can release :D and i will post pic but help me with the error, i tryed many things but its not working still error

Share this post


Link to post
Share on other sites

Hello guys. I am a new modder, and I am having some troubles with my first helmet. I suspect the problem lies in the model.cfg. Any help would be GREATLY appreciated.

Here is the error message I get every time I add the helmet via the editor:

"File ironman\model.cfg, line 156: .MKIII_helm_model: Undefined base class 'ArmaMan'"

And here is my model.cfg:


class CfgSkeletons
{
class Default
{
	isDiscrete = 1;
	skeletonInherit = "";
	skeletonBones[] = {};
};
class OFP2_ManSkeleton
{
	isDiscrete = 0;
	skeletonInherit = "";
	skeletonBones[] =
	{
		"Pelvis","",
		"Spine","Pelvis",
		"Spine1","Spine",
		"Spine2","Spine1",
		"Spine3","Spine2",
		"Camera","Pelvis",
		"weapon","Spine1",
		"launcher","Spine1",
	//Head skeleton in hierarchy
		"neck","Spine3",
		"neck1","neck",
		"head","neck1",
	//New facial features
		"Face_Hub","head",
			"Face_Jawbone","Face_Hub",
				"Face_Jowl","Face_Jawbone",
				"Face_chopRight","Face_Jawbone",
				"Face_chopLeft","Face_Jawbone",
				"Face_LipLowerMiddle","Face_Jawbone",
				"Face_LipLowerLeft","Face_Jawbone",
				"Face_LipLowerRight","Face_Jawbone",
				"Face_Chin","Face_Jawbone",
				"Face_Tongue","Face_Jawbone",
			"Face_CornerRight","Face_Hub",
				"Face_CheekSideRight","Face_CornerRight",
			"Face_CornerLeft","Face_Hub",
				"Face_CheekSideLeft","Face_CornerLeft",
			"Face_CheekFrontRight","Face_Hub",
			"Face_CheekFrontLeft","Face_Hub",
			"Face_CheekUpperRight","Face_Hub",
			"Face_CheekUpperLeft","Face_Hub",
			"Face_LipUpperMiddle","Face_Hub",
			"Face_LipUpperRight","Face_Hub",
			"Face_LipUpperLeft","Face_Hub",
			"Face_NostrilRight","Face_Hub",
			"Face_NostrilLeft","Face_Hub",
			"Face_Forehead","Face_Hub",
				"Face_BrowFrontRight","Face_Forehead",
				"Face_BrowFrontLeft","Face_Forehead",
				"Face_BrowMiddle","Face_Forehead",
				"Face_BrowSideRight","Face_Forehead",
				"Face_BrowSideLeft","Face_Forehead",
			"Face_Eyelids","Face_Hub",
			"Face_EyelidUpperRight","Face_Hub",
			"Face_EyelidUpperLeft","Face_Hub",
			"Face_EyelidLowerRight","Face_Hub",
			"Face_EyelidLowerLeft","Face_Hub",
			"EyeLeft","Face_Hub",
			"EyeRight","Face_Hub",			
	//Left upper side
		"LeftShoulder","Spine3",
		"LeftArm","LeftShoulder",
		"LeftArmRoll","LeftArm",
		"LeftForeArm","LeftArmRoll",
		"LeftForeArmRoll","LeftForeArm",
		"LeftHand","LeftForeArmRoll",
		"LeftHandRing","LeftHand",
		"LeftHandRing1","LeftHandRing",
		"LeftHandRing2","LeftHandRing1",
		"LeftHandRing3","LeftHandRing2",
		"LeftHandPinky1","LeftHandRing",
		"LeftHandPinky2","LeftHandPinky1",
		"LeftHandPinky3","LeftHandPinky2",
		"LeftHandMiddle1","LeftHand",
		"LeftHandMiddle2","LeftHandMiddle1",
		"LeftHandMiddle3","LeftHandMiddle2",
		"LeftHandIndex1","LeftHand",
		"LeftHandIndex2","LeftHandIndex1",
		"LeftHandIndex3","LeftHandIndex2",
		"LeftHandThumb1","LeftHand",
		"LeftHandThumb2","LeftHandThumb1",
		"LeftHandThumb3","LeftHandThumb2",
	//Right upper side
		"RightShoulder","Spine3",
		"RightArm","RightShoulder",
		"RightArmRoll","RightArm",
		"RightForeArm","RightArmRoll",
		"RightForeArmRoll","RightForeArm",
		"RightHand","RightForeArmRoll",
		"RightHandRing","RightHand",
		"RightHandRing1","RightHandRing",
		"RightHandRing2","RightHandRing1",
		"RightHandRing3","RightHandRing2",
		"RightHandPinky1","RightHandRing",
		"RightHandPinky2","RightHandPinky1",
		"RightHandPinky3","RightHandPinky2",
		"RightHandMiddle1","RightHand",
		"RightHandMiddle2","RightHandMiddle1",
		"RightHandMiddle3","RightHandMiddle2",
		"RightHandIndex1","RightHand",
		"RightHandIndex2","RightHandIndex1",
		"RightHandIndex3","RightHandIndex2",
		"RightHandThumb1","RightHand",
		"RightHandThumb2","RightHandThumb1",
		"RightHandThumb3","RightHandThumb2",
	//Left lower side
		"LeftUpLeg","Pelvis",
		"LeftUpLegRoll","LeftUpLeg",
		"LeftLeg","LeftUpLegRoll",
		"LeftLegRoll","LeftLeg",
		"LeftFoot","LeftLegRoll",
		"LeftToeBase","LeftFoot",
	//Right lower side
		"RightUpLeg","Pelvis",
		"RightUpLegRoll","RightUpLeg",
		"RightLeg","RightUpLegRoll",
		"RightLegRoll","RightLeg",
		"RightFoot","RightLegRoll",
		"RightToeBase","RightFoot"
	};
	// location of pivot points (local axes) for hierarchical animation
	pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d";
 	};
};

class CfgModels
{
class Default
{
	sectionsInherit="";
	sections[] = {};
	skeletonName = "";
};
class ArmaMan : Default
{
	htMin = 60;          // Minimum half-cooling time (in seconds)
	htMax = 1800;        // Maximum half-cooling time (in seconds)
	afMax = 30;          // Maximum temperature in case the model is alive (in celsius)
	mfMax = 0;           // Maximum temperature when the model is moving (in celsius)
	mFact = 1;           // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)).
	tBody = 37;  // Metabolism temperature of the model (in celsius)

	sections[] =
	{
		"osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury","injury_body", "injury_legs", "injury_hands",
		"clan","clan_sign","Camo","CamoB","Camo1","Camo2","personality","hl", "injury_head"
	};
	skeletonName = "OFP2_ManSkeleton";
};
};


class MKIII_helm_model : ArmaMan {};

};

And here is my config.cpp for reference:


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,
};

class CfgPatches {
class ironman_suit {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {};
};
};

class cfgWeapons {
class ItemCore;	// External class reference
class InventoryItem_Base_F;	// External class reference
class HeadgearItem; // External class reference

class MKIII_helm : ItemCore {
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "MKIII Helmet";
	picture = "\ironman\data\maskico_CA.paa";
	model = "\ironman\MKIII_helm_model";

	class ItemInfo : HeadgearItem {
		mass = 100;
		uniformModel = "\ironman\MKIII_helm_model";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.8;
	};
};
};

Edited by ReconSigO

Share this post


Link to post
Share on other sites

This line is wrongly placed outside of the CfgModels class, you may also have one to many }; at the end of your model.cfg.

class MKIII_helm_model : ArmaMan {};

class CfgModels
{
   class Default
   {
       sectionsInherit="";
       sections[] = {};
       skeletonName = "";
   };
   class ArmaMan : Default
   {
       htMin = 60;          // Minimum half-cooling time (in seconds)
       htMax = 1800;        // Maximum half-cooling time (in seconds)
       afMax = 30;          // Maximum temperature in case the model is alive (in celsius)
       mfMax = 0;           // Maximum temperature when the model is moving (in celsius)
       mFact = 1;           // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)).
       tBody = 37;  // Metabolism temperature of the model (in celsius)

       sections[] =
       {
           "osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury","injury_body", "injury_legs", "injury_hands",
           "clan","clan_sign","Camo","CamoB","Camo1","Camo2","personality","hl", "injury_head"
       };
       skeletonName = "OFP2_ManSkeleton";
   };
class MKIII_helm_model : ArmaMan {};
};

Edited by surpher

Share this post


Link to post
Share on other sites

Sadly, that crashes the game with no error message. I was going off of this tutorial: http://forums.bistudio.com/showthread.php?147988-Helmet-Addons&p=2318293#post2318293

Would anyone be willing to look at what I have for themselves? This is getting just a little discouraging.

edit: Okay, so I fixed the model.cfg (the helmet tutorial showed it wrong).

And it still crashed the game. this time without an error message.

Then I realized i've been testing it unbinarized. So I binarized it, and everything is all good. thanks.

Edited by ReconSigO
update

Share this post


Link to post
Share on other sites

Hey guys, I would appreciate a little bit of help here, I'm trying to get a custom vest model to appear in game and I just cannot get it to appear at all, no matter what I try. The model was built to the dimensions of the example vest provided by Bohemia and converted to triangles, with correct LODS created. The best I can tell is that it's something with the config file. I've read through this entire thread, but clearly I must be missing something, so any help would be appreciated.

Here is what my config.cpp looks like:

class cfgWeapons {
class ItemCore;	// External class reference
class InventoryItem_Base_F;	// External class reference
class HeadgearItem;
class Uniform_Base;
class UniformItem;
class Vest_Camo_Base;
class VestItem;

   class Test_Vest : Vest_Camo_Base 
   { 
       scope = 2; 
       displayName = "Test Vest"; 
       picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; 
       model = "\test\Webbingtest"; 
       //hiddenSelections[] = {"camo"}; 
       //hiddenSelectionsTextures[] = {"NLD_2009-2014\DutchWVest.paa"}; 
       class ItemInfo : VestItem 
       { 
           uniformModel = "\test\Webbingtest"; 
           containerClass = "Supply100"; 
           mass = 50; 
           armor = 5*0.5; 
           passThrough = 0.7; 
         //hiddenSelections[] = {"camo"}; 
       }; 
   }; 
};

Share this post


Link to post
Share on other sites

Looks like you are missing a CfgPatches class in your config and possibly a model.cfg.

config.cpp

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 
}; 

class CfgPatches 
{ 
   class Test_Vest_config  
   { 
       units[] = {}; 
       weapons[] = {}; 
       requiredVersion = 0.1; 
       requiredAddons[] = {}; 
   }; 
};

class cfgWeapons {
   class ItemCore;    // External class reference
   class InventoryItem_Base_F;    // External class reference
   class HeadgearItem;
   class Uniform_Base;
   class UniformItem;
   class Vest_Camo_Base;
   class VestItem;

   class Test_Vest : Vest_Camo_Base 
   { 
       scope = 2; 
       displayName = "Test Vest"; 
       picture = "\A3\characters_f\Data\UI\icon_V_plate_carrier_1_CA.paa"; 
       model = "\test\Webbingtest"; 
       //hiddenSelections[] = {"camo"}; 
       //hiddenSelectionsTextures[] = {"NLD_2009-2014\DutchWVest.paa"}; 
       class ItemInfo : VestItem 
       { 
           uniformModel = "\test\Webbingtest"; 
           containerClass = "Supply100"; 
           mass = 50; 
           armor = 5*0.5; 
           passThrough = 0.7; 
         //hiddenSelections[] = {"camo"}; 
       }; 
   }; 
};

model.cfg

class CfgSkeletons
{
   class Default
   {
       isDiscrete = 1;
       skeletonInherit = "";
       skeletonBones[] = {};
   };
   class OFP2_ManSkeleton
   {
       isDiscrete = 0;
       skeletonInherit = "";
       skeletonBones[] =
       {
           "Pelvis","",
           "Spine","Pelvis",
           "Spine1","Spine",
           "Spine2","Spine1",
           "Spine3","Spine2",
           "Camera","Pelvis",
           "weapon","Spine1",
           "launcher","Spine1",
       //Head skeleton in hierarchy
           "neck","Spine3",
           "neck1","neck",
           "head","neck1",
       //New facial features
           "Face_Hub","head",
               "Face_Jawbone","Face_Hub",
                   "Face_Jowl","Face_Jawbone",
                   "Face_chopRight","Face_Jawbone",
                   "Face_chopLeft","Face_Jawbone",
                   "Face_LipLowerMiddle","Face_Jawbone",
                   "Face_LipLowerLeft","Face_Jawbone",
                   "Face_LipLowerRight","Face_Jawbone",
                   "Face_Chin","Face_Jawbone",
                   "Face_Tongue","Face_Jawbone",
               "Face_CornerRight","Face_Hub",
                   "Face_CheekSideRight","Face_CornerRight",
               "Face_CornerLeft","Face_Hub",
                   "Face_CheekSideLeft","Face_CornerLeft",
               "Face_CheekFrontRight","Face_Hub",
               "Face_CheekFrontLeft","Face_Hub",
               "Face_CheekUpperRight","Face_Hub",
               "Face_CheekUpperLeft","Face_Hub",
               "Face_LipUpperMiddle","Face_Hub",
               "Face_LipUpperRight","Face_Hub",
               "Face_LipUpperLeft","Face_Hub",
               "Face_NostrilRight","Face_Hub",
               "Face_NostrilLeft","Face_Hub",
               "Face_Forehead","Face_Hub",
                   "Face_BrowFrontRight","Face_Forehead",
                   "Face_BrowFrontLeft","Face_Forehead",
                   "Face_BrowMiddle","Face_Forehead",
                   "Face_BrowSideRight","Face_Forehead",
                   "Face_BrowSideLeft","Face_Forehead",
               "Face_Eyelids","Face_Hub",
               "Face_EyelidUpperRight","Face_Hub",
               "Face_EyelidUpperLeft","Face_Hub",
               "Face_EyelidLowerRight","Face_Hub",
               "Face_EyelidLowerLeft","Face_Hub",
               "EyeLeft","Face_Hub",
               "EyeRight","Face_Hub",            
       //Left upper side
           "LeftShoulder","Spine3",
           "LeftArm","LeftShoulder",
           "LeftArmRoll","LeftArm",
           "LeftForeArm","LeftArmRoll",
           "LeftForeArmRoll","LeftForeArm",
           "LeftHand","LeftForeArmRoll",
           "LeftHandRing","LeftHand",
           "LeftHandRing1","LeftHandRing",
           "LeftHandRing2","LeftHandRing1",
           "LeftHandRing3","LeftHandRing2",
           "LeftHandPinky1","LeftHandRing",
           "LeftHandPinky2","LeftHandPinky1",
           "LeftHandPinky3","LeftHandPinky2",
           "LeftHandMiddle1","LeftHand",
           "LeftHandMiddle2","LeftHandMiddle1",
           "LeftHandMiddle3","LeftHandMiddle2",
           "LeftHandIndex1","LeftHand",
           "LeftHandIndex2","LeftHandIndex1",
           "LeftHandIndex3","LeftHandIndex2",
           "LeftHandThumb1","LeftHand",
           "LeftHandThumb2","LeftHandThumb1",
           "LeftHandThumb3","LeftHandThumb2",
       //Right upper side
           "RightShoulder","Spine3",
           "RightArm","RightShoulder",
           "RightArmRoll","RightArm",
           "RightForeArm","RightArmRoll",
           "RightForeArmRoll","RightForeArm",
           "RightHand","RightForeArmRoll",
           "RightHandRing","RightHand",
           "RightHandRing1","RightHandRing",
           "RightHandRing2","RightHandRing1",
           "RightHandRing3","RightHandRing2",
           "RightHandPinky1","RightHandRing",
           "RightHandPinky2","RightHandPinky1",
           "RightHandPinky3","RightHandPinky2",
           "RightHandMiddle1","RightHand",
           "RightHandMiddle2","RightHandMiddle1",
           "RightHandMiddle3","RightHandMiddle2",
           "RightHandIndex1","RightHand",
           "RightHandIndex2","RightHandIndex1",
           "RightHandIndex3","RightHandIndex2",
           "RightHandThumb1","RightHand",
           "RightHandThumb2","RightHandThumb1",
           "RightHandThumb3","RightHandThumb2",
       //Left lower side
           "LeftUpLeg","Pelvis",
           "LeftUpLegRoll","LeftUpLeg",
           "LeftLeg","LeftUpLegRoll",
           "LeftLegRoll","LeftLeg",
           "LeftFoot","LeftLegRoll",
           "LeftToeBase","LeftFoot",
       //Right lower side
           "RightUpLeg","Pelvis",
           "RightUpLegRoll","RightUpLeg",
           "RightLeg","RightUpLegRoll",
           "RightLegRoll","RightLeg",
           "RightFoot","RightLegRoll",
           "RightToeBase","RightFoot"
       };
       // location of pivot points (local axes) for hierarchical animation
       pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d";
     };
};

class CfgModels
{
   class Default
   {
       sectionsInherit="";
       sections[] = {};
       skeletonName = "";
   };
   class ArmaMan : Default
   {
       htMin = 60;          // Minimum half-cooling time (in seconds)
       htMax = 1800;        // Maximum half-cooling time (in seconds)
       afMax = 30;          // Maximum temperature in case the model is alive (in celsius)
       mfMax = 0;           // Maximum temperature when the model is moving (in celsius)
       mFact = 1;           // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)).
       tBody = 37;  // Metabolism temperature of the model (in celsius)

       sections[] =
       {
           "osobnost","Head_Injury","Body_Injury","l_leg_injury","l_arm_injury","r_arm_injury","r_leg_injury","injury_body", "injury_legs", "injury_hands",
           "clan","clan_sign","Camo","CamoB","Camo1","Camo2","personality","hl", "injury_head"
       };
       skeletonName = "OFP2_ManSkeleton";
   };
   class Webbingtest : ArmaMan {};
};  

Share this post


Link to post
Share on other sites

Ok, so I'm working on this addon, which is actually more of a retexture. I've made pilot helmet, coveralls and one soldier. The helmet works fine. It shows up in game and it looks exactly how I wanted.

But when I equip those coveralls, it shows its original texture, not the new one. And I don't have my new faction there, so I cant get that soldier in it as well.

This is my first addon with config from scratch and I'm new to this, but I cant figure out what is wrong with my code (but I guess theres plenty of mistakes)

config.cpp

enum {
 //  = 2,	// Error parsing: Empty enum name
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,
};

class CfgPatches {
class Hunters {
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F_BLUFOR"};
};
};

class cfgFactionClasses {
class Hunters {
	displayName = "H.U.N.T.E.R.S";
	priority = 3;
	side = TGuerrila;
};
};

class cfgWeapons 
{
class ItemCore;
class HeadgearItem;

class hunter_pilot_crew : ItemCore {
	scope = 2;
	weaponPoolAvailable = 1;
	displayName = "Hunter Pilot Helmet";
	picture = "\A3\characters_f_beta\Data\UI\icon_H_I_helmet_heliShield_ca.paa";
	model = "A3\Characters_F\Common\headgear_helmet_heli_shield";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"\Hunters\Data\helmet_heli_orng.paa"};

	class ItemInfo : HeadgearItem {
		mass = 120;
		uniformModel = "A3\Characters_F\Common\headgear_helmet_heli_shield";
		modelSides[] = {3, 1};
		armor = 3*0.5;
		passThrough = 0.9;
		hiddenSelections[] = {"camo"};
	};
};

   class Uniform_Base;
   class UniformItem;

   class hunter_pilot_cvrall : Uniform_Base {
       scope = 2;
       displayName = "Hunter Pilot Coveralls";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
	picture = "\A3\characters_f\data\ui\icon_U_B_coveralls_ca.paa";
	hiddenSelections[] = {"camo"};
	hiddenSelectionsTextures[] = {"\Hunters\Data\coveralls_hntblck_co.paa"};

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "B_Helipilot_F"; //would be same as our made soldier class
           containerClass = "Supply60"; //how much it can carry
           mass = 80; //how much it weights
       };
   };
};

class CfgVehicles
{
class B_Helipilot_F;

	class Hunter_Pilot : B_Helipilot_F {
		_generalMacro = "B_Helipilot_F";
		faction = Hunters;
		canCarryBackPack = 1;
		scope = public;
		displayName = "Hunter Pilot";
		model = "\A3\Characters_F\Common\coveralls.p3d";
		nakedUniform = "U_BasicBody";
		uniformAccessories[] = {};
		uniformClass = "hunter_pilot_cvrall";
		hiddenSelections[] = {"Camo"};
		hiddenSelectionsTextures[] = {"\Hunters\Data\coveralls_hntblck_co.paa"};
		weapons[] = {"hgun_P07_F", "Throw", "Put", "Binocular"};
		respawnWeapons[] = {"hgun_P07_F", "Throw", "Put", "Binocular"};
		magazines[] = {"16Rnd_9x21_Mag", "16Rnd_9x21_Mag", "SmokeShell", "SmokeShell"};
		respawnMagazines[] = {"16Rnd_9x21_Mag", "16Rnd_9x21_Mag", "SmokeShell", "SmokeShell"};
		linkedItems[] = {"hunter_pilot_cvrall", "hunter_pilot_crew", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio", "NVGoggles"};
		respawnLinkedItems[] = {"hunter_pilot_cvrall", "hunter_pilot_crew", "ItemMap", "ItemCompass", "ItemWatch", "ItemRadio", "NVGoggles"};
};
};

Share this post


Link to post
Share on other sites

In your uniform class.

uniformClass = "B_Helipilot_F";

Should be.

uniformClass = "Hunter_Pilot";

class hunter_pilot_cvrall : Uniform_Base {
       scope = 2;
       displayName = "Hunter Pilot Coveralls";
       model = "\A3\Characters_F\Common\Suitpacks\suitpack_blufor_diver";
       picture = "\A3\characters_f\data\ui\icon_U_B_coveralls_ca.paa";
       hiddenSelections[] = {"camo"}; // Remove not needed.
       hiddenSelectionsTextures[] = {"\Hunters\Data\coveralls_hntblck_co.paa"}; // Remove not needed.

       class ItemInfo : UniformItem {
           uniformModel = "-";
           uniformClass = "Hunter_Pilot"; //would be same as our made soldier class
           containerClass = "Supply60"; //how much it can carry
           mass = 80; //how much it weights
       };
   };

In your unit class change scope = public; to scope = 2;. And in your faction class change side = TGuerrila; to side = 1;.

Edited by surpher

Share this post


Link to post
Share on other sites

Thanks! You're the best sir :D Now it works fine. Just a question, I see that the game automatically categorizes stuff, like soldiers under "Men", helicopters under "Air", but what if I want to add more soldier categories etc...?

Share this post


Link to post
Share on other sites

Like this.

class CfgVehicleClasses
{
class Blah 
{
	displayName = "Blah Blah"; //What shows in menu
	priority = 1; // How far up the list it appears
};
};

Then add vehicleClass = "Blah"; to your unit.

Share this post


Link to post
Share on other sites

Could anyone help me out on where to start?

Is it possible to create a new faction that are pretty much equal to the standard NATO unit. I only want to change it's loadout. I dont want to use custom loadouts scripts etc. I simply want to copy paste perhaps 90% of the current units.

Share this post


Link to post
Share on other sites
Could anyone help me out on where to start?

Is it possible to create a new faction that are pretty much equal to the standard NATO unit. I only want to change it's loadout. I dont want to use custom loadouts scripts etc. I simply want to copy paste perhaps 90% of the current units.

Your config.cpp will look something like this.

class CfgPatches
{
class yourTag_units
{
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F"};
};
};

class cfgFactionClasses
{
class yourTag_faction
{
	displayName = "Faction Name";
	priority = 4; 
	side = 1;
	icon = "\a3\Data_f\cfgFactionClasses_BLU_ca.paa";
};
};

class CfgVehicles
{
class B_Soldier_F; // External reference.
class yourTag_B_Soldier_F: B_Soldier_F
{
	author = "Your Name";
	scope = 2;
	faction = "yourTag_faction";

	weapons[] = {"arifle_MX_ACO_pointer_F","hgun_P07_F","Throw","Put"};
	respawnWeapons[] = {"arifle_MX_ACO_pointer_F","hgun_P07_F","Throw","Put"};
	magazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","HandGrenade","HandGrenade"};
	respawnMagazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","HandGrenade","HandGrenade"};

	linkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
	respawnLinkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
};

class B_Soldier_lite_F;	// External reference.
class yourTag_B_Soldier_lite_F: B_Soldier_lite_F
{
	author = "Your Name";
	scope = 2;
	faction = "yourTag_faction";

	weapons[] = {"arifle_MX_ACO_F","hgun_P07_F","Throw","Put"};
	respawnWeapons[] = {"arifle_MX_ACO_F","hgun_P07_F","Throw","Put"};
	magazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green"};
	respawnMagazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green"};

	linkedItems[] = {"V_BandollierB_rgr","H_MilCap_mcamo","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
	respawnLinkedItems[] = {"V_BandollierB_rgr","H_MilCap_mcamo","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
};

class B_Soldier_GL_F; // External reference.
class yourTag_B_Soldier_GL_F: B_Soldier_GL_F
{
	author = "Your Name";
	scope = 2;
	faction = "yourTag_faction";

	weapons[] = {"arifle_MX_GL_ACO_F","hgun_P07_F","Throw","Put"};
	respawnWeapons[] = {"arifle_MX_GL_ACO_F","hgun_P07_F","Throw","Put"};
	magazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","HandGrenade","HandGrenade","HandGrenade","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","1Rnd_Smoke_Grenade_shell","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell"};
	respawnMagazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","HandGrenade","HandGrenade","HandGrenade","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","1Rnd_Smoke_Grenade_shell","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell"};

	linkedItems[] = {"V_PlateCarrierGL_rgr","H_HelmetB_paint","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
	respawnLinkedItems[] = {"V_PlateCarrierGL_rgr","H_HelmetB_paint","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
};
};

Share this post


Link to post
Share on other sites

It's me again. I have another problem, but not in a code I guess. I cannot equip clothes or headgear from my crate (I can equip weapons tho) I created. The slot is red, and I can't even return it to the crate after that. When I equip the item thru VAS, it's fine. The NVG are in crate without icon, and cannot be equipped as well.

class Hunt_box : Box_NATO_Ammo_F {
	scope = 2;
	accuracy = 1000;
	displayName = "Hunter Stuff Box";
	model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F";
	icon = "iconCrateAmmo";

	class TransportMagazines {
		class 30Rnd_556x45_Stanag {
			magazine = "30Rnd_556x45_Stanag";
			count = 50;
		};
	};

	class TransportWeapons {
		class Hntr_SMG {
			weapon = "Hntr_SMG";
			count = 10;
		};
		class NVGoggles {
			weapon = "NVGoggles";
			count = 10;
		};
		class HNT_VEST {
			weapon = "HNT_VEST";
			count = 10;
		};
		class hunter_pilot_cvrall {
			weapon = "hunter_pilot_cvrall";
			count = 10;
		};
		class hnt_cap {
			weapon = "hnt_cap";
			count = 5;
		};
	};
};

Also, is there any way to add sidearm to backpack or vest? I just want unarmed soldier, with a gun in his pocket, not to have it equipped.

Im trying to add this faction to Independent, I did side = 2 in factionclasses, but it is still under Blufor.

Share this post


Link to post
Share on other sites

Try class TransportItems in your crate, and do you need to change the side of your unit. In your config above your unit is inheriting side = 1; from the B_Helipilot_F class, add side = 2; to your unit.

class TransportItems
{
class _xx_hnt_cap {
               name = "hnt_cap";
               count = 5;
           }; 
};

Crates and backpacks are basically the same, add stuff to them in the same way.

Edited by surpher

Share this post


Link to post
Share on other sites

Thanks! You really know a lot about scripting! It works awesome so far.

But I have this idea, where I make lets say ten different clothes and then the soldier would randomly choose one from the list. I don't really know how should I do this, but PG Services addon has similar feature and I need something like this for my covert troops (like when I spawn three this soldiers, each will have same civilian clothes, but different color combination - texture.)

Share this post


Link to post
Share on other sites
Your config.cpp will look something like this.

class CfgPatches
{
class yourTag_units
{
	units[] = {};
	weapons[] = {};
	requiredVersion = 0.1;
	requiredAddons[] = {"A3_Characters_F"};
};
};

class cfgFactionClasses
{
class yourTag_faction
{
	displayName = "Faction Name";
	priority = 4; 
	side = 1;
	icon = "\a3\Data_f\cfgFactionClasses_BLU_ca.paa";
};
};

class CfgVehicles
{
class B_Soldier_F; // External reference.
class yourTag_B_Soldier_F: B_Soldier_F
{
	author = "Your Name";
	scope = 2;
	faction = "yourTag_faction";

	weapons[] = {"arifle_MX_ACO_pointer_F","hgun_P07_F","Throw","Put"};
	respawnWeapons[] = {"arifle_MX_ACO_pointer_F","hgun_P07_F","Throw","Put"};
	magazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","HandGrenade","HandGrenade"};
	respawnMagazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","HandGrenade","HandGrenade"};

	linkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
	respawnLinkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
};

class B_Soldier_lite_F;	// External reference.
class yourTag_B_Soldier_lite_F: B_Soldier_lite_F
{
	author = "Your Name";
	scope = 2;
	faction = "yourTag_faction";

	weapons[] = {"arifle_MX_ACO_F","hgun_P07_F","Throw","Put"};
	respawnWeapons[] = {"arifle_MX_ACO_F","hgun_P07_F","Throw","Put"};
	magazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green"};
	respawnMagazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green"};

	linkedItems[] = {"V_BandollierB_rgr","H_MilCap_mcamo","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
	respawnLinkedItems[] = {"V_BandollierB_rgr","H_MilCap_mcamo","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
};

class B_Soldier_GL_F; // External reference.
class yourTag_B_Soldier_GL_F: B_Soldier_GL_F
{
	author = "Your Name";
	scope = 2;
	faction = "yourTag_faction";

	weapons[] = {"arifle_MX_GL_ACO_F","hgun_P07_F","Throw","Put"};
	respawnWeapons[] = {"arifle_MX_GL_ACO_F","hgun_P07_F","Throw","Put"};
	magazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","HandGrenade","HandGrenade","HandGrenade","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","1Rnd_Smoke_Grenade_shell","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell"};
	respawnMagazines[] = {"30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","16Rnd_9x21_Mag","HandGrenade","HandGrenade","HandGrenade","SmokeShell","SmokeShellGreen","Chemlight_green","Chemlight_green","1Rnd_Smoke_Grenade_shell","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell","1Rnd_HE_Grenade_shell"};

	linkedItems[] = {"V_PlateCarrierGL_rgr","H_HelmetB_paint","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
	respawnLinkedItems[] = {"V_PlateCarrierGL_rgr","H_HelmetB_paint","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
};
};

Thanks alot.

Do I add multiple units inside the same config.cpp if I need different units?

Share this post


Link to post
Share on other sites
Thanks alot.

Do I add multiple units inside the same config.cpp if I need different units?

Yes, if want to split the config.cpp up so it does not get too long just create a new folder inside your pbo and start a new config.cpp.

Thanks! You really know a lot about scripting! It works awesome so far.

But I have this idea, where I make lets say ten different clothes and then the soldier would randomly choose one from the list. I don't really know how should I do this, but PG Services addon has similar feature and I need something like this for my covert troops (like when I spawn three this soldiers, each will have same civilian clothes, but different color combination - texture.)

Try this, I have not tested it.

Add this to your unit.

class EventHandlers: EventHandlers
	{
		init = "(_this select 0) execVM ""pathToScript""";
	};

Create a .sqf with this inside.

if (isServer) then {
_rnd1 = floor random 3; // Adjust to number of textures.
_this setVariable ["tej_randomSeed1", _rnd1, TRUE];
};

waitUntil {!(isNil {_this getVariable "tej_randomSeed1"})};
_randomSeed1 = _this getVariable "tej_randomSeed1";

_this setObjectTexture [0, ["pathToTexture1", 
"pathToTexture2", 
"pathToTexture3"] select _randomSeed1];

Edited by surpher

Share this post


Link to post
Share on other sites
Yes, if want to split the config.cpp up so it does not get too long just create a new folder inside your pbo and start a new config.cpp.

Thanks, Appreciate your help.

Have two more I would appreciate if you could help me out.

Is it possible to change the flag on the uniform shoulder? I have the .paa graphic I need. Suggestion?

Also, how can I setup a premade group?

Share this post


Link to post
Share on other sites

Sorry to bother you again, but I really want to finish this one addon and I'm almost done.

But I made UAV Bag (just retexture of ind. uav bck, and added assembleInfo, so it will assemble my uav), but when I start the game, it gives me this error

2013_11_05_00003.jpg

It works ingame anyway, I can assemble that little quadrotor thing, but when I disassemble, it puts original olive independent uav bag in front of me...

	class I_UAV_01_backpack_F;
class assembleInfo;

class Hntr_UAV_Bag : I_UAV_01_backpack_F {
	side = 2;
	hiddenselectionstextures[] = {"\Hunters\Data\ppl\uav_backpack_blck_co.paa"};
	picture = "\A3\Drones_F\Weapons_F_Gamma\ammoboxes\bags\data\ui\icon_B_C_UAV_oli_ca";

	class assembleInfo : assembleInfo {
		assembleto = "Hntr_UAV1";
		base = "";
		displayname = "Quadrotor";
	};
};

Edited by Tejkr

Share this post


Link to post
Share on other sites

I think your class reference must be inside your bag class, like this:

   class I_UAV_01_backpack_F;

   class Hntr_UAV_Bag : I_UAV_01_backpack_F {
       side = 2;
       hiddenselectionstextures[] = {"\Hunters\Data\ppl\uav_backpack_blck_co.paa"};
       picture = "\A3\Drones_F\Weapons_F_Gamma\ammoboxes\bags\data\ui\icon_B_C_UAV_oli_ca";

       class assembleInfo;

       class assembleInfo : assembleInfo {
           assembleto = "Hntr_UAV1";
           base = "";
           displayname = "Quadrotor";
       };
   };  

Share this post


Link to post
Share on other sites

THis actually doesn't work, game won't even start, it says Hntr_UAV_Bag.class assembleInfo already defined, but these are only three occurances in config...when I take the first class off, it misses that class...I don't know, maybe I have to write the assembleinfo class myself, then use it in the bag?

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

×