Actions – ArmA: Armed Assault

From Bohemia Interactive Community
Revision as of 03:03, 6 April 2008 by Ceeeb (talk | contribs) (moveToXXXXXXX)
Jump to navigation Jump to search

Introduction

Actions are events that are usually executed in-game by the player by using the action menu, or by using the action sub-menu of the command menu when executing them upon AI in the the player's group. Actions can also be performed by and upon arbitrary units using the action script command. Executing an action in this way will generally create only the basic effect of that seen when starting actions using the action menu, so it may be necessary to script additional effects to achieve the same effect as the game's default action menu, and to maintain immersion. For example, scripted use of the "deactivate" action will not check the distance between the satchel and the collecting unit, allowing it to be used to pick up a satchel that is many kilometres away. Many actions can be executed by a different unit than the target unit, although in most cases it makes more sense to use the same unit. The unit executing the action will generally bend down as if to pick something up (the action animation), with the action effects taking place when the animation completes. It is possible to use a game logic unit to execute actions without any animation or delay.


General Syntax

unit action ["actionType", parameter(s)]

unit: Object. Can be any occupied vehicle or person that is not in a vehicle.
"actionType": String. Not case sensitive.
parameter(s): Various data types, dependant on the action used. The number of required parameters depends on the action type.


Actions

AutoHover

Description: Toggles auto-hovering on and off. Note that while the auto-hover status can be toggled on an AI crewed or even an empty vehicle, it will only affect a vehicle controlled by a human pilot.
Syntax: unit action ["autoHover", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is any vehicle that is capable of hovering.
Example: chopperOne action ["autoHover", chopperOne]


CancelAction

Description: Cancels an action in progress. The target unit will complete it's current animation, although the action itself will not be performed.
Syntax: unit action ["cancelAction", targetUnit]
Where unit is any unit (no action animation is performed) and targetUnit is any unit that is in the process of performing an action.
Example: soldierOne action ["CANCELACTION", soldierOne]


CancelLand

Description: Cancels autopilot landing for an aircraft, including AI controlled aircraft.
Syntax: unit action ["cancelLand", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is any vehicle that is currently performing an autopilot landing.
Example: planeOne action ["cancelLand", planeOne]


CancelTakeFlag

Description: Cancels taking of a flag. The unit will complete the taking/action animation, but the flag will remain attached to it's current object. This action needs to be executed while the flag is being taken (which happens after the unit completes the taking/action animation) to prevent a unit taking the flag. For example, if a person is taking a flag from a flagpole, then the cancelTakeFlag action should be executed while the flag is descending the flagpole.
Syntax: unit action ["cancelTakeFlag", targetFlag]
Where unit is any unit that is currently taking a flag (no action animation is performed) and targetFlag' is a flag object.
Example: westSoldierOne action ["cancelTakeFlag", eastFlag]


Deactivate

Description: Causes a unit to deactivate and take a active satchel charge placed by any unit. This action can be performed upon a satchel object from any distance.
Syntax: unit action ["deactivate", targetUnit, targetObject]
Where unit is any unit (they will perform the action animation as if deactivating a satchel charge). targetUnit will have the deactivated satchel charge added to it's inventory. targetObject is the armed satchel object to be deactivated (class "pipeBomb" or "timeBomb").
Examples: soldierOne action ["deactivate", soldierOne, mySatchelCharge]
soldierOne action ["deactivate", soldierOne, nearestObject [soldierOne, "pipeBomb"]]


DeactivateMine

Description: Causes a unit to deactivate any armed landmine that is within about two meters of a unit. Neither unit requires the ability to disable landmines.
Syntax: unit action ["deactivateMine", targetUnit]
Where unit is any unit, who will perform the action animation. The closest landmine to targetUnit will be deactivated.
Example: soldierOne action ["deactivateMine", soldierOne]


Diary

Description: Use and effects unknown.
Syntax: unit action ["diary", <target>]
Example:


DropMagazine

Description: Causes a person to drop a magazine either into another unit (both persons and vehicles), or onto the ground (creating a new WeaponHolder object). Magazines can be dropped into other units at any distance.
Syntax: unit action ["dropMagazine", targetUnit, "magazineName"]
Where unit is the person to drop a magazine (the action animation will be performed), targetUnit is either another unit into which the magazine will be dropped, or the same unit that is dropping the magazine. "magazineName" is the classname (string) of the magazine to be dropped (see the ArmA weapons list for magazine classnames).
Examples: soldierOne action ["dropMagazine", soldierOne, "30Rnd_545x39_AK"]
soldierOne action ["dropMagazine", ammoCrateOne, "30Rnd_545x39_AK"]


DropWeapon

Description: Causes a person to drop a weapon and all associated magazines either into another unit (including persons and vehicles), or onto the ground (creating a new WeaponHolder object). Weapons can be dropped into other units at any distance.
Syntax: unit action ["dropWeapon", targetUnit, "weaponName"]
Where unit is the person to drop a weapon (the action animation will be performed), targetUnit is either another unit into which the weapon will be dropped, or the same unit that is dropping the weapon to place it onto the ground. "weaponName" is the classname (string) of the weapon to be dropped (see the ArmA weapons list for classnames).
Examples: soldierOne action ["dropWeapon", soldierOne, "AK74GL"]
soldierOne action ["dropWeapon", ammoCrateOne, "RPG7V"]


Eject

Description: Causes a person to eject out of the vehicle they are currently inside. If the unit was the driver of the vehicle, the vehicle will retain it's steering control input and it's engine will remain on. This action has a global effect when used on a local unit in multiplayer. If the vehicle parameter used is an moving aircraft, the ejecting person will use a parachute (and likewise if it is not an moving aircraft, no parachute will be used).
Syntax: unit action ["eject", vehicle]
Where unit is the person to eject from their current vehicle, and vehicle is any vehicle (generally the vehicle unit is within).
Example: soldierOne action ["EJECT", vehicle soldierOne]


EngineOn

Description: Turns a vehicle's engine on. This command will not override an AI driver's desires.
Syntax: unit action ["engineOn", targetVehicle]
Where unit is any unit, and targetVehicle is the vehicle to start it's engine.
Example: soldierOne action ["engineOn", vehicle soldierOne]


EngineOff

Description: Turns a vehicle's engine off. This command will not override an AI driver's desires.
Syntax: unit action ["engineOff", targetVehicle]
Where unit is any unit, and targetVehicle is the vehicle to have it's engine turned off.
Example: soldierOne action ["engineOff", vehicle soldierOne]


FireInFlame

Description: Ignites a fireplace object (from any distance).
Syntax: unit action ["fireInFlame", targetObject]
Where unit is any unit(the action animation will be performed), and targetObject is the fireplace to be ignited.
Example: soldierOne action ["fireInFlame", firePlaceOne]


FirePutDown

Description: Extinguishes a fireplace object (from any distance).
Syntax: unit action ["firePutDown", targetObject]
Where unit is any unit (the action animation will be performed), and targetObject is the fireplace to be extinguished.
Example: soldierOne action ["firePutDown", firePlaceOne]


FlapsUp

Description: Adjusts an aircraft's flaps upwards one notch. AI pilot's will instantly adjust their flaps to whatever setting they feel is suitable.
Syntax: unit action ["flapsUp", targetVehicle]
Where unit is any unit (the action animation will not be performed), and targetVehicle is the aircraft to have it's flaps adjusted.
Example: harrierOne action ["flapsUp", harrierOne]


FlapsDown

Description: Adjusts an aircraft's flaps down one notch. AI pilot's will instantly adjust their flaps to whatever setting they feel is suitable.
Syntax: unit action ["flapsDown", targetVehicle]
Where unit is any unit (the action animation will not be performed), and targetVehicle is the aircraft to have it's flaps adjusted.
Example: harrierOne action ["flapsDown", harrierOne]


GetInCargo

Description: Instantly moves a person to the appropriate boarding position of a vehicle, then they attempt to board the vehicle as cargo, in a specific cargo position if given as an optional parameter, otherwise in the first available cargo position. If the specific position is already occupied, the person will board in the first available cargo position. If the all cargo positions are already occupied by living persons, or no cargo position exists, the boarding will fail.
Syntax: unit action ["getInCargo", targetVehicle]
unit action ["getInCargo", targetVehicle, positionNumber]
Where unit is the person to board, and targetVehicle is the vehicle to be boarded. positionNumber is a specific cargo position index number.
Examples: soldierOne action ["getInCargo", truckOne]
soldierOne action ["getInCargo", truckOne, 0]


GetInCommander

Description: Instantly moves a person (who is not already in a vehicle) to the appropriate boarding position of a vehicle, they then attempt to board the vehicle as the commander. The boarding will fail if the position is already occupied or does not exist.
Syntax: unit action ["getInCommmander", targetVehicle]
Where unit is the person to board, and targetVehicle is the vehicle to be boarded.
Example: soldierOne action ["getInCommmander", tankOne]


GetInDriver

Description: Instantly moves an person (who is not already in a vehicle) to the appropriate boarding position of a vehicle, then they attempt to board the vehicle as the driver/pilot. The boarding will fail if the position is already occupied or does not exist.
Syntax: unit action ["getInDriver", targetVehicle]
Where unit is the person to board, and targetVehicle is the vehicle to be boarded.
Example: soldierOne action ["getInDriver", carOne]


GetInGunner

Description: Instantly moves a person (who is not already in a vehicle) to the appropriate boarding position of a vehicle, then they attempt to board the vehicle as the primary gunner. If the gunner position is already occupied by another living person or it does not exist, the boarding will fail. Also see getInTurret.
Syntax: unit action ["getInGunner", targetVehicle]
Where unit is the person to board, and targetVehicle is the vehicle to be boarded.
Example: soldierOne action ["getInGunner", mySpotlight]


GetInPilot

Description: This action is identical to getInDriver. It instantly moves an person (who is not already in a vehicle) to the appropriate boarding position of a vehicle, then they attempt to board the vehicle as the driver/pilot. The boarding will fail if the position is already occupied or does not exist.
Syntax: unit action ["getInPilot", targetVehicle]
Where unit is the person to board, and targetVehicle is the vehicle to be boarded.
Example: pilotOne action ["getInPilot", chopperOne]


GetInTurret

Description: Instantly moves a person (who is not already in a vehicle) to the appropriate boarding position of a vehicle, then they attempt to board the vehicle as the specified turret user. If the turret position is already occupied by another living person the boarding will fail. If the turret position does not exist, ArmA may crash. See also getInGunner.
Syntax: unit action ["getInTurret", targetVehicle, turretArray]
Where unit is the person to board, and targetVehicle is the vehicle to be boarded, and turretArray is an array defining the turret. For example, [1] would be a vehicle's second turret, and [0, 2, 1] is the second turret of the third turret of the first turret. A vehicle's turret order is defined in it's class CfgVehicles of the Config.
Examples: gunnerTwo action ["getInTurret", myUH60MG, [1]]
tankCommanderOne action ["getInTurret", myT72, [0,1]]


GetOut

Description: Causes a person to disembark from a vehicle, without a parachute in the case of aircraft. See also eject.
Syntax: unit action ["getOut", targetVehicle]
Where unit is the person to disembark, and targetVehicle is the vehicle to disembark from.
Example: soldierOne action ["getOut", carOne]


HandGunOn

Description: Causes a person to ready their hand gun (if equiped). This action may not work if the unit does not have a primary rifle.
Syntax: unit action ["handGunOn", targetUnit]
Where unit is any unit (who will not play the action animation), and targetUnit is the unit who will ready their pistol.
Example: soldierOne action ["handGunOn", soldierOne]


HandGunOff

Description: Causes a person to return a readied pistol to it's holster, then switch to the primary rifle. This action may not work if the unit does not have a primary rifle.
Syntax: unit action ["handGunOff", targetUnit]
Where unit is any unit (who will not play the action animation), and targetUnit is the person to holster it's pistol.
Example: soldierOne action ["handGunOff", soldierOne]


Heal

Description: Instantly teleports a person unit to the target medic. The target medic then heals the unit. If the target unit is not a medic, the animations will still be played, but no healing occurs. If the medic is within a vehicle, no teleporting will occur and the wounded unit will only be healed if they are already within healing range (a few meters).
Syntax: unit action ["heal", targetUnit]
Where unit is a wounded person, and targetUnit is the medic to do the healing.
Example: soldierOne action ["heal", medicOne]


HideBody

Description: Causes a person to bend down and hide (bury) a body in the ground. The body is automatically deleted within a few seconds. The person performing the action does not require the ability to hide bodies, and may be any distance from the body.
Syntax: unit action ["hideBody", targetUnit]
Where unit is a person, and targetUnit is a dead person.
Example: soldierOne action ["hideBody", soldierTwo]


InGameMenu

Description: Use and effects unknown.
Syntax: unit action ["inGameMenu", <target>]
Example:


LadderDown

Description: Causes a person to play an animation as if mounting the top of a ladder, then instantly teleport onto the specified ladder in the specified position. If the person is controlled by AI, they will automatically climb up or down the ladder. If the 2 parameter syntax is used, the person will become stuck in the ladder mounting animation state until the ladderOff action is executed upon them. It may also crash ArmA (pre 1.09).
Syntax: unit action ["ladderDown", targetObject]
unit action ["ladderDown", targetObject, ladderNumber, positionNumber]
Where unit is any person unit, targetObject is an object with a ladder, ladderNumber is a number defining the desired ladder, and positionNumber is a number defining the desired position.
Example: soldierOne action ["ladderDown", (position soldierOne nearestObject 452221), 0, 1]


LadderUp

Description: Causes a person to play an animation as if mounting the bottom of a ladder, then instantly teleport onto the specified ladder in the specified position. If the person is controlled by AI, they will automatically climb up or down the ladder. If the 2 parameter syntax is used, the person will become stuck in the ladder mounting animation state until the ladderOff action is executed upon them. It may also crash ArmA (pre 1.09).
Syntax: unit action ["ladderUp", targetObject]
unit action ["ladderUp", targetObject, ladderNumber, positionNumber]
Where unit is any person unit, targetObject is an object with a ladder, ladderNumber is a number defining the desired ladder, and positionNumber is a number defining the desired position.
Example: soldierOne action ["ladderUp", (position soldierOne nearestObject 452221), 0, 0]


LadderOff

Description: Causes a person to dismount from any ladder of the specified object they may be happen to be on. The alternative 3 parameter syntax expects a number, the use of which is not known.
Syntax: unit action ["ladderOff", targetObject]
unit action ["ladderDown", targetObject, unknownNumber]
Where unit is any person unit, targetObject is the object with a ladder that the person is currently upon, unknownNumber is a number.
Example: soldierOne action ["ladderOff", (position soldierOne nearestObject 452221)]


LadderOnDown

Description: This action appears to be identical to LadderDown.


LadderOnUp

Description: This action appears to be identical to LadderUp.


Land

Description: Turns on autopilot landing for an aircraft, including AI controlled aircraft. The aircraft will land at the closest airfield.
Syntax: unit action ["Land", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is a vehicle that can perform an autopilot landing.
Example: planeOne action ["Land", planeOne]


LandGear

Description: Lowers the landing gear of an aircraft. Only works on player controlled aircraft.
Syntax: unit action ["LandGear", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is a vehicle that can perform an autopilot landing.
Example: planeOne action ["LandGear", planeOne]


LandGearUp

Description: Raises the landing gear of an aircraft. Only works on player controlled aircraft.
Syntax: unit action ["LandGearUp", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is a vehicle that can perform an autopilot landing.
Example: planeOne action ["LandGearUp", planeOne]


LightOff

Description: Turns off the headlights of a vehicle. AI drivers automatically turn lights on/off depending on their behaviour mode, and daylight.
Syntax: unit action ["lightOff", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is a vehicle with lights.
Example: player action ["lightOff", vehicle player]


LightOn

Description: Turns on the headlights of a vehicle. AI drivers automatically turn lights on/off depending on their behaviour mode and daylight.
Syntax: unit action ["lightOn", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is a vehicle with lights.
Example: player action ["lightOn", spotLight]


LoadMagazine

Description: Use and effects unknown.
Syntax: Unknown, something like - unit action ["loadMagazine", <target>, <magazine creator>, <number>, <number> ,<weapon name>, <muzzle name>]
Expects a 7 element array. ArmA crashes when given incompatible syntax or data with this action, making it hard to test.
Example:


ManualFire

Description: Enables manual fire mode for a player unit that is driver or commander of a vehicle. This action toggled manual fire mode in old versions of ArmA.
Syntax: unit action ["manualFire", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is the vehicle in which manual fire mode is to be enabled.
Example: player action ["MANUALFIRE", vehicle player]


ManualFireCancel

Description: Disables manual fire mode for a player unit that is driver or commander of a vehicle.
Syntax: unit action ["manualFireCancel", targetVehicle]
Where unit is any unit (no action animation is performed) and targetVehicle is the vehicle in which manual fire mode is to be disabled.
Example: player action ["manualFireCancel", vehicle player]


MarkEntity

Description: Use and effects unknown.
Syntax: unit action ["markEntity", <target>]
Example:


MoveToCargo

Description: Move a unit to the chosen cargo position within a vehicle. If another unit is already in that position, the units will swap positions. (possibly alternate syntax to place unit in first empty cargo position?)
Syntax: unit action ["moveToCargo", targetVehicle, cargoPosition]
Where unit is a unit within targetVehicle, and cargoPosition is the number of the desired cargo position (0 being the first).
Example: player action ["moveToCargo", vehicle player, 2]


MoveToCommander

Description: Move a unit to the commander's position within a vehicle. If another unit is already in that position, the units will swap positions.
Syntax: unit action ["moveToCommander", targetVehicle]
Where unit is a unit within targetVehicle.
Example: player action ["moveToCommander", vehicle player]


MoveToDriver

Description: Move a unit to the driver's position within a vehicle. If another unit is already in that position, the units will generally swap positions, although in some scenarios this action may not work (although having the existing driver move always works).
Syntax: unit action ["moveToDriver", targetVehicle]
Where unit is a unit within targetVehicle.
Example: player action ["moveToDriver", vehicle player]


MoveToGunner

Description: Move a unit to the primary gunner's position within a vehicle. If another unit is already in that position, the units will swap positions. See also moveToTurret.
Syntax: unit action ["moveToGunner", targetVehicle]
Where unit is a unit within targetVehicle.
Example: player action ["moveToGunner", vehicle player]


MoveToPilot

Description: Identical to moveToDriver.


MoveToTurret

Description: Move a unit to the chosen turret position within a vehicle. If another unit is already in that position, the units will swap positions.
Syntax: unit action ["moveToTurret", targetVehicle, turretArray]
Where unit is a unit within targetVehicle, and turret Array is an array referring to the desired turret.
Examples: player action ["moveToTurret", vehicle player, [0]] player action ["moveToTurret", vehicle player, [0,1]]


NONE

["NONE", <target>]


NVGOGGLES / NVGOGGLESOFF

unitName action ["NVGOGGLES", unitName2]
unitName action ["NVGOGGLESOFF", unitName2]

unitName puts his night vision goggles on/off. UnitName2 is apparently not used, but action requires a two element array.

Example: player action ["NVGOGGLES",ANYTHING]


REARM / REFUEL / REPAIR

vehiclename action ["REARM", vehiclename2] vehiclename action ["REFUEL", vehiclename2] vehiclename action ["REPAIR", vehiclename2]

Vehiclename will receive weapons/fuel/repair from 'vehicle2' immediately and via teleportation.

Example: SoldierOne action ["REARM", TruckOne]


RETURNFLAG

unitname action ["RETURNFLAG", flagname]

Soldier 'unitname' returns 'flagname' to base.

Example: SoldierOne action ["RETURNFLAG", FlagOne]


SALUTE

unitOne action ["SALUTE", unitTwo]

UnitOne does nothing. UnitTwo salutes. If unitTwo is in safe or careless mode, salute will be held, otherwise it is only momentary.

Example: SoldierOne action ["SALUTE", SoldierOne]


SCUD LAUNCH / SCUD START / SCUD CANCEL

scudname action ["SCUD LAUNCH"]
scudname action ["SCUD START"]
scudname action ["SCUD CANCEL"]

Scudname launches or fires its missile.
The launch process takes about 10.5 seconds. There is no Scud in ArmA.

Example: ScudOne action ["SCUD START"]


SETTIMER

unitOne action ["SETTIMER", unitTwo, <bombName>]

Soldier 'unitOne' plays the action animation. UnitTwo activates and adds thirty seconds to the timer for a satchel charge. Neither unit needs to be near the satchel. Charge has to be places first using unitname Fire ["pipebombmuzzle", "pipebombmuzzle", "pipebomb"] command.


SITDOWN

unitOne action ["SITDOWN", unitTwo]

Soldier 'unitTwo' sits down.
Sitting position will only be held if unitTwo is in SAFE and CARELESS mode.

Example: SoldierOne action ["SITDOWN", SoldierOne]


STROKEFIST

unitname action ["STROKEFIST"]

Soldier 'unitname' performs a boxing animation. Apparently not working in ArmA.

Example: SoldierOne action ["STROKEFIST"]


STROKEGUN

unitname action ["STROKEGUN"]

Soldier 'unitname' performs a hitting animation with his weapon. Apparently not working in ArmA.

Example: SoldierOne action ["STROKEGUN"]


SWITCHWEAPON

unitOne action ["SWITCHWEAPON", <target unit>, <target unit>, <muzzle index>]

UnitOne plays the action animation. Target unit switches to the given muzzle index. Second element might be target vehicle, as seen with "USEWEAPON".

Example: unit2 action ["SWITCHWEAPON",unit1,unit1,7]


TAKEFLAG

unitname action ["TAKEFLAG", flag1]

Soldier 'unitname' takes control of 'flag1'. He must be close to the flagpole and it must belong to an enemy side.

Example: SoldierOne action ["TAKEFLAG", FlagOne]


TAKEMAGAZINE / TAKEWEAPON

unitname action ["TAKEMAGAZINE", (vehiclename or unitname), "MAGAZINENAME"]
unitname action ["TAKEWEAPON", (vehiclename or unitname), "WEAPONNAME"]

Soldier 'unitname' takes one magazine/weapon of specified type (see list) from the ground (Weaponholder) or from named vehicle (ammo box, car, etc.).
Transfer happens immediately and via teleportation. Unit1 plays pickup animation at its current position, no matter where 'weapon or magazine' is.

Example: SoldierOne action ["TAKEMAGAZINE", SoldierTwo, "RPGLAUNCHER"]


TAKEMINE

unitName action ["TAKEMINE", <target unit>]

UnitName will perform the action animation. The closest mine that is within two meters of the target unit will be placed into the target unit's inventory.

Example: unit1 action ["takeMine",unit2]


TALK

["TALK", <target>]


TOUCHOFF

unitOne action ["TOUCHOFF", unitTwo]

Soldier 'unitOne' plays the action animation. UnitTwo's satchels are "touched off". UnitTwo must be within range (300m) of his satchels to touch them off.

Example: unitname action ["TOUCHOFF", unitname]


TURNIN / TURNOUT

unitName action ["TURNIN", vehicleName]
unitName action ["TURNOUT", vehicleName]

Crew of 'vehiclename' turns in/out (gets in and out of hatches). UnitName must be a player in effective commander of vehicleName. AI will automatically turn in/out based on their current behaviour mode.

Examples: TankOne action ["TURNIN", TankOne] player action ["TURNOUT,vehicle player]


USEMAGAZINE

["USEMAGAZINE", <target>, <magazine creator>, <number>, <number>]

This makes the target bend down, like he's using an ammo crate. I don't notice anything else happening. I don't know what the number values at the end do.

Example: player action["USEMAGAZINE", player, player, 0, 0]

USER

unitName ["USER", <target unit>, <action index>]

Soldier 'unitName' does nothing. Executes the custom action with the given index of the the target unit. Indexes are based upon the order in which the actions are added to the unit. See addAction.

Example: gameLogic action ["USER", player, 3]


USERTYPE

["USERTYPE", <target>, <action index>]

As of ArmA version 1.08, using this action type will cause ArmA to crash to desktop.


USEWEAPON

unitOne ["USEWEAPON", <target vehicle>, <target unit>, <weapon index>]

Soldier 'unitOne' will play the action animation. Target unit will fire the specified unit's position in the target vehicle's (can be the unit itself) weapon mode index. The indexes seem to be based upon the order in which weapons are added to the unit/vehicle, with each weapon's muzzle's fire mode having an unique index. Weapons can be fired in this way from a not-readied position (eg, firing a rifle on a soldiers back). Pistols will fire from the current weapon's proxy. It can also be used to sound the horn on AI controlled vehicles.

Examples: gameLogic action ["useWeapon",unit1,unit1,16] gameLogic action ["useWeapon",vehicle unit1,unit1,0] gameLogic action ["useWeapon",myTank,gunner myTank,1] gameLogic action ["useWeapon",myTank,commander myTank,0]


WEAPONINHAND / WEAPONONBACK

unitName action ["WEAPONINHAND",<target unit>]
unitName action ["WEAPONONBACK",<target unit>]

Soldier 'unitName' does nothing, 'target unit' moves his weapon from/to the safety position (gun held across chest pointing at the ground). Change is persistent with player, but AI units will change back to suit their current behaviour mode. AI generally keep their rifles safe unless moving or targeting.

Example: SoldierOne action ["WEAPONONBACK", SoldierTwo]