createTrigger: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Bot: Reverted to revision 109390 by killzone_kid on 2018-10-04T20:22:37Z)
m (Text replacement - "|size=0.8" to "|size= 0.75")
 
(113 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Command|= Comments
{{RV|type=command
____________________________________________________________________________________________


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


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


____________________________________________________________________________________________
|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]]}}<br>
|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>: ""
|= Description
____________________________________________________________________________________________


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


|p1= [type, position, makeGlobal]: [[Array]] |= Parameter 1
|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"|= Parameter 2
|p3= position: [[Position2D]], [[Position3D]] or [[Object]] |= Parameter 3
|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}}|= Parameter 3


| [[Object]] - created trigger|= Return value
{{Feature|informative|Since {{arma3}} v1.54 triggers can be disabled/enabled using [[enableSimulation]] command.}}


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]]
|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= <sqf>
 
_trg = createTrigger ["EmptyDetector", getPos player];
|x1= <code>_trg = [[createTrigger]] ["EmptyDetector", [[getPos]] [[player]]];
_trg setTriggerArea [5, 5, 0, false];
_trg [[setTriggerArea]] [5, 5, 0, [[false]]];
_trg setTriggerActivation ["CIV", "PRESENT", true];
_trg [[setTriggerActivation]] ["CIV", "PRESENT", [[true]]];
_trg setTriggerStatements ["this", "hint 'Civilian near player'", "hint 'no civilian near'"];
_trg [[setTriggerStatements]] ["this", "hint 'Civilian near player'", "hint 'no civilian near'"];</code>|= Example 1
</sqf>


|x2= Open/close Bar Gate automatically: <code>//--- init of the Bar Gate
|x2= Open/close Bar Gate automatically:
[[if]] ([[isServer]]) [[then]]
<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]] |= See also
|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]]
[[Category:Scripting Commands ArmA|CREATETRIGGER]]
[[Category:Command_Group:_Activators|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands ArmA2|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting_Commands_Take_On_Helicopters|{{uc:{{PAGENAME}}}}]]

Latest revision as of 13:10, 21 December 2022

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.
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
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.