addEventHandler: Difference between revisions
Jump to navigation
Jump to search
m (Updated with _thisEvent) |
Tag: Undo |
||
(13 intermediate revisions by 3 users not shown) | |||
Line 29: | Line 29: | ||
|descr= Adds an Event Handler to the given object. | |descr= Adds an Event Handler to the given object. | ||
* | * As many Event Handlers of any type can be added - existing Event Handlers do not get overwritten | ||
* 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 | |mp= Some event handlers are persistent (i.e they stay attached to the unit, even after it dies and respawns). | ||
|s1= | |s1= target [[addEventHandler]] [type, code] | ||
|p1= | |p1= target: [[Object]] or {{GVI|arma3|2.10|size= 0.75}} [[Group]] | ||
|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]] - | |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 < | * Event Handler parameters are accessible via <sqf inline>_this</sqf> | ||
* The Event Handler type is available as < | * The Event Handler type is available as <sqf inline>_thisEvent</sqf> | ||
* The Event Handler index is available as < | * The Event Handler index is available as <sqf inline>_thisEventHandler</sqf> | ||
|r1= [[Number]] - | |r1= [[Number]] - the index of the added Event Handler. Indices start at 0 for each unit and increment with each added Event Handler. | ||
|x1= < | |x1= <sqf> | ||
this addEventHandler ["Killed", { | |||
params ["_unit", "_killer"]; | params ["_unit", "_killer"]; | ||
systemChat format ["%1 has been killed by %2.", _unit, _killer]; | systemChat format ["%1 has been killed by %2.", _unit, _killer]; | ||
}];</sqf> | }]; | ||
</sqf> | |||
|seealso= [[removeEventHandler]] [[removeAllEventHandlers]] [[:Category:Event Handlers|Event Handlers]] [[addMPEventHandler]] [[addMissionEventHandler]] [[BIS_fnc_addScriptedEventHandler]] | |x2= <sqs>_index = player addEventHandler ["Killed", { _this exec "playerKilled.sqs" }]</sqs> | ||
|seealso= [[removeEventHandler]] [[removeAllEventHandlers]] [[:Category:Event Handlers|Event Handlers]] [[addMPEventHandler]] [[addMissionEventHandler]] [[BIS_fnc_addScriptedEventHandler]] [[getEventHandlerInfo]] | |||
}} | }} | ||
{{Note | |||
|user= Killzone_Kid | |||
|timestamp= 20150607210600 | |||
|text= 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: | |||
<sqf>if (whatever) exitWith {true}; false;</sqf> | |||
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: | |||
< | |||
Forget about it, will not work. Instead use: | Forget about it, will not work. Instead use: | ||
< | <sqf>if (whatever) then {true} else {false};</sqf> | ||
100% satisfaction guaranteed! | 100% satisfaction guaranteed! | ||
}} | |||
Latest revision as of 15:58, 31 March 2024
Description
- Description:
- Adds an Event Handler to the given object.
- As many Event Handlers of any type can be added - existing Event Handlers do not get overwritten
- Use removeEventHandler to remove an Event Handler
- 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:
- target addEventHandler [type, code]
- Parameters:
- target: Object or 2.10 Group
- 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:
- this addEventHandler ["Killed", { params ["_unit", "_killer"]; systemChat format ["%1 has been killed by %2.", _unit, _killer]; }];
- Example 2:
Additional Information
- See also:
- removeEventHandler removeAllEventHandlers Event Handlers addMPEventHandler addMissionEventHandler BIS_fnc_addScriptedEventHandler getEventHandlerInfo
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
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.85
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Operation Flashpoint: Elite: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: Event Handlers
- Scripting Commands: Local Effect