CfgVehicles Config Reference: Difference between revisions
m (→unitInfoType) |
m (→driverCanSee) |
||
Line 433: | Line 433: | ||
density = 0.5; | density = 0.5; | ||
==driverIsCommander== | ==driverIsCommander== | ||
[[TokenNameValueTypess|Bool]] | [[TokenNameValueTypess|Bool]] |
Revision as of 11:36, 2 July 2006
Introduction
TokenName Reference
Simply put, Token Name & Value pairs are as follows
SomeName = SomeValue;
Token Names are used extensively throughout ofp 'text' files.
This article details the token-names available in Config.cpp , description.ext and mission.sqm. The primary focus of this document is the TokenNames used for various aspects of controlling models within Addons. Description.ext and mission.sqm are included because many of the 'tokens' are common to all.
For instance, when creating a model using class statements inside a Config.cpp, to access it later, via the mission editor
scope=2;
This article lists token names, their value ranges, and their type.
Where not specifcally specified, the 'useage'of the token name is within Config.cpp, class CfgVehicles.
Legend:
Integer: A signed value that will be held in 4 bytes.
Boolean: An Integer value of 0 or 1. This is a 'convenience type' in humanly readable text. The engine stores it as an integer.
String: Any string value. ALL STRINGS MUST BE ENCLOSED IN QUOTES for Elite. These strings are misinterpreted as #defines otherwise.
Array: An array []={...}
float Array: An array of floats only string Arrray: should be obvious integer Array: ditto Complex Array: A mixture of multiple types, includig embedded arrays.
Variable Array: the number of elements for this array in this class model can have a varying number of elements (depending on context)
Notes: For Models and other items using p3d files, the .p3d extension is not reguired. Similar comment for pac/paa files, and wss (sound) files where appropriate
A
...Action
commanderAction = "ManActTestDriver"; driverAction = "ManActTestDriver"; gunnerAction = "ManActAH1Gunner";
cargoAction
Variable String Array:
cargoAction[] = {"ManActM113Medic","ManActM113Medic","ManActM113Injured"};
Note that unlike driverAction and gunnerAction this is an array. (for multiple positions)
The number of elements in this array correspond to the #transportSoldier value declared for this class.
...InAction
commanderInAction = "ManActTestDriver"; driverInAction = "ManActTestDriver"; gunnerInAction = "ManActTestDriver";
...AngleX
Integer Degrees
initAngleX = 0; minAngleX = -30; maxAngleX = 30;
...AngleY
Integer Degrees
initAngleY = 0; minAngleY = -30; maxAngleY = 30;
initCargoAngleY
Integer Degrees
initCargoAngleY = 185;
access
Integer: Determines the manipulability of the class.
access=1;
0 ReadAndWrite additional values can be added 1 ReadAndCreate only adding new class members is allowed 2 ReadOnly no modifications enabled 3 ReadOnlyVerified no modifications enabled, CRC test applied
All BIS classes are ReadOnlyVerified and can only be inherited into a new class
accuracy
Float: Default value = 0.02.
Determines how easy an object is to identify. Smaller values are easier to detect.
Typically, buildings are 0.2, vehicles, 0.5
A value of 1000 causes the underlying class to be identified instead. Eg bushy trees, pink trees and yellow trees, can all be 'identified' as "trees". The description "bushy trees" is then used solely when Editing. See #VehicleClass
accuracy = 0.2; // buildings accuracy = 0.5; //small vehicles accuracy = 0.9;//truck accuracy = 3.500000;//sniper accuracy = 1.500000;//lawsoldier accuracy = 1000;//soldier // identify (most) solders as 'man'
Related TokenNames
#scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
acceleration
new Integer: metres per second
acceleration = 7;
aileronSensitivity
new Float
aileronsensitivity = 0.66;
airFriction
new Array: 3 separate tokens, airFriction0[],airFriction1[],airFriction2[] that define the X Y and Z component respectively.
airFriction2[] = {25,12,2.500000};
ambient
new Array: Used by reflectors
ambient[] = {0.070000,0.070000,0.070000,1.000000};
animated
Bool : Default Value true
Used by class models that inherit an animated 'vehicle' to turn those aspects of the vehicle off.
animated = false;
model is animated, or not.
when set true, the animation class, if any, happens, otherwise it doesn't
see animations class
animPeriod
new integer: This TokenName is used inside AnimationSources
animPeriod = 1;
animation...
new String: These animation strings point to rtm files to create the movement.
animationFlag = "\AnyAddon\AnyRTM(.rtm)";// to wiggle flag in wind animationOpen = "\AnyAddon\AnyRTM(.rtm)";// to open or close doors (eg) animationDrop = "\AnyAddon\AnyRTM(.rtm)";
animationSource...
new String
animationSourceBody = "Turret_2"; animationSourceGun = "Gun_2"; animationSourceHatch = "hatchCommander";
armor (integer)
Integer: A strength value of how much external damage can be taken before 'destruction'. Below are general ranges to give some idea.
armor = 3; // man armor = 10; // motorcycle armor = 20; // a small car armor = 15..60; // aircraft armor = 150; // buildings armor = 150..300; // bmp armor = 400...900; // tank armor = 300; // boat armor = 10000; // ship
If unspecified (or not inherited) the default value is 30
1 bullet will kill armor <=20
2 bullets <=40
3 bullets 50
armor (float)
Float: The floating version of armor type is only used in Hit... classes, eg HitTurret HitBody
armor = 1.4; // a bee armor = 0.8;// a turret
armor...
armorBody = 0.4; // default // for veicles general armorStructural= 1; //ranges btwn 1 and 4.0, default 1 armorFuel = 1.4;// default armorGlass = 0.5;// default armorLights = 0.4; // defualt 0.4 in all models. armorWheels = 0.05;//default // for tanks armorHull = 1; armorTurret = 0.8; armorGun = 0.6; armorEngine = 0.8; armorTracks = 0.6; // for man armorHead = 0.7; armorBody = 0.8; armorHands = 0.5; armorLegs = 0.5; // hellicopets armorHull = 0.5; armorEngine = 0.6; armorAvionics = 1.4; armorVRotor = 0.5; armorHRotor = 0.7; armorMissiles = 1.6; armorGlass = 0.5;
attendant
Bool: Default false
Used for 'vehicles' to repair other vehicles. Thus a hospital has an attendant that can repair soldiers. (so does a medic)
attendant = true;
Related TokenNames: #hiddenSelections
audible
float: Default Value 1
audible = .05; //man audible = 3;//motorcyle audible = 6;//tank/ship
how loud you are
see #camouflage
autocenter
bool: Default true
autocenter = false; // man
B
body
new String:
body = "mainTurret";
brakeDistance
old Float:
brakeDistance= 1.0;
brightness
new Float:
brightness = 1.0;
C
...CanSee
String (math formula)
gunnerCanSee = "4+8+16 +1"; // new commanderCanSee = 31; // this appears to be wrong
...CargoAngleY
new Integer degrees
initCargoAngleY = 10; minCargoAngleY = -60; maxCargoAngleY = 120;
camouflage
Float: Default Value = 2.
how difficult to spot. bigger = easier
camouflage = 0.6; // snipers camouflage = 1; // man camouflage = 4; // trucks camouflage = 8; // tanks
what is the relationship between this and #accuracy?
Related TokenNames
#scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
can...
canBeShot
new Boolean: Declares whether bullets have any effect
canBeShot = true;
canFloat
Boolean: Default value: false
Used to allow vehicles (such as BMP) not to sink !
canFloat = true;
canLock
new Boolean:
canLock = 0;
cargoIsCoDriver
cargoIsCoDriver[] = {false,false,false,false,true};// 5th position in this vehicle
The number of elements in this array correspond to the #transportSoldier value declared for this class model.
cast...Shadow
castCargoShadow = true; castCommanderShadow = true; // not seen in new castDriverShadow = false; castGunnerShadow = true;
cloud...
new Various(Strings,Floats,Arrays)
cloud.. TokenNames are used inside the Smoke class of animation classes
cloudletDuration = 0.900000; cloudletAnimPeriod = 1.000000; cloudletSize = 0.100000; cloudletAlpha = 0.800000; cloudletGrowUp = 0.400000; cloudletFadeIn = 0.000000; cloudletFadeOut = 5.000000; cloudletAccY = -0.100000; cloudletMinYSpeed = 0.300000; cloudletMaxYSpeed = 1.500000; cloudletShape = "\ca\data\cl_basic"; cloudletColor[] = {1,1,1,0};
cobraLight
new String : Used as a core model for all other 'air' craft.
cobraLight = "AnyAddon\AnyP3d(.p3d)";
coefInside...
coefInside = 0.5; coefInsideHeur = 0.8;
color
new Array: of floats. Used by reflectors
color[] = {0.800000,0.800000,1.000000,1.000000};
commanding
new Integer: part of Turret class
commanding = -1;
cost
Integer: Default Value 50,0000
This value reflects the attractiveness of the target to the enemu ai. _when_ all other considerations are equal. A soldier eg is not interested in Air, despite it's highly attractive cost values. On the other hand, he is interested in a medic, since a medic (in normal configs) has a (whiel small) a higher cost, than others in the group, including the officer.
cost = 10000000;// an air vehicle is typically this value cost = 8; // a medic; cost = 1; // a grunt cost = 4; // an officer cost = 0; // most buildings;
Related TokenNames: type , #cost , #threat
count (string)
new String: (math formula). Used in magazine class to declare amount (of bullets)
count = "30*1";
crew
String: Reflects whether vehicle is manned, and what.
crew = "SoldierWPilot";
D
dammage...
new Variable String Array:
dammageHalf[] = {"\AnyAddon\AnyPAA.paa","\AnyAddon\AnyOtherPAA.paa", ...}; dammageFull[] = {"\AnyAddon\AnyPAA.paa","\AnyAddon\AnyOtherPAA.paa", ...};
When 'vehicle' is considered at least half way to destruction, the series of pictures is applied to the model.
damper...
new Float:
damperSize = 0.100000; damperForce = 1;
destrType
String: Default Value= DestructDefault
Used for animation, sound, and final 'look' of vehicle.
This was an integer value prior to Elite
destrType = "DestructNo"; // nothing happens destrType = "DestructBuilding"; // smoke. explosion destrType = "DestructEngine"; // smoke only destrType = "DestructTree"; // smoke, crushing, falls over destrType = "DestructTent"; // smoke, crushing, flattens destrType = "DestructMan"; destrType = "DestructDefault"; // =building
Tent and Tree are no longer identifiable when destroyed if not class 'things'
disappearAtContact
old
direction
new Float:
direction = "konec L svetla";
displayName
String: Default value = "Unknown" or "Vehicle"
Selects object uniquely in the Mission Editor, and separately, is used to identify object in game according to #accuracy. For instance when pointing your men to an object while in a mission, it is this displayName that is used.
It is good practice to use a stringtable.csv that should accompany your addon so that
- All names and labels are in one place instead of hunting for them.
- For language differences
displayName = "$STR_DN_AH1Z";
Note, that will careful crafting of classes, different colored 'rocks' can all be called the same displayName (rock) in the mission itself. See #scope and #accuracy for details.
See #nameSound for definition of what is actually 'said'
Related TokenNames #scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
displayNameShort
new String:
displayNameShort = "$STR_DN_UH60";
deltaT
Integer: This TokenName is used inside the Smoke class of animation classes
deltaT = -500;
density
new Float: This TokenName is used inside the Smoke class of animation classes
density = 0.5;
driverIsCommander
driverIsCommander = true;
driverForceOptics
new Bool
driverForceOptics = true;
E
...Elev
Integer:Degrees
initElev = -80; minElev = -60; maxElev = 10;
ejectDamageLimit
new Float: You can get hurt, but you can't die with vals less than 1.0
ejectDamageLimit = 0.750000;
ejectDead...
ejectDeadGunner = false; ejectDeadCargo = true; ejectDeadDriver = true; ejectDeadCommander = true;
ejectSpeed
new Array
ejectSpeed[] = {0,0,0};
enableSweep
new Boolean:
enableSweep = false;
envelope
envelope[] = {0.000000,0.000000,0.300000,1.000000,2.500000,3.300000,3.500000,3.200000,2.500000,2.000000,1.500000,1.000000};
elevatorSensitivity
new Float
elevatorSensitivity = 0.2;
extCameraPosition[]
float Array: Default {0,2,-20};
extCameraPosition[] = {0,5,-30};//plane extCameraPosition[] = {0,1,-10};//cars extCameraPosition[] = {0,1.500000,-9};//tankls extCameraPosition[] = {0,0.300000,-3.500000};//man
F
...minFireTime
old
minFireTime=
fired
new String:
fired = "_this exec ""\AnyAddon\AnySQS.sqs"""; // note the ""
flapsFrictionCoef
new Integer
flapsFrictionCoef = 2;
flySound
new Array
flySound[] = {"\AddonName\AnySound.wss",0.000000,1,1};
see #sound...
forceHide...
forceHideDriver = true; forceHideGunner = false; forceHideCommander=true;
formation...
old
formationX= formationZ= formationTime=
fov
fov = 0.500000;
...Fov
new Float
initFov = 0.100000; minFov = 0.030000; maxFov = 1.200000;
fuelCapacity
Integer: Default Value 0 (litres)
fuelCapacity = 50; // motorcyle fuelCapacity = 100; // car fuelCapacity = 700; // tank fuelCapacity = 1000; // air
G
gearRetracting
gearRetracting = 1;
getInAction
old
getInAction=
getInRadius
old Float: distance from vehicle where getting in is possible
getInRadius= getInRadius=2.5; //meters is normal
getOutAction
old
getOutAction=
gun
new String:
gun = "mainGun";
gunAimDown
new Float
gunAimDown = 0.07;
gunBeg
new String:
gunBeg = "muzzle_1";
gunEnd
new String:
gunEnd = "chamber_1";
gunnerHasFlares
new Boolean
gunnerHasFlares = false;
...GunnerMayFire
outGunnerMayFire = true; inGunnerMayFire = false;
gunnerName
new String
gunnerName = "$STR_POSITION_CREWCHIEF";
gunnerOutOptics...
new String
gunnerOutOpticsModel = "";
gunnerOutOpticsColor[] = {0,0,0,1};
gunnerOutForceOptics = false;
gunnerOutOpticsShowCursor = false;
H
...Height
new Integer:
minHeight = 5; //Min height in metres above sealevel. maxHeight = 50;//max height above sea level. avgHeight = 10;
has...
hasGunner = false; hasCommander = true; hasDriver=true;
This array is used for soldiers (eg) to heal (eg) when they come close to a medic. It is a preferential way of dealing with Actions. Ie hide them, rather than disable them.
hiddenSelections[] = {"pruh"}; // bmp/tank hiddenSelections[] = {ammo}; // trucks hiddenSelections[] = {medic}; // soldiers
Note that "ammo", "pruh" and "medic" are GROUP Actions. They can define more than one action.
pruh for instance allows getting in several positions of the vehicle.
'medic' not only allows healing.
Because this is an array, multiple and different group actions, are possible.
Related TokenNames: #attendant
hide...
hideProxyInCombat = false; //default (true for tanks) hideUnitInfo = false;// default see #unitInfoType hideWeaponsCargo = false;// default hideWeaponsCommander = true;// default hideWeaponsDriver = true;// default hideWeaponsGunner = true;// default
hitpoint
new String:
hitpoint = "L svetlo";
I
icon
String: Default Value = "unknown_object.paa"
This value us used by the map editor to show the building or vehicle when editing. It is not normally visible during game play. (but can be)
The icon can be any jpg, paa, or pac file. paa is default. Note that Elite cannot handle jpegs.
icon = "\AnyAddon\AnyPAA(.paa)";
Related TokenName(s): #mapSize
in
new Float: This TokenName is used inside the Smoke class of animation classes
in= 0.0;
see #out
init
init = "[(_this select 0)] exec ""\AnyAddon\AnySqs.sqs"""; // note the ""
initT
new Integer: This TokenName is used inside the Smoke class of animation classes
initT = 1000;
initYSpeed
new Float: This TokenName is used inside the Smoke class of animation classes
initYSpeed = 1.7;
interval
new Float: This TokenName is used inside the Smoke class of animation classes
interval = 0.010000;
irScanGround
Bool: Default true.
Probaly used to stop ai looking down
irScanGround = false; // tanks
irScanRange...
Integer: Default 0
irScanRange = 4000; // perhaps abug irScanRangeMin = 500; // tanks general irScanRangeMax = 4000; irScanRangeMin = 2000; // air irScanRangeMax = 10000; irScanRangeMin = 4000; // a vulcan irScanRangeMax = 10000;
irScanToEyeFactor
Integer: Default 1
irScanToEyeFactor = 2;//air irScanToEyeFactor = 5;//shilka
irTarget
Bool: Default true.
Used for (some) buildings so that they don't show up on tank radar
irTarget = false; // man
K
killed
new String:
killed = "[(_this select 0),1,1,0,0] exec ""\AnyAddon\AnySQS.sqs""";// note the ""
L
ladders[]
Embedded Array: The ladders array is used to declare one or more ladder pairs inside the model.
ladders[] = { {"start","end" } }; // a building wiht one ladder ladders[] = { {"start1","end1" } , {"start2","end2" } };// two ladder building //etc
Note that unfortunately, the 'start' and 'end' labels are arbitrary for each model. You cannot have a generic ladder building as such.
landingAoa
new String (math formula) Landing Angle of Approach
landingAoa = "3.5*3.1415/180";
landingSpeed
new Integer
landingSpeed = 75;
laserscanner
Boolean: Determines if a vehicle has laser capability.
laserScanner = true;
laserTarget
old
laserTarget= =
library
new String: This TokenName is associated with the library class of a vehicle (if any). It is used to give a 'memo' style full screen info on the given object. Example of use:
class Library { libTextDesc = "$STR_LIB_AH1Z"; };
M
magazine
new Array: used in TransportMagazines class this specifies the type of ammo in the magzine and the amount.
magazine = "30Rnd_556x45_Stanag"; count = "30*1";
magazines
Array: variable strings
magazines[] = {"750Rnd_M197_AH1","38Rnd_FFAR","8Rnd_Hellfire"};
mainRotorSpeed
new Integer:
mainRotorSpeed = -1;
backRotorSpeed
new Float backRotorSpeed = 1.0;
hmmm, that's curious, it accepts floats or ints.
mapSize
Float: Default Value = 10 (meters).
Used for the map editor to show the icon associated with this model class.
There is no x y component to this, the meaurement units are meters.
To creat a circular, rectangular or other 'non sqaure' image, you need to make a pac file for the icon with, a transparent layer.
mapSize = 0.7; // small object such as a tree mapSize = 4; // a small'ish building
The Mission Editor map is not very good in this regard (as noted above). However, the main problem is the base classes of the engine. The mapSize= for most objects, particularly buildings, is a one shoe fits all. A forest, eg, is the same mapSize= as a tree !!!
Later Oem addons, *generally* are better and more specific in this regard, making position and fitting a little easier.
marker
new String : used as a core for all other air craft when looking on map.
marker = "\AnyAddon\AnyP3d.(p3d")";
material
new Integer:
material = 50;
maxT
new Integer: This TokenName is used inside the Smoke class of animation classes
maxT = 0;
memoryPointExhaust...
new String:
memoryPointExhaust = "exhaust_start"; memoryPointExhaustDir = "exhaust_end";
memoryPointGun
new String:
memoryPointGun = "machinegun";
memoryPointGunnerOptics
new String
memoryPointGunnerOptics = "gunnerview";
memoryPointGunnerOutOptics
new String
memoryPointGunnerOutOptics = "commander_weapon_view";
memoryPoint...Missile
new String:
memoryPointLMissile = "Missile_1"; memoryPointRMissile = "Missile_2";
memoryPoint...Rocket
new String:
memoryPointLRocket = "Rocket_1"; memoryPointRRocket = "Rocket_2";
memoryPointsGetIn...
new String:
memoryPointsGetInCargo = "pos_cargo"; memoryPointsGetInCoDriver = "pos_codriver"; memoryPointsGetInCommander = "pos_commander"; memoryPointsGetInDriver = "pos_driver"; memoryPointsGetInGunner = "pos gunner";
memoryPointsGetIn...Dir
new String:
memoryPointsGetInCargoDir = "pos_cargo_dir"; memoryPointsGetInCoDriverDir = "pos_codriver_dir"; memoryPointsGetInCommanderDir = "pos_commander_dir"; memoryPointsGetInDriverDir = "pos_driver_dir"; memoryPointsGetInGunnerDir = "pos gunner dir";
memoryPointSupply
new String:
memoryPointSupply = "supply";
memoryPointTrack...
new String:
memoryPointTrackFLL = "tyreTrack_1_1l"; memoryPointTrackFLR = "tyreTrack_1_1r"; memoryPointTrackBLL = "tyreTrack_1_2l"; memoryPointTrackBLR = "tyreTrack_1_2r"; memoryPointTrackFRL = "tyreTrack_2_1l"; memoryPointTrackFRR = "tyreTrack_2_1r"; memoryPointTrackBRL = "tyreTrack_2_2l"; memoryPointTrackBRR = "tyreTrack_2_2r";
model
String: Default Value= "empty.p3d"
Location in the addon where the p3d model resides.
model = "\AddonName\anyp3d(.p3d)";
Whera a class is not a visible 'object', such as a BaseClass. You can specify
model="";
this cuts down on load and access.
Related TokenName: #simulation, #reversed
N
name
String: Used only in HitXXX classes i think.
name = "motor";
nameSound
String: Default value: "Target"
Namesound is used by the AI audio to indicate verbally where to go, what 'vehicle' to attack. Thus the audio speech "move to 'rock' 3 o'clock' is derived from the nameSound.
nameSound = "rock";
Many different nameSounds can be selected. Here are just a few.
nameSound = crew; nameSound = target; nameSound = tank; nameSound = house;
The actual descriptive text accompanying the 'sound' can be different see #displayName
Typically, a collection of buildings (eg) will be configured as follows
class GenBuilding : NonStrategic { scope=private; // internal use only VehicleClass="Some Editor Group Name"; namesound="house"; }; class YellowBuilding: GenBuilding { scope=public; name="YellowBuilding"; model="Some yellow building.p3d"; };
Related TokenNames #scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
nightVision
noseDownCoef
new Float
noseDownCoef = 0.025;
O
...OpticsColor
old Array
commanderOpticsColor= {...}; driverOpticsColor= {...}; gunnerOpticsColor= {...};
...OpticsModel
commanderOpticsModel
commanderOpticsModel= "\AnyPbo\AnyP3d(.p3d)";
driverOpticsModel
driverOpticsModel = "\AnyPbo\AnyP3d(.p3d)";
gunnerOptics...
gunnerOpticsModel
gunnerOpticsModel= "\AnyPbo\AnyP3d(.p3d)";
gunnerOpticsShowCursor
gunnerOpticsShowCursor = true;
out
Float: This TokenName is used inside the Smoke class of animation classes
out= 0.0;
see #in
P
passThrough
passThrough = 1;
picture
String: Default: iaston.paa
I think this is for briefing Information icon click
picture = "\AnyAddon\AnyPAA(.paa)";
position
Float: This TokenName is used inside the Light class of animation classes
position = "ohniste";
primary
Boolean: For models that can have, (but don't necessarily do have) multiple internal objects of the same type (turrets eg). One of them, is declated the main, or primary turret. There may indeed be only one 'turret'.
primary = true;
primary...
primaryGunner = false; primaryObserver = true;
proxyIndex
proxyIndex = 2;
proxyType
proxyType = "CPCommander";
position
position = "L svetlo";
R
reversed
Boolean: Default true
Normally, models ARE reversed with respect to how they present on the screen after editing with tools like oxygen (eg) This overrides the default. See #model
reversed = false; // class thing
rotor...
rotorBig
rotorBig = "vrtule_velka";
rotorBigBlend
rotorBigBlend = "vrtule_velka_bl";
rotorSmall
rotorSmall = "vrtule_mala";
rotorSmallBlend
rotorSmallBlend = "vrtule_mala_bl";
S
scope
Integer: Default value = private.
scope = public;
Scope in concept is the same as the C++ reserved words of public, protected and private.
Defines normally exist at the top of a well written config.cpp to make meanings clearer.
#define private 0 #define protected 1 #define public 2
The meaning of each is as follows
private:
only other classes within the same config cpp can access, or 'inherit' this class.
public:
Any classes declared public are CamCreateabale, and selectable via the Editor.
protected:
Identical to public, except the class will not be listed in the mission editor. A very common form of use for this is
class vegetables { scope=protected; VehicleClass="Vegetables. namesound= whatever; icon= "vegetableIcon.paa"; /// put any other common characteristics in here }; class GreenOnions : vegetables { scope = public; name="Green Onion; } class PurpleOnion : vegetables { ....
The effect here is to reduce (considerably) not only the amount of typing, but memory storage too. It is only the public classes that are listed in the Mission Editor. So in above example while each one of these has a separate name=, they are ALL grouped' in the Editor's 'Vegetables'
In the above example, it is just as useful to declare the base class 'private. But, see below, and see #accuracy
Protected classes are CamCreatable in the mission.sqm.
Protected classes are immensely useful to 'hide' obsolete models that are still required to maintain compatibility with older missions. Ie older missions will still be playable, but newly created ones will only 'get at' the newer improvements specified in a public class. This
class OriginalThing { scope=protected; .... // lots of original things .... }; class ImprovedThing : OriginalThing //<<<< inherits it all { scope=public; ... // lots of new improved things ... };
Related TokenNames
#scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
secondaryExplosion
old
secondaryExplosion=
sensitivity
old
sensitivity=
sensitivityEar
old
sensitivityEar=
selection
new String:
selection = "L svetlo";
Selection...
new String:
selectionBackLights = "light_back"; selectionBrakeLights = "light_brake"; selectionFireAnim = "muzzleflash"; selectionHRotorStill= "mainRotorStatic"; selectionHRotorMove = "mainRotorBlurred"; selectionVRotorStill = "tailRotorStatic"; selectionVRotorMove = "tailRotorBlurred"; selectionFabric = "latka";
shape
new Float: This TokenName is used inside the Light class of animation classes
shape = "koulesvetlo";
showgunneroptics
new Boolean:
showgunneroptics = 0;
sound
new NameTokenValueTypes:String : Used by animated objects (campfire eg) to give sound effect.
sound = "Fire";
side
Integer: Default Value: NEUTRAL.
The side, when declared, sets the 'vehicle' to east, west, resistance, civilian. The effect differs according to the 'vehicle' itself. Eg soldiers, versus hospitals or repair trucks that can only be used by same side, if specifically sided.
Well written missions (and configs) use defines at top of file to make this more legible.
#define NO_SIDE -1 #define EAST 0 // (Russian) #define WEST 1 // (Nato) #define RESISISTANCE 2 // Guerilla #define CIVILIAN 3 #define NEUTRAL 4 #define ENEMY 5 #define FRIENDLY 6 #define LOGIC 7
side = EAST;
NEUTRAL is the general case for all objects.
NO_SIDE is used for ambient seagulls and wolves (see #sound). It differs from NEUTRAL in that the engine spends no time looking for interraction with other objects.
simulation
String: Default value: invisible.
The engine behaviour with this #model.
simulation = "SeaGull"; simulation = "thing"; simulation = "fire"; simulation = "flag"; simulation = "house"; simulation = airplane,helicopter,tank // (eg)
Related TokenName: #model
singSound
new Array: normally for a bird see #sound...
singSound[] = {"\AddonName\SoundFile.ogg",0.031623,1,1};
size
new Float: This TokenName is used inside the Smoke class of animation classes
size = 0.1;
sound[]
new Complex Array:
sound[] = {"\anyPbo\AnySound(.wss)",10.000000,1};
sound...
also see #flySound , #singSound
soundCrash
soundCrash[] = {"\AnyAddon\AnySound(.wss)",0.010000,1};
soundDammage
soundDammage[] = {"\AnyAddon\AnySound(.wss)",0.010000,1};
soundEngine
soundEngine[] = {"\AnyAddon\AnySound(.wss)",5.623414,1};
soundEnviron
Array complex.
soundEnviron[] = {"\AnyAddon\AnySound(.wss)",0.100000,1.000000};
SoundEnvironExt
old Array complex.
soundEnvironExt[] = {...};
soundGear
new Array complex.
soundGear[] = {"\AnyAddon\AnySound(.wss)",0.316228,1};
SoundGetIn
SoundGetIn[] = {"\AnyAddon\AnySound(.wss)",0.010000,1};
soundGetOut
soundGetOut[] = {"\AnyAddon\AnySound(.wss)",0.010000,1};
soundLandCrash
soundLandCrash[] = {"\AnyAddon\AnySound(.wss)",0.010000,1};
soundServo
soundServo[] = {"\AnyAddon\AnySound(.wss)",0.100000,1.000000};
soundWaterCrash
soundWaterCrash[] = {"\AnyAddon\AnySound(.wss)",0.010000,1};
source
new' String: found in animationSources
source = "reload"; source = "time";
sourceAddress
new String: found in animationSources
sourceAddress = "loop";
...Speed
Float: In Kph.
minSpeed = -0.500000; //range 0->1 maxSpeed = 20;
spotableNightLights...
old
spotableNightLightsOff= spotableNightLightsOn=
steerAhead...
old
steerAheadSimul= steerAheadPlan=
straightDistance
new INTEGER:
straightDistance = 50;
submerged
submerged=
submergeSpeed
submergeSpeed=
supplyRadius
new Float: new In meters. This token-name lets cars (eg) fill from petrol stations (eg) without having to bang into them, or be at 'exact' angles.
supplyRadius = 2.500000;
T
...Turn
new Integer Degrees
initTurn = 90; minTurn= -70; maxTurn = 70;
turning
new Boolean: (i think)
turning = 1;
turnCoef
new Float:
turnCoef = 6.0;
terrainCoef
new Float:
terrainCoef = 6.0;
threat
float Array: Default Value {0.700000,0.500000,0.300000};
How threatening you are to unit types {Soft, Armor, Air}, respectively.
The ai for this model selects targets of opportunity, based on these values.
threat[] = {1,0.900000,0.100000}; // soldier threat[] = {1,0.500000,0.900000}; // law soldier threat[] = {0.900000,0.700000,0.300000};// bmp
Related TokenNames: type , #cost , #threat
timeToLive
Float: This TokenName is used inside the Smoke class of animation classes
timeToLive = 100000002004087730000.0;
transport...
transportAmmo
Integer: Used by supply 'vehicles' to determine total amount avaialable for entire mission. Once depleted...
A 'vehicle' in this case can be a genuine repair truck, or, a building.
transportAmmo = 300000; // reammo truck transportAmmo = 10000000;// bigship
transportFuel = 3000; //refueltruck transportRepair = 200000000; //repairtruck
transportMagazines
old? Array:
transportMagazines = {...};
TransportWeapons
old? Array:
TransportWeapons= {...};
transportMax...
Integer: default 0
transportMaxMagazines = 50; //car transportMaxWeapons = 10; transportMaxMagazines = 5; // motorcyle transportMaxWeapons = 0; transportMaxMagazines = 50; // tank transportMaxWeapons = 10; transportMaxMagazines = 20; //air transportMaxWeapons = 3; transportMaxMagazines = 100; // boat transportMaxWeapons = 20; transportMaxMagazines = 500; //ship transportMaxWeapons = 200; transportMaxMagazines = 200; // truck transportMaxWeapons = 50; transportMaxMagazines = 100; // apc transportMaxWeapons = 20; transportMaxMagazines = 200; // helicpter transportMaxWeapons = 50; transportMaxWeapons = 500; // ammo boxes transportMaxMagazines = 2000;
Values vary depending on exact tupe of 'boat' eg.
These TokenNames ate used to indicate how many units of each type an object can hold. Most objects can't hold anything.
transportSoldier
Integer: Default Value= 0.
Number of 'passengers' this vehicle can carry. The value does not include the driver, nor any vehicle positions such as gunnder (if any) or commander(if any)
transportSoldier = 3;//jeep/car transportSoldier = 50; // large ship transportSoldier = 6to10; //SmallShip transportSoldier = 3; //a10 transportSoldier = 8to12;// helicopters transportSoldier = 2or3;// ambulance transportSoldier = 8;//apc/bmp transportSoldier = 12;//truck transportSoldier = 1;//jeepmg transportSoldier = 1or2;//repair type truck
to make the game 'interesting', similar vehicles on different sides, can carry non equivalent numbers.
transportVehiclesCount
Ingeger : default 0
transportVehiclesCount = 15; // a Carrier (big ship)
transportVehiclesMass
Integer: Default 0
transportVehiclesMass = 0; // not used by any model
type (threat)
Integer: Default Value: Armored
This indicates the threat type of the 'vehicle'.
In well written configs, the 3 possible values are declared as defines at top of file for legibility
#define VSoft 0 #define VArmor 1 #define VAir 2
type = VAir;
Vehicles (and buildings) are armoured, humans are 'soft' and aircraft (obviously) are air
Related TokenNames: type , #cost , #threat
type (animation)
old Unknown: Default Value: rotation
This appears in the ReloadAnimations class
type = rotation;
typicalCargo
Variable String Array:Preloads vehicle with units (if auto)
This array can have zero or more strings.
typicalCargo[] = {"Soldier","Soldier","SoldierLAW","SoldierLAW"};
U
...UsesPilotView
new Bool:
gunnerUsesPilotView = false; commanderUsesPilotView=true;
unitInfoType
unitInfoType = "UnitInfoSoldier";
Certain 'vehicles' hide this information.
see #hideUnitInfo
unloadInCombat
old
V
vehicleClass
String: Default Value= "Objects"
Used for Mission Editor basic category selection
vehicleClass = "Air"; vehicleClass = "Support"; vehicleClass = "My Great Addon";
Related TokenNames
#scope, #accuracy, #displayName #vehicleClass #nameSound #camouflage
View...
old Array:
ViewCargo={..}; ViewCommander={..}; ViewGunner={..}; ViewPilot={..};
ViewOptics
old Array:
visibleNightLights..Off
old
visibleNightLightsOff= visibleNightLightsOn=
view...Shadow
viewCargoShadow = true; viewGunnerShadow = true;
viewGunnerInExternal
Boolean: part of Turret class
viewGunnerInExternal = true;
W
weapon
new String: found in animationSources
weapon = "M197";
weapons[]
Array: an array of selectable weaponry for the given 'vehicle'
weapons[] = {"FFARLauncher","TwinM134"};
WeaponSlots
oldInteger:
Weaponslots apply to man class (soldier, civilian, etc)
It indicates the 'gear' capacity.
man/medic 1 + 4*256 + 4096 + 2 + 4*32; sniper 1 + 16 + 4*256 + 2*4096 + 2 + 4*32; soldier 1 + 16 + 10*256 + 2*4096 + 2 + 4*32; parachute 1 + 16 + 10*256 + 2*4096 + 2 + 4*32; fakeciv 1 + 16 + 6*256 + 2*4096 + 2 + 4*32;
wheelCircumference
new Float
wheelCircumference = 4.513000;
wheelSteeringSensitivity
new Float
wheelSteeringSensitivity = 0.500000;