Replacement Config Tutorial – Arma 3
Jump to navigation
Jump to search
mNo edit summary |
|||
Line 16: | Line 16: | ||
# Load it/them via a modfolder | # Load it/them via a modfolder | ||
# Make a config overview for the above mentioned '''config dump''' mission in the editor; '''cfgVehicles''' for infantry or vehicles, '''cfgWeapons''' for weapons (or make subsets like CAManBase, AllVehicles, Tank, Cars, etc) | # Make a config overview for the above mentioned '''config dump''' mission in the editor; '''cfgVehicles''' for infantry or vehicles, '''cfgWeapons''' for weapons (or make subsets like CAManBase, AllVehicles, Tank, Cars, etc) | ||
# Extract the classes of the desired | # Extract the classes of the desired vehicle/infantry/weapon item/set/type/faction to replace | ||
# Extract the classes of the replacements | # Extract the classes of the replacements | ||
# Clean both their content for all but the relevant parameters (see below for more information); this regex will remove all but the mentioned parameters: | # Clean both their content for all but the relevant parameters (see below for more information); this regex will remove all but the mentioned parameters: | ||
Line 75: | Line 75: | ||
== Defining the replacement == | == Defining the replacement == | ||
# Next you have to select which addon unit should replace each given source class; generally one copies GL over GL, MG over MG and so on | |||
# You do so by copying the parameters of the addon class into your replacement addon for the given class | |||
# '''Very important''' is to keep the parameter '''inheritance''' in mind in both addon and source class; in other words you need to check carefully where each required parameter is set and if you need to replace it in the given/specific class or at the base class level | |||
To make some examples for infantry classes: | |||
* class Wounds or the model are often set only in the base class; except for specific types like snipers, officer, pilot/crew classes | |||
* whereas the linkedItems list/array is mostly defined per specific class | |||
* make sure what parameters are set in the base class of the replacement addon | |||
== Building the addon == | == Building the addon == | ||
# Once each class of has the required parameters set/overwritten with new definitions from the desired addon | |||
# Check your config for error (brackets, semicolons, etc) - rapify/mikero's tools have the feature to verify a config for correctness | |||
# Build your addon folder to pbo | |||
# Load your new pbo in a modfolder, as well as the addon it depends on | |||
# Verify in the editor that the replacement works as desired and that you have no onscreen errors and none in the [[arma.RPT|rpt]] | |||
= Different types = | = Different types = | ||
== Infantry == | == Infantry == | ||
== Vehicles == | |||
== Weapons == |
Revision as of 15:34, 8 October 2013
Introduction
Anyone is welcome to improve this guide by any means. Be it making it easier to understand or more comprehensive.
Required tools
- A good text editor; best with regular expression support. Recommended: EditPadPro (and/or PowerGREP)
- Ability to create a config dump from system memory while the game is running
- A tool to create pbos. Recommended: mikero's tool suite (makePbo)
Overall process
Basic preparation
- Download the desired addon(s) you want to use for the replacement
- Load it/them via a modfolder
- Make a config overview for the above mentioned config dump mission in the editor; cfgVehicles for infantry or vehicles, cfgWeapons for weapons (or make subsets like CAManBase, AllVehicles, Tank, Cars, etc)
- Extract the classes of the desired vehicle/infantry/weapon item/set/type/faction to replace
- Extract the classes of the replacements
- Clean both their content for all but the relevant parameters (see below for more information); this regex will remove all but the mentioned parameters:
^(?!.*?(^\tclass|parameterA|parameterB|etc)).*\r\n
Preparing the addon
- Create a new folder in your @test\addons modfolder
- Give the folder a descriptive name like YourTAG_ReplacementSet_With_AddonName
- Create an empty text file
- Rename it to config.cpp (make sure to have windows show file extensions)
- Add a cfgPatches header - see sample below
- Give it the same name as the folder
- Add the cfgPatches class dependency of the addon used for the replacement in requiredAddons definition
- Add the cfgWeapons/cfgVehicles body
- Add the desired vehicles/infantry/weapons classes you want to replace
- It should include the base class
- The definitions should be strip of all unnecessary parameters at this point
- Disable all the remaining parameters - they only serve as a reminder what you have to replace for a given class
Sample config:
class CfgPatches { class YourTAG_ReplacementSet_With_AddonName { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"DependencyToAddonsCfgPatchesClass"}; }; }; class CfgVehicles { class SoldierWB; class B_Soldier_base_F: SoldierWB { // model = "\A3\characters_F\BLUFOR\b_soldier_01.p3d"; // nakedUniform = "U_BasicBody"; // uniformClass = "U_B_CombatUniform_mcam"; // hiddenSelections[] = {"Camo"}; // hiddenSelectionsTextures[] = {"\a3\characters_f\blufor\data\clothing1_co.paa"}; // linkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"}; // respawnLinkedItems[] = {"V_PlateCarrier1_rgr","H_HelmetB","ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"}; // class Wounds // { // tex[] = {}; // mat[] = {"A3\Characters_F\BLUFOR\Data\clothing1.rvmat",...}; // }; }; class B_Soldier_F: B_Soldier_base_F { // nakedUniform = "U_BasicBody"; // uniformClass = "U_B_CombatUniform_mcam"; };
Defining the replacement
- Next you have to select which addon unit should replace each given source class; generally one copies GL over GL, MG over MG and so on
- You do so by copying the parameters of the addon class into your replacement addon for the given class
- Very important is to keep the parameter inheritance in mind in both addon and source class; in other words you need to check carefully where each required parameter is set and if you need to replace it in the given/specific class or at the base class level
To make some examples for infantry classes:
- class Wounds or the model are often set only in the base class; except for specific types like snipers, officer, pilot/crew classes
- whereas the linkedItems list/array is mostly defined per specific class
- make sure what parameters are set in the base class of the replacement addon
Building the addon
- Once each class of has the required parameters set/overwritten with new definitions from the desired addon
- Check your config for error (brackets, semicolons, etc) - rapify/mikero's tools have the feature to verify a config for correctness
- Build your addon folder to pbo
- Load your new pbo in a modfolder, as well as the addon it depends on
- Verify in the editor that the replacement works as desired and that you have no onscreen errors and none in the rpt