createTrigger: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 21: Line 21:
|gr1= Triggers
|gr1= Triggers


|descr= Creates a sensor ([[trigger]]) of the given type and at the given position. The type must be a class name in CfgNonAIVehicles or CfgVehicles with simulation <nowiki>=</nowiki> detector. An array containing all units that have activated the trigger is available via [[list]] ''triggerobj''. Since triggers are [[object|'''objects'''], they can be deleted using [[deleteVehicle]].<br><br>
|descr= Creates a sensor ([[trigger]]) of the given type and at the given position. The type must be a class name in CfgNonAIVehicles or CfgVehicles with simulation <nowiki>=</nowiki> detector. An array containing all units that have activated the trigger is available via [[list]] ''triggerobj''. Since triggers are [[object|'''objects''']], they can be deleted using [[deleteVehicle]].<br><br>
{{Feature | Informative | Note that triggers are objects, and commands such as [[getPosASL]], [[setPosASL]], [[deleteVehicle]], etc. work on them the same as other objects.}}
{{Feature | Informative | Note that triggers are objects, and commands such as [[getPosASL]], [[setPosASL]], [[deleteVehicle]], etc. work on them the same as other objects.}}
{{Feature | Informative | Since Arma 3 v1.44 triggers can be created locally on clients setting optional param ''makeGlobal'' to [[false]]}}
{{Feature | Informative | Since Arma 3 v1.44 triggers can be created locally on clients setting optional param ''makeGlobal'' to [[false]]}}

Revision as of 02:55, 11 August 2021

Hover & click on the images for description

Description

Description:
Creates a sensor (trigger) of the given type and at the given position. The type must be a class name in CfgNonAIVehicles or CfgVehicles with simulation = detector. An array containing all units that have activated the trigger is available via list triggerobj. Since triggers are objects, they can be deleted using deleteVehicle.

Note that triggers are objects, and commands such as getPosASL, setPosASL, deleteVehicle, etc. work on them the same as other objects.
Since Arma 3 v1.44 triggers can be created locally on clients setting optional param makeGlobal to false
Since Arma 3 v1.54 triggers can be disabled/enabled using enableSimulation command

Triggers are created with default params, which are:

  • a: 50.0
  • b: 50.0
  • c: -1
  • angle: 0
  • rectangular: false
  • activationBy: None
  • activationType: Present
  • repeating: false
  • timeoutMin: 0
  • timeoutMid: 0
  • timeoutMax: 0
  • interruptable: true
  • type: None
  • text: ""
  • name: ""
  • expCond: "this"
  • expActiv: ""
  • expDesactiv: ""
  • interval: 0.5 (Cannot be accessed via editor, scripted only since Arma 3 v1.98)
Groups:
Triggers

Syntax

Syntax:
createTrigger [type, position, makeGlobal]
Parameters:
[type, position, makeGlobal]: Array
type: String - usually "EmptyDetector"
position: Position2D, Position3D or Object
makeGlobal (Optional): Boolean - locality flag (available since Arma 3 v1.44)
Return Value:
Object - created trigger

Examples

Example 1:
_trg = createTrigger ["EmptyDetector", getPos player]; _trg setTriggerArea [5, 5, 0, false]; _trg setTriggerActivation ["CIV", "PRESENT", true]; _trg setTriggerStatements ["this", "hint 'Civilian near player'", "hint 'no civilian near'"];
Example 2:
Open/close Bar Gate automatically: //--- init of the Bar Gate if (isServer) then { _gateTrigger = createTrigger ["EmptyDetector", getPosWorld this, false]; _gateTrigger setVariable ["BarGateObj", this]; _gateTrigger setTriggerActivation ["ANYPLAYER", "PRESENT", true]; _gateTrigger setTriggerArea [5, 25, getDir this, true]; _gateTrigger setTriggerStatements [ "this", "thisTrigger getVariable ""BarGateObj""; animateSource [""Door_1_sound_source"", 1]", "thisTrigger getVariable ""BarGateObj""; animateSource [""Door_1_sound_source"", 0]" ]; };

Additional Information

See also:
setTriggerActivationsetTriggerAreasetTriggerStatementssetTriggerTextsetTriggerTimeoutsetTriggerTypesetEffectConditionsetSoundEffectsetMusicEffectsetTitleEffectdeleteVehiclesynchronizeWaypointsynchronizeTriggercreateGuardedPointtriggerIntervalsetTriggerIntervalenableSimulationsimulationEnabled

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on March 6, 2013 - 14:15 (CEST)
teaCup
Calling list immediately after creating a trigger this way (and setting up activation, area, statements, timeout, etc..), will return <null> instead of an array. It seems the trigger needs about 1 second to initialise, after which it will behave as expected: returning an array of all the objects inside the trigger (the ones matching the criteria), or an empty array.