CfgVehicleClasses: Difference between revisions
Category: ArmA: Armed Assault: Addon Configuration
Lou Montana (talk | contribs) m (Text replacement - " ( *class [a-zA-Z0-9_]+): *([a-zA-Z0-9_]+ *) " to " $1 : $2 ") |
Lou Montana (talk | contribs) m (Text replacement - " ( *class [a-zA-Z0-9_]+): +" to " $1 : ") |
||
| Line 73: | Line 73: | ||
{ | { | ||
class All {}; | class All {}; | ||
class AllVehicles: All {}; | class AllVehicles : All {}; | ||
class Land: AllVehicles {}; | class Land : AllVehicles {}; | ||
class Man:Land {}; | class Man:Land {}; | ||
class CAManBase: Man {}; | class CAManBase : Man {}; | ||
class SoldierWB: CAManBase {}; | class SoldierWB : CAManBase {}; | ||
class MySoldier : SoldierWB | class MySoldier : SoldierWB | ||
{ | { | ||
Revision as of 11:04, 6 December 2023
cfgVehicleClasses is the new way of using custom vehicleClasses in Armed Assault.
The cfgVehicleClasses entry
The way this functions is by a separate cfgVehicleClasses entry, somewhere before the cfgVehicles.
It would appear like so:
class cfgVehicleClasses
{
class MyClass
{
displayName = "My Addons";
};
};
The vehicleClass entry
In the cfgVehicleClasses entry for your addon, you would insert
vehicleClass = "MyClass";
Example Config
Here is an example config.cpp with correct use of cfgVehicleClasses:
// some basic defines
#define TEast 0
#define TWest 1
#define TGuerrila 2
#define TCivilian 3
#define TSideUnknown 4
#define TEnemy 5
#define TFriendly 6
#define TLogic 7
#define true 1
#define false 0
// type scope
#define private 0
#define protected 1
#define public 2
#define WeaponNoSlot 0// dummy weapons
#define WeaponSlotPrimary 1// primary weapons
#define WeaponSlotSecondary 16// secondary weapons
#define WeaponSlotItem 256// items
#define WeaponSlotBinocular 4096// binocular
#define WeaponHardMounted 65536
class CfgPatches
{
class MySoldier
{
units[] = {"MySoldier"};
requiredAddons[] = {};
weapons[] = {};
requiredVersion = 1.00;
};
};
class CfgVehicleClasses
{
class MySoldierClass
{
displayName = "My Soldiers";
};
};
class cfgVehicles
{
class All {};
class AllVehicles : All {};
class Land : AllVehicles {};
class Man:Land {};
class CAManBase : Man {};
class SoldierWB : CAManBase {};
class MySoldier : SoldierWB
{
displayName="My Soldier";
vehicleClass = "MySoldierClass";
weapons[]={"M4AIM","M9","Throw","Put"};
magazines[]={"30Rnd_556x45_Stanag","15Rnd_9x19_M9","15Rnd_9x19_M9"};
};
};
Here is an example config.cpp with simplified & safer use of cfgVehicleClasses (ArmA):
// some basic defines
#define TEast 0
#define TWest 1
#define TGuerrila 2
#define TCivilian 3
#define TSideUnknown 4
#define TEnemy 5
#define TFriendly 6
#define TLogic 7
#define true 1
#define false 0
// type scope
#define private 0
#define protected 1
#define public 2
#define WeaponNoSlot 0// dummy weapons
#define WeaponSlotPrimary 1// primary weapons
#define WeaponSlotSecondary 16// secondary weapons
#define WeaponSlotItem 256// items
#define WeaponSlotBinocular 4096// binocular
#define WeaponHardMounted 65536
class CfgPatches
{
class MySoldier
{
units[] = {"MySoldier"};
requiredAddons[] = {"CACharacters"}; //to avoid enlisting addon in every new mission
weapons[] = {};
requiredVersion = 1.00;
};
};
class CfgVehicleClasses
{
class MySoldierClass
{
displayName = "My Soldiers";
};
};
class cfgVehicles
{
class SoldierWB; //ArmA addonmaker doesn't need to know whole parency tree
class MySoldier : SoldierWB
{
displayName="My Soldier";
vehicleClass = "MySoldierClass";
weapons[]={"M4AIM","M9","Throw","Put"};
magazines[]={"30Rnd_556x45_Stanag","15Rnd_9x19_M9","15Rnd_9x19_M9"};
};
};
Second example shows safer and easier way to describe parent class in vehicle config.
Result
The end result would appear somewhat like this: