BIS fnc addStackedEventHandler: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - " <h3 style="display:none">Notes</h3>" to "") |
Lou Montana (talk | contribs) m (Text replacement - " {3,}\|" to " |") |
||
Line 19: | Line 19: | ||
{{Feature|arma3 | Since '''{{arma3}}''' v1.57 a stackable MissionEventHandler is available and should be used instead: [[Arma_3:_Event_Handlers/addMissionEventHandler#MapSingleClick|MapSingleClick]]}} | {{Feature|arma3 | Since '''{{arma3}}''' v1.57 a stackable MissionEventHandler is available and should be used instead: [[Arma_3:_Event_Handlers/addMissionEventHandler#MapSingleClick|MapSingleClick]]}} | ||
| [id, event, code, arguments] call [[BIS_fnc_addStackedEventHandler]]; | | [id, event, code, arguments] call [[BIS_fnc_addStackedEventHandler]]; | ||
|p1= id: [[String]] - custom id, a unique identifier. Adding same type of EH with the same id will overwrite existing | |p1= id: [[String]] - custom id, a unique identifier. Adding same type of EH with the same id will overwrite existing |
Revision as of 22:41, 18 January 2021
Description
- Description:
- Stacks an event handler. All event handlers accept user arguments, which are passed to the EH code in _this variable. If the EH has own params returned in _this variable as well, user arguments are appended to the end of _this array. Note that if you try to add empty EH, i.e. with empty code, it will simply be ignored.
Supported event handlers
- "onEachFrame" - no EH params
- "onPlayerConnected" - EH params are passed as array in _this ([<id>,<uid>,<name>,<jip>,<owner>]) and in special variables _id, _uid, _name, _jip, _owner
- "onPlayerDisconnected" - EH params are passed as array in _this ([<id>,<uid>,<name>,<jip>,<owner>]) and in special variables _id, _uid, _name, _jip, _owner
- "onMapSingleClick" - EH params are passed as array in _this ([<units>,<pos>,<alt>,<shift>]) and in special variables _units, _pos, _alt, _shift
- "onPreloadStarted" - no EH params
- "onPreloadFinished" - no EH params
- Execution:
- call
- Groups:
- Event Handlers
Syntax
- Syntax:
- [id, event, code, arguments] call BIS_fnc_addStackedEventHandler;
- Parameters:
- id: String - custom id, a unique identifier. Adding same type of EH with the same id will overwrite existing
- event: String - event handler name, see description for supported EHs
- code: Code or String. The String is treated as function name
- arguments: Array of Anything - arguments to make available in code in _this array
- Return Value:
- String - custom id on success or "" on failure
Examples
- Example 1:
["someId", "onEachFrame", {hintSilent str time}] call BIS_fnc_addStackedEventHandler;
- Example 2:
["someId", "onEachFrame", {hintSilent str position (_this select 0)}, [player]] call BIS_fnc_addStackedEventHandler;
Additional Information
- See also:
- BIS_fnc_removeStackedEventHandler
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 25 Jun, 2014
- ffur2007slx2_5
-
(ArmA3 1.22) Stack all codes into one PFH will be less demanding than separated calling within multiple PFH. E.g.
{ [(format [“%1”,_forEachIndex]),”onEachFrame”,_code,[_x]] call BIS_fnc_addStackedEventHandler; } forEach [var0…var100]; //pretty demanding
[_id, ”onEachFrame”,{ {_x call _code} forEach [var0…var100]; }] call BIS_fnc_addStackedEventHandler; //faster
- Posted on January 3, 2019 - 13:52 (UTC)
- DrSova
-
For returning array with all ids:
missionNamespace getVariable [format["BIS_stackedEventHandlers_%1",_event],[]];
Where is _event - name of event ('OnEachFrame', etc.)