DocumentationUnitsandModules.pdf

(871 KB) Pobierz
Units & Modules
A Wargame Modding Tutorial
 
How to modify (almost) whatever unit you want in Wargame Airland Battle.
 
Version: Almost slightly proper
Todo : finish => review => spelling stuffs
Prerequisites
pen & paper (except if you can do without…) 
basic understanding of Enohka’s tools (tables, classes, instances, using the dictionaries, 
installing a mod, etc..) 
 Golden rule : never work on an original file, always use copies. Better have something 
to make a fresh start than screwing up for all eternity. 
FOR CHRIST SAKE, DON’T TRY TO USE A MOD IN MULTIPLAYER. YOU MIGHT 
GET SPANKED HARD ! Seriously we don’t know of the implication yet, so don’t, just 
don’t. 
 
 
 
Some stuffs are written in the dreadful language that is French, don’t worry it won’t hurt you and 
I can even provide a translation, usually between parentheses. 
 
 
 
Prerequisites 
1) Understanding the unit structure 
a) A unit’s Modules. 
b) A module example : the dreadful WeaponManager hydra. 
1) A world of Turrets. 
2) The Weapon Descriptor 
3) Ammunition rules the nation. 
2) The Modeling and TDepiction 
 
 
 
 
 
Color coding (soon) : 
Sure. 
Need more investigation but pretty sure. 
Just an uneducated guess. 
 
 
 
1) Understanding the unit structure
 
First thing you have to do is to open dev\ndf\patchable\gfx\everything.ndfbin, everything (heh...) 
will happen there. 
 
The units are instances of the TUniteAuSolDescriptor (i.e GroundUnitsDescriptor in French) 
class (id = 86) but despite its name, the class contains all units in the game, helicopter and 
planes included.  
 
The More You Know​
 
: the TUniteAuSolDescriptor can be considered as a specialization of the 
TUnitDescriptor  which contains every other kind of objects you can see in the game like 
missiles, companies or smoke. 
 
An instance of this class is constitued of many fields which describe a unit’s behavior and stats: 
 
Some fields of the Cz Dana SPG descriptor instance. 
 
 
Let’s go through all of them : 
 
● DescriptorID : the instance’s Id, nothing much to say and you probably won’t have to 
touch this unless you want to remove/add units 
 
● Modules : a list of different special instances of classes called “modules”, modules 
control most of a unit’s behavior. They are very important for modding a units specific 
part. We ‘ll see later how to work with them. 
 
_ShortDataBaseName : probably useless ? No idea, really. 
 
ClassNameForDebug : useless for modding. 
 
StickToGround : boolean determining… well if a unit stick to the ground I guess ? This 
field may have no use at all but seems to separate Helicopters from other kind of units. 
 
The ArmorDescriptor(s) : reference to a TArmorDecriptor instance which determine the 
armor value of the selected side.  ​
Armor values goes from 0 (null) to 23 (yes, 23) but are 
still displayed going from 0 to 20 anyway. 
 
ManageUnitOrientation : true = unit will always show they most armored side to the 
greatest threat, false = unit will show whatever side their pathfinding made them to. 
 
HitRollSizeModifier : float determining the accuracy malus/bonus due to the unit’s size 
can be 0.05 (% ?) or ­0.15. 
 
DeathExplosionAmmo : refer to a TAmmunition instance, is probably used to determine 
the explosion animation based on the Ammunition instance supplied. No idea yet about 
how it works exactly. 
 
IconeType (IconType) : integer pointing to a unit type list probably. 
 
PositionInMenu : probably the unit’s position in the Armory, dunno if it’s in a global list of 
just whithin a category (TANK, INF, ect) menu. Might be just a remanent of WEE. 
 
NameInMenuToken : a localisation hash (hence a reference to the hash table of the unit 
dictionary), it probably determine the unit’s name diplayed in the uit’s icon in the armory 
and production menu. 
 
Category : point to a category list ( INF, REC, etc) 
 
AcknowUnitType : probably determine a unit’s audio acknow when given an order. 
 
TypeForAcknow : honestly no idea… 
 
Nationalite (Nationality) : determine a unit’s faction, null = NATO, 1 = Pact. 
 
MotherCountry :The actual country of the unit. Thanks to Fleff for this one. 
 
ProductionYear: pretty explicit. 
 
MaxPack : number of card of said unit you can add in a deck. 
 
UppgradeRequire : not formal use in WAB beside putting some vehicle in the same line 
in the Armory. 
 
Factory : change a unit’s category in the armory and production menu (in­game). Thanks 
to homerfcb. 
 
ProductionPrice: a unit’s cost(s), actually only the top cost of the list actually matter, the 
rest are probably remanent of WEE or some old design, just dont care about the rest. 
 
MaxDeployableAmmount : a list of a unit’s avaibilities, each of the value refer to a 
particular veterancy hence the first value is the avaibility at recruit vet’. 
 
ShowInMenu : list of boolean determining if a unit can be viewable in the Armory. 
 
ProductionTime: time need for the unit to appear at a reinforcement point (​
in seconds ?​
). 
Is the same for all units in WAB vanilla. 
 
CoutEtoile (StarCost) : relic of WEE and WAB early beta, useless. 
 
TextureForInterface: refer to a TUITextureRessource, is basically the unit’s image in the 
production menu, the small unit "cards" you see in menu. 
 
TextureMotherCountryForInterface : The country flag used in the small unit "cards" you 
see in menu. 
 
UnitTypeToken : list of localisationhash that refer to a unit’s possible deck types 
(motorized, etc…). Be sure to look for the hash at a interface_outgame.dic. Thanks to 
AJE. 
 
UnitMovingType : determine a unit’s locomotion type (tracked, wheeled…). ​
ight be 
M
useless since a proper module already take care of this. 
 
VitesseCombat (CombatSpeed) : determine a unit’s locomotion speed ? ​
ight be 
M
useless since a proper module already take care of this. 
 
IsPrototype : pretty explicit 
 
TextureTransportForInterface :​
 probably refer to the image used to represent infantry in 
a transport. 
Zgłoś jeśli naruszono regulamin