addEventHandler: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
m (Updated with _thisEvent)
Line 32: Line 32:
* Use [[removeEventHandler]] to remove an Event Handler.
* Use [[removeEventHandler]] to remove an Event Handler.
Read [[:Category:Event Handlers|Event Handlers]] for more information and a list of all available Event Handlers.
Read [[:Category:Event Handlers|Event Handlers]] for more information and a list of all available Event Handlers.
|mp= Some event handlers are persistent (i.e. they stay attached to the unit, even after it dies and respawns).


|s1= object [[addEventHandler]] [type, code]
|s1= object [[addEventHandler]] [type, code]
Line 37: Line 39:
|p1= object: [[Object]]
|p1= object: [[Object]]


|p2= type: [[String]] - See [[:Category:Event Handlers|Event Handlers]] for the full list of available options.
|p2= type: [[String]] - see [[:Category:Event Handlers|Event Handlers]] for the full list of available options


|p3= code: [[Code]] or [[String]] - Code that should be executed when the Event Handler is triggered; executed in [[missionNamespace]] by default.
|p3= code: [[Code]] or [[String]] - Code that should be executed when the Event Handler fires; executed in [[missionNamespace]] by default. Several [[Magic Variables]] are available:
* Event Handler parameters are accessible via the {{hl|_this}} inside the code
* Event Handler parameters are accessible via <var>_this</var>.
* Since Arma 3 v.1.64 the Event Handler index is available as {{hl|_thisEventHandler}} during Event Handler code execution
* The Event Handler type is available as <var>_thisEvent</var>.
* The Event Handler index is available as <var>_thisEventHandler</var>.


|r1= [[Number]] - The index of the added Event Handler. Indices start at 0 for each unit and increment with each added Event Handler. |RETRUNVALUE=
|r1= [[Number]] - The index of the added Event Handler. Indices start at 0 for each unit and increment with each added Event Handler. |RETRUNVALUE=


|x1= <code>_index = [[player]] [[addEventHandler]] ["Killed", {_this [[exec]] "playerKilled.sqs"}];</code>
|x1= <sqf>_index = player addEventHandler ["Killed", {_this exec "playerKilled.sqs"}];</sqf>
 
|x2= <code>this [[addEventHandler]] ["Killed", "[[hint]] [[format]] ['Killed by %1', _this [[a_hash_b|#]] 1];"];</code>


|mp= Some event handlers are persistent (i.e. they stay attached to the unit, even after it dies and respawns).
|x2= <sqf>this addEventHandler ["Killed", {
params ["_unit", "_killer"];
systemChat format ["%1 has been killed by %2.", _unit, _killer];
}];</sqf>


|seealso= [[removeEventHandler]] [[removeAllEventHandlers]] [[:Category:Event Handlers|Event Handlers]] [[addMPEventHandler]] [[addMissionEventHandler]] [[BIS_fnc_addScriptedEventHandler]]
|seealso= [[removeEventHandler]] [[removeAllEventHandlers]] [[:Category:Event Handlers|Event Handlers]] [[addMPEventHandler]] [[addMissionEventHandler]] [[BIS_fnc_addScriptedEventHandler]]

Revision as of 14:51, 27 March 2022

Hover & click on the images for description

Description

Description:
Adds an Event Handler to the given object.
  • 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 Event Handlers for more information and a list of all available Event Handlers.
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:
object addEventHandler [type, code]
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 fires; executed in missionNamespace by default. Several Magic Variables are available:
  • Event Handler parameters are accessible via _this.
  • The Event Handler type is available as _thisEvent.
  • The Event Handler index is available as _thisEventHandler.
Return Value:
Number - The index of the added Event Handler. Indices start at 0 for each unit and increment with each added Event Handler.

Examples

Example 1:
_index = player addEventHandler ["Killed", {_this exec "playerKilled.sqs"}];
Example 2:
this addEventHandler ["Killed", { params ["_unit", "_killer"]; systemChat format ["%1 has been killed by %2.", _unit, _killer]; }];

Additional Information

See also:
removeEventHandler removeAllEventHandlers Event Handlers addMPEventHandler addMissionEventHandler BIS_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!