CfgVehicles Config Reference: Difference between revisions
(→I) |
(→C) |
||
Line 83: | Line 83: | ||
cargoAction[] = {"TestDriver"}; | cargoAction[] = {"TestDriver"}; | ||
==cargoIsCoDriver== | ==cargoIsCoDriver== | ||
[[ | [[Boolean]] [[Array]] | ||
cargoIsCoDriver[] = {false,false,false,false,true};// 5th position in this vehicle | |||
==castCargoShadow== | ==cast...Shadow== | ||
===castCargoShadow=== | |||
[[Boolean]] | [[Boolean]] | ||
castCargoShadow = | castCargoShadow = true; | ||
==castDriverShadow== | ===castDriverShadow=== | ||
''[[Boolean]]'': | ''[[Boolean]]'': | ||
castDriverShadow = 1; | castDriverShadow = 1; | ||
Line 95: | Line 96: | ||
''[[Boolean]]'': part of Turret class | ''[[Boolean]]'': part of Turret class | ||
castGunnerShadow = 1; | castGunnerShadow = 1; | ||
==color== | ==color== | ||
[[Array]]: of floats. Used by reflectors | [[Array]]: of floats. Used by reflectors |
Revision as of 16:06, 30 June 2006
Introduction
Addon Command Reference
This article details the token-verbs available in Config.cpp for addons created in Operation Flashpoint, the Resistence upgrade, and Elite. If it is not closer determined where to use a command, you can use it in CfgVehicles.
Legend:
INTEGER: A signed value to 65k.
BOOLEAN: An Integer value of 0 or 1
ARRAY: An array []=
STRING: Any string value. ALL STRINGS MUST BE ENCLOSED IN QUOTES for Elite. These strings are misinterpreted as #defines otherwise.
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
airFriction
Used in: cfgNonAiVehicles
ARRAY: 3 separate tokens, airFriction0[],airFriction1[],airFriction2[] that define the X Y and Z component respectively.
airFriction2[] = {25,12,2.500000};
acceleration
Used in: cfgNonAiVehicles
Integer: metres per second
acceleration = 7;
accuracy
accuracy = 0.500000;
ambient
Array: Used by reflectors
ambient[] = {0.070000,0.070000,0.070000,1.000000};
animations...
animationSourceBody
animationSourceBody = "Turret_2";
animationSourceGun
animationSourceGun = "Gun_2";
animationSourceHatch
animationSourceHatch = "";
armor
Float: A strength value of how much external damage can be taken before 'destruction'.
armor = 1.400000; // a bee armor = 50; // a helicopter
avgHeight
Used in: cfgNonAiVehicles
Integer: height in metres above sealevel. See #minHeight , #maxHeight
avgHeight = 10;
B
brightness
brightness = 1.000000;
body
body = "mainTurret";
C
canBeShot
Used in: cfgNonAiVehicles
BOOLEAN: Declares whether bullets have any effect
canBeShot = 1;
cargoAction
Array: see #driverAction
cargoAction[] = {"TestDriver"};
cargoIsCoDriver
cargoIsCoDriver[] = {false,false,false,false,true};// 5th position in this vehicle
cast...Shadow
castCargoShadow
castCargoShadow = true;
castDriverShadow
castDriverShadow = 1;
castGunnerShadow
Boolean: part of Turret class
castGunnerShadow = 1;
color
Array: of floats. Used by reflectors
color[] = {0.800000,0.800000,1.000000,1.000000};
commanding
Integer: part of Turret class
commanding = -1;
cost
Integer: 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 tyoically this value cost = 8; // a medic; cost = 1; // a grunt cost = 4; // an officer cost = 0; // most buildings;
crew
String: Reflects whether vehicle is manned, and what.
crew = "SoldierWPilot";
D
dammageHalf
Array: of varable number of strings
dammageHalf[] = {"\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.
dammageFull
Array: of varable number of strings
dammageFull[] = {"\AnyAddon\AnyPAA.paa","\AnyAddon\AnyOtherPAA.paa", ...};
see #dammageHalf for the self evident difference.
direction
direction = "konec L svetla";
displayName
String: This value is used to select the unit in the Mission Editor, as well as when pointing your team to an object in the game.
Ordinaruly it is good practice to acess the stringtable.csv that accompanies the addont so that
- all names and labels are in one place
- for language differences
displayName = "$STR_DN_AH1Z";
displayNameShort
displayNameShort = "$STR_DN_UH60";
driverAction
String: see gunnerAction
driverAction = "ManActTestDriver";
E
enableSweep
enableSweep = false;
extCameraPosition[]
extCameraPosition[] = {0,2,-15};
F
fired
fired = "_this exec ""\AnyAddon\AnySQS.sqs"""; // note the ""
flySound
flySound[] = {"\AddonName\AnySound.wss",0.000000,1,1};
see #sound...
G
gun
gun = "mainGun";
gunnerAction
gunnerAction = "ManActAH1Gunner";
see #driverAction
gunBeg
gunBeg = "muzzle_1";
gunEnd
gunEnd = "chamber_1";
gunnerOpticsModel
String: part of NewTurret class
gunnerOpticsModel = "\AnyAddon\AnyP3d(.p3d)";
gunnerName
gunnerName = "$STR_POSITION_CREWCHIEF";
gunnerUsesPilotView
gunnerUsesPilotView = 1;
H
hitpoint
hitpoint = "L svetlo";
hasGunnerr
hasGunner = 0;
I
icon
This value us used exclusively by the map editor to show the building or vehicle when editing. It is not normally visible during game play.
The icon can be any jpg, paa, or pac file. paa is default.
icon = "\AnyAddon\AnyPAA(.paa)";
init
init = "[(_this select 0)] exec ""\AnyAddon\AnySqs.sqs"""; // note the ""
initAngleX
Integer Degrees
initAngleX = 0;
minAngleX
Integer Degrees
minAngleX = -30;
maxAngleX
Integer Degrees
maxAngleX = 30;
initAngleY
Integer Degrees
initAngleY = 0;
minAngleY
Integer Degrees
minAngleY = -30;
maxAngleY
Integer Degrees
maxAngleY = 30;
initCargoAngleY
initCargoAngleY = 10;
minCargoAngleY
Integer: In Degrees.
minCargoAngleY = -60;
maxCargoAngleY
Integer: In Degrees.
maxCargoAngleY = 120;
initElev
Integer:Degrees
initElev = -80;
minElev
Integer: Signed degrees
minElev = -60;
maxElev
Integer: signed degrees max angle of elevation.
maxElev = 10;
initFov
initFov = 0.100000;
minFov
minFov = 0.030000;
maxFov
maxFov = 1.200000;
initTurn
Integer Degrees
initTurn = 90;
minTurn
Integer: signed degrees angle of turning.
minTurn= -70;
maxTurn
Integer: signed degrees max angle of turning.
maxTurn = 70;
K
killed
killed = "[(_this select 0),1,1,0,0] exec ""\AnyAddon\AnySQS.sqs""";// note the ""
L
laserscanner
Boolean: Determines if a vehicle has laser capability.
laserScanner = true;
library
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
magazines
Array: variable strings
magazines[] = {"750Rnd_M197_AH1","38Rnd_FFAR","8Rnd_Hellfire"};
material
material = 50;
mainRotorSpeed
mainRotorSpeed = -1;
minHeight
Used in: cfgNonAiVehicles
Integer: Min height in metres above sealevel. See #avgHeight , #maxHeight
minHeight = 5;
maxHeight
Used in: cfgNonAiVehicles
Integer: max height above sea level. See #avgHeight , #minHeight
maxHeight = 50;
minSpeed
Used in: cfgNonAiVehicles
Integer: In Kph.
minSpeed = -0.500000; range 0->1
maxSpeed
Integer: In kph.
maxSpeed = 20;
memoryPointsGetInGunner
memoryPointsGetInGunner = "pos gunner";
memoryPointsGetInGunnerDir
memoryPointsGetInGunnerDir = "pos gunner dir";
memoryPointsGetInDriver
memoryPointsGetInDriver = "pos_driver";
memoryPointsGetInDriverDir
memoryPointsGetInDriverDir = "pos_driver_dir";
memoryPointGun
memoryPointGun = "machinegun";
memoryPointGunnerOptics
memoryPointGunnerOptics = "gunnerview";
memoryPointLMissile
memoryPointLMissile = "Missile_1";
memoryPointRMissile
memoryPointRMissile = "Missile_2";
memoryPointLRocket
memoryPointLRocket = "Rocket_1";
memoryPointRRocket
memoryPointRRocket = "Rocket_2";
model
String: Location in the addon where the p3d model resides. Can be subfolder
model = "\AddonName\anyp3d(.p3d)"; // can be ""
N
name
name = "motor";
nameSound
String: Namesound is used by the AI audio to indicate verbally where to go, what 'vehicle' to attack. This the audio speech "move to 'rock' 3 o'clock' is derived from the namesound.
nameSound = "rock";
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"; };
O
outGunnerMayFire
Boolean: partof NewTurrent class
outGunnerMayFire = 1;
P
passThrough
passThrough = 1;
picture
String: I think this is for briefing Information icon click
picture = "\AnyAddon\AnyPAA(.paa)";
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;
proxyIndex
proxyIndex = 2;
position
position = "L svetlo";
R
reversed
Used in: cfgNonAiVehicles
BOOLEAN: 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 = 0;
rotorBig
rotorBig = "vrtule_velka";
rotorBigBlend
rotorBigBlend = "vrtule_velka_bl";
rotorSmall
rotorSmall = "vrtule_mala";
rotorSmallBlend
rotorSmallBlend = "vrtule_mala_bl";
S
scope
Used in: cfgNonAiVehicles
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.
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 tyoing, but memory storage too. It is only the public classes that are listed in the editor, and this, you would expect, that each one of these has a separate name=, wheras, they are ALL grouped' in the Editor's 'Vegetables'
Protected classes are CamCreatble in the mission.sqm.
Protected classes are immensely useful to 'hide' obsolete models that are still required to maintain compatibility with older missions.
public:
Any classes declared public are CamCreateabale, and selectable via the Editor.
selection
selection = "L svetlo";
Selection...
selectionFireAnim
selectionFireAnim = "muzzleflash";
selectionHRotorStill
selectionHRotorStill= "mainRotorStatic";
selectionHRotorMove
selectionHRotorMove = "mainRotorBlurred";
selectionVRotorStill
selectionVRotorStill = "tailRotorStatic";
selectionVRotorMove
selectionVRotorMove = "tailRotorBlurred";
size
size = 0.500000;
side
Integer: The side, when declared, sets the 'vehicle' on 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 WEST 0 #define EAST 1 #define CIVILIAN 2 #define NOSIDE 3 etc...
side = EAST;
simulation
STRING: The engine behaviour with this #model.
simulation = "SeaGull";// campfire,house, etc
singSound
ARRAY: normally for a bird see #sound...
singSound[] = {"\AddonName\SoundFile.ogg",0.031623,1,1};
showgunneroptics
showgunneroptics = 0;
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
soundEnviron[] = {"\AnyAddon\AnySound(.wss)",0.100000,1.000000};
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
String: found in animationSources
source = "reload";
straightDistance
Used in: cfgNonAiVehicles
straightDistance = 50;
supplyRadius
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
turning
Used in: cfgNonAiVehicles
BOOLEAN: (i think)
turning = 1;
threat
Array: This three element array reperesents the threat this 'vehicle' has to the enemy ai.
The 3 components of the 'threat' are land threat, air threat, sea threat. In the exampe below for a cobra. It is not too dangerous for land 'vehicles' (men and machines) bit deadly against other air vehicles and nasty to boats.
The ai for this model selects targets of opportunity, based on these values.
threat[] = {0.300000,1,0.800000};
see #type
transport...
transportAmmo
Integer: Amount of difffernt ammo types this vehicle can carry.
transportAmmo = 0;
transportSoldier
Integer: Number of units this vehicle can carry.
transportSoldier = 13;
transportMaxMagazines
transportMaxMagazines = 150;
transportMaxWeapons
transportMaxWeapons = 30;
typicalCargo
Array: variable strings. Preloads veicle with units (if auto)
typicalCargo[] = {"Soldier","Soldier","SoldierLAW","SoldierLAW"};
type
Integer: 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 LAND 0 #define SEA 1 #define AIR 2
type = AIR;
see #threat
V
viewGunnerShadow
Boolean: part of Turret class
viewGunnerShadow = 1;
W
weapon
String: found in animationSources
weapon = "M197";
weapons[]
Array: an array of selectable weaponry for the given 'vehicle'
weapons[] = {"FFARLauncher","TwinM134"};