createTrigger: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[Category:[ _]?Scripting[ _]Commands[ _]Arma[ _]3(\|.*)]]" to "{{GameCategory|arma3|Scripting Commands}}")
No edit summary
 
(96 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma1 |Game name=
|game1= ofpe
|version1= 1.00


|1.00|Game version=
|game2= arma1
|version2= 1.00


|gr1= Triggers |GROUP1=
|game3= arma2
____________________________________________________________________________________________
|version3= 1.00


| 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''. Created triggers can be deleted using [[deleteVehicle]].<br><br>
|game4= arma2oa
|version4= 1.50


{{Informative | Since Arma 3 v1.43.129935 triggers can be created locally on clients setting optional param ''makeGlobal'' to [[false]]}}
|game5= tkoh
{{Informative | Since Arma 3 v1.53.132440 triggers can be disabled/enabled using [[enableSimulation]] command}}<br>
|version5= 1.00


Triggers are created with default params, which are:
|game6= arma3
* <tt>a</tt>: 50.0
|version6= 0.50
* <tt>b</tt>: 50.0
* <tt>c</tt>: -1
* <tt>angle</tt>: 0
* <tt>rectangular</tt>: false
* <tt>activationBy</tt>: None
* <tt>activationType</tt>: Present
* <tt>repeating</tt>: false
* <tt>timeoutMin</tt>: 0
* <tt>timeoutMid</tt>: 0
* <tt>timeoutMax</tt>: 0
* <tt>interruptable</tt>: true
* <tt>type</tt>: None
* <tt>text</tt>: ""
* <tt>name</tt>: ""
* <tt>expCond</tt>: "this"
* <tt>expActiv</tt>: ""
* <tt>expDesactiv</tt>: ""
* <tt>interval</tt>: 0.5 (Cannot be accessed via editor, [[setTriggerInterval | scripted only]] since Arma 3 v1.97.146056)
|DESCRIPTION=
____________________________________________________________________________________________


| '''createTrigger''' [type, position, makeGlobal]|SYNTAX=
|gr1= Triggers


|p1= [type, position, makeGlobal]: [[Array]] |PARAMETER1=
|descr= Creates a [[Trigger|trigger]] of the given type and at the given position. The type must be a class name in ''CfgNonAIVehicles'' or ''CfgVehicles'' with <syntaxhighlight lang="cpp" inline>simulation = detector</syntaxhighlight>. An array containing all units that have activated the trigger is available via <sqf inline>list triggerobj</sqf>. Since triggers are '''[[Object]]s''', commands such as [[getPosASL]], [[setPosASL]], [[deleteVehicle]] etc. work on them.
|p2= type: [[String]] - usually "EmptyDetector"|PARAMETER2=
{{Feature|important|Triggers are always created on the road surface (AGL) at provided x, y coordinates. The z param is ignored. In order to place the trigger with a custom z, use a 'setPosXXX' command after trigger creation.}}
|p3= position: [[Position2D]], [[Position3D]] or [[Object]] |PARAMETER3=
{{Feature|informative|Since {{arma3}} v1.54 triggers can be disabled/enabled using [[enableSimulation]] command.}}
|p4= makeGlobal (Optional): [[Boolean]] - locality flag  ''(available since Arma 3 v1.43.129935)''
* [[true]] (Default) - trigger is global {{EffArg|cmd|eff|glob}}
* [[false]] - trigger is local {{EffArg|cmd|eff|local}}|PARAMETER4=


| [[Object]] - created trigger|RETURNVALUE=
Triggers are created with default parameters:
{{Columns|4|
* {{hl|a}}: 50
* {{hl|b}}: 50
* {{hl|c}}: -1
* {{hl|angle}}: 0
* {{hl|rectangular}}: false
* {{hl|activationBy}}: None
* {{hl|activationType}}: Present
* {{hl|repeating}}: false
* {{hl|timeoutMin}}: 0
* {{hl|timeoutMid}}: 0
* {{hl|timeoutMax}}: 0
* {{hl|interruptable}}: true
* {{hl|type}}: None
* {{hl|text}}: ""
* {{hl|name}}: ""
* {{hl|expCond}}: "this"
* {{hl|expActiv}}: ""
* {{hl|expDesactiv}}: ""
* {{GVI|arma3|1.98|size= 0.75}} {{hl|interval}}: 0.5
}}
 
|s1= [[createTrigger]] [type, position, makeGlobal]
 
|p1= type: [[String]] - usually "EmptyDetector"
 
|p2= position: [[Position#Introduction|Position2D]], [[Position#Introduction|Position3D]] or [[Object]] (see the note in description)


|p3= makeGlobal: [[Boolean]] - (Optional - default [[true]]) locality flag
* [[true]] - trigger is global {{Icon|globalEffect|24}}
* [[false]] - trigger is local {{Icon|localEffect|24}}
|p3since= arma3 1.44


____________________________________________________________________________________________
|r1= [[Object]] - created trigger
 
|x1= <code>_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'"];</code>|EXAMPLE1=


|x2= Open/close Bar Gate automatically: <code>//--- init of the Bar Gate
|x1= <sqf>
[[if]] ([[isServer]]) [[then]]
_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'"];
</sqf>
 
|x2= Open/close Bar Gate automatically:
<sqf>
//--- init of the Bar Gate
if (isServer) then
{
{
_gateTrigger = [[createTrigger]] ["EmptyDetector", [[getPosWorld]] [[this]], [[false]]];
_gateTrigger = createTrigger ["EmptyDetector", getPosWorld this, false];
_gateTrigger [[setVariable]] ["BarGateObj", [[this]]];
_gateTrigger setVariable ["BarGateObj", this];
_gateTrigger [[setTriggerActivation]] ["ANYPLAYER", "PRESENT", [[true]]];
_gateTrigger setTriggerActivation ["ANYPLAYER", "PRESENT", true];
_gateTrigger [[setTriggerArea]] [5, 25, [[getDir]] [[this]], [[true]]];
_gateTrigger setTriggerArea [5, 25, getDir this, true];
_gateTrigger [[setTriggerStatements]]
_gateTrigger setTriggerStatements  
[
[
"this",  
"this",  
"[[thisTrigger]] [[getVariable]] ""BarGateObj"" [[animateSource]] [""Door_1_sound_source"", 1]",  
"thisTrigger getVariable ""BarGateObj"" animateSource [""Door_1_sound_source"", 1]",  
"[[thisTrigger]] [[getVariable]] ""BarGateObj"" [[animateSource]] [""Door_1_sound_source"", 0]"
"thisTrigger getVariable ""BarGateObj"" animateSource [""Door_1_sound_source"", 0]"
];
];
};</code>|EXAMPLE2=
};
____________________________________________________________________________________________
</sqf>


|[[setTriggerActivation]], [[setTriggerArea]], [[setTriggerStatements]], [[setTriggerText]], [[setTriggerTimeout]], [[setTriggerType]], [[setEffectCondition]], [[setSoundEffect]], [[setMusicEffect]], [[setTitleEffect]], [[deleteVehicle]], [[synchronizeWaypoint]], [[synchronizeTrigger]], [[createGuardedPoint]], [[triggerInterval]], [[setTriggerInterval]], [[enableSimulation]], [[simulationEnabled]] |SEEALSO=
|seealso= [[setTriggerActivation]] [[setTriggerArea]] [[setTriggerStatements]] [[setTriggerText]] [[setTriggerTimeout]] [[setTriggerType]] [[setEffectCondition]] [[setSoundEffect]] [[setMusicEffect]] [[setTitleEffect]] [[deleteVehicle]] [[synchronizeWaypoint]] [[synchronizeTrigger]] [[createGuardedPoint]] [[triggerInterval]] [[setTriggerInterval]] [[enableSimulation]] [[simulationEnabled]]
}}


{{Note
|user= TeaCup
|timestamp= 20130306141500
|text= 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.
}}
}}
<h3 style="display:none">Notes</h3>
<dl class="command_description">
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on March 6, 2013 - 14:15 (CEST)
<dt class="note">[[User:TeaCup|teaCup]]
<dd class="note">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.
<!-- Note Section END -->
</dl>
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands|CREATETRIGGER]]
[[Category:Scripting Commands OFP Elite |CREATETRIGGER]]
{{GameCategory|arma1|Scripting Commands}}
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
{{GameCategory|arma3|Scripting Commands}}
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]

Latest revision as of 20:20, 31 October 2024

Hover & click on the images for description

Description

Description:
Creates a 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, commands such as getPosASL, setPosASL, deleteVehicle etc. work on them.
Triggers are always created on the road surface (AGL) at provided x, y coordinates. The z param is ignored. In order to place the trigger with a custom z, use a 'setPosXXX' command after trigger creation.
Since Arma 3 v1.54 triggers can be disabled/enabled using enableSimulation command.

Triggers are created with default parameters:

  • a: 50
  • b: 50
  • 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: ""
  • Arma 3 logo black.png1.98 interval: 0.5
Groups:
Triggers

Syntax

Syntax:
createTrigger [type, position, makeGlobal]
Parameters:
type: String - usually "EmptyDetector"
position: Position2D, Position3D or Object (see the note in description)
since Arma 3 logo black.png1.44
makeGlobal: Boolean - (Optional - default true) locality flag
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:
setTriggerActivation setTriggerArea setTriggerStatements setTriggerText setTriggerTimeout setTriggerType setEffectCondition setSoundEffect setMusicEffect setTitleEffect deleteVehicle synchronizeWaypoint synchronizeTrigger createGuardedPoint triggerInterval setTriggerInterval enableSimulation simulationEnabled

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
TeaCup - c
Posted on Mar 06, 2013 - 14:15 (UTC)
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.