addEventHandler: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (format)
m (Text replacement - "\| *((\[\[.*\]\],? ?)+) * \}\}" to "|seealso= $1 }}")
(47 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{Command|=
{{RV|type=command
____________________________________________________________________________________________


| ofpr |=
| ofpr


|1.85|=
|1.85


|arg= global |=
|arg= global


|eff= local |=
|eff= local
____________________________________________________________________________________________


| Adds an event handler to a given unit. For more information about event handlers and their types check the scripting topic [[:Category:Event Handlers|Event handlers]] in this reference. You may add as many event handlers of any type as you like to every unit. For instance, if you add an event handler of type "killed" and one already exists, the old one doesn't get overwritten. Use [[removeEventHandler]] to delete event handlers.
|gr1= Event Handlers


Every event will create an array named '''_this''', which contains specific information about the particular event. (e.g. the "killed" EH will return an array with 2 elements: the killed unit, and the killer.)
| Adds an Event Handler to the given object. Event Handler parameters are accessiable via the <tt>_this</tt> inside the code.
|=
* Since Arma 3 v.1.63.137807 the Event Handler index is available as <tt>_thisEventHandler</tt> during Event Handler code execution.
____________________________________________________________________________________________
* You can add as many Event Handlers of any type as you like to every unit. Existing Event Handlers do not get overwritten.
* Use [[removeEventHandler]] to remove an Event Handler.
Read [[:Category:Event Handlers|Event Handlers]] for more information and a list of all available Event Handlers.


| object '''addEventHandler''' [type, command] |=
| object [[addEventHandler]] [type, code]


|p1= object: [[Object]] |= Parameter 1
|p1= '''object''': [[Object]]


|p2= [type, command]: [[Array]] |= Parameter 2
|p2= '''type''': [[String]] - See [[:Category:Event Handlers|Event Handlers]] for the full list of available options.


|p3= type: [[String]] - [[:Category:Event Handlers|Event Handler]] type |= Parameter 3
|p3= '''code''': [[Code]] or [[String]] - Code that should be executed when the Event Handler is triggered; executed in [[missionNamespace]] by default.


|p4= command: [[Code]] or [[String]] - code that should be executed once the event occurs, by default executed in [[missionNamespace]] |= Parameter 4
| [[Number]] - The index of the added Event Handler. Indices start at 0 for each unit and increment with each added Event Handler. |RETRUNVALUE=
 
| [[Number]] - The index of the currently added event handler is returned. Indices start at 0 for each unit and increment with each added event handler. (optional)|=
____________________________________________________________________________________________
   
   
|x1= <code>_EHkilledIdx <nowiki>=</nowiki> [[player]] [[addEventHandler]] ["killed", {_this [[exec]] "playerKilled.sqs"}]</code> |= Example 1
|x1= <code>_index = [[player]] [[addEventHandler]] ["Killed", {_this [[exec]] "playerKilled.sqs"}];</code>


|x2= <code>this [[addEventHandler]] ["killed", "[[hint]] [[format]] ['Killed by %1',_this [[select]] 1]"]</code> |= Example 2
|x2= <code>this [[addEventHandler]] ["Killed", "[[hint]] [[format]] ['Killed by %1', _this [[a_hash_b|#]] 1];"];</code>
____________________________________________________________________________________________


|mp= Event handlers are persistent (i.e. they stay attached to a unit, even after it dies and respawns).  
|mp= Some event handlers are persistent (i.e. they stay attached to the unit, even after it dies and respawns).


{{EffArg|cmd|arg|loc}} "Killed" and "Hit" eventhandlers are executed where given unit is local. |= Multiplayer
|seealso= [[removeEventHandler]], [[removeAllEventHandlers]], [[:Category:Event Handlers|Event Handlers]], [[addMPEventHandler]], [[addMissionEventHandler]], [[BIS_fnc_addScriptedEventHandler]]
}}


| [[:Category:Event Handlers|EventHandlers list]], [[addMPEventHandler]], [[removeEventHandler]], [[removeAllEventHandlers]] |= See also


}}


<h3 style="display:none">Notes</h3>
[[Category:Scripting Commands OFP 1.99|ADDEVENTHANDLER]]
[[Category:Scripting Commands OFP 1.96|ADDEVENTHANDLER]]
{{GameCategory|arma1|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}
 
<!-- CONTINUE Notes -->
<dl class="command_description">
<dl class="command_description">
<!-- Note Section BEGIN -->
<dd class="notedate">Posted on July 7, 2015 - 21:06 (UTC)</dd>
<!-- Note Section END -->
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note">
When using overridable EH, such as "InventoryOpened" and similar, where returning [[true]] allows to override default action, [[exitWith]] cannot be used to return value. So:
<code>[[if]] (whatever) [[exitWith]] {[[true]]}; [[false]];</code>
Forget about it, will not work. Instead use:
<code>[[if]] (whatever) [[then]] {[[true]]} [[else]] {[[false]]};</code>
100% satisfaction guaranteed!
</dd>
</dl>
</dl>
 
<!-- DISCONTINUE Notes -->
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands|ADDEVENTHANDLER]]
[[Category:Scripting Commands OFP 1.99|ADDEVENTHANDLER]]
[[Category:Scripting Commands OFP 1.96|ADDEVENTHANDLER]]
[[Category:Scripting Commands ArmA|ADDEVENTHANDLER]]
[[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}}}}]]

Revision as of 00:19, 17 February 2021

Hover & click on the images for description

Description

Description:
Description needed
Multiplayer:
Some event handlers are persistent (i.e. they stay attached to the unit, even after it dies and respawns).
Groups:
Event Handlers

Syntax

Syntax:
Syntax needed
Parameters:
object: Object
type: String - See Event Handlers for the full list of available options.
code: Code or String - Code that should be executed when the Event Handler is triggered; executed in missionNamespace by default.
Return Value:
Return value needed

Examples

Example 1:
_index = player addEventHandler ["Killed", {_this exec "playerKilled.sqs"}];
Example 2:
this addEventHandler ["Killed", "hint format ['Killed by %1', _this # 1];"];

Additional Information

See also:
removeEventHandlerremoveAllEventHandlersEvent HandlersaddMPEventHandleraddMissionEventHandlerBIS_fnc_addScriptedEventHandler

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 July 7, 2015 - 21:06 (UTC)
Killzone Kid
When using overridable EH, such as "InventoryOpened" and similar, where returning true allows to override default action, exitWith cannot be used to return value. So: if (whatever) exitWith {true}; false; Forget about it, will not work. Instead use: if (whatever) then {true} else {false}; 100% satisfaction guaranteed!