BIS fnc addStackedEventHandler: Difference between revisions
Jump to navigation
Jump to search
SilentKiller (talk | contribs) (Undo revision 150425 by silentkiller* (talk) wrong formatting) Tag: Undo |
SilentKiller (talk | contribs) (Added A3 suggestion to use MapSingleClick EH instead of the function) |
||
Line 16: | Line 16: | ||
* <tt>"[[onMapSingleClick]]"</tt> - EH params are passed as array in <tt>_this</tt> (<tt>[<units>,<pos>,<alt>,<shift>]</tt>) and in special variables <tt>_units</tt>, <tt>_pos</tt>, <tt>_alt</tt>, <tt>_shift</tt> | * <tt>"[[onMapSingleClick]]"</tt> - EH params are passed as array in <tt>_this</tt> (<tt>[<units>,<pos>,<alt>,<shift>]</tt>) and in special variables <tt>_units</tt>, <tt>_pos</tt>, <tt>_alt</tt>, <tt>_shift</tt> | ||
* <tt>"[[onPreloadStarted]]"</tt> - no EH params | * <tt>"[[onPreloadStarted]]"</tt> - no EH params | ||
* <tt>"[[onPreloadFinished]]"</tt> - no EH params|DESCRIPTION= | * <tt>"[[onPreloadFinished]]"</tt> - no EH params | ||
{{Feature arma3 | Since '''{{arma3}}''' v1.57 a stackable MissionEventHandler is available and should be used instead: [[Arma_3:_Event_Handlers/addMissionEventHandler#MapSingleClick|MapSingleClick]]}} | |||
|DESCRIPTION= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| [id, event, code, arguments] call [[BIS_fnc_addStackedEventHandler]]; |SYNTAX= | | [id, event, code, arguments] call [[BIS_fnc_addStackedEventHandler]]; | ||
|SYNTAX= | |||
|p1= id: [[String]] - custom id, a unique identifier. Adding same type of EH with the same id will overwrite existing|PARAMETER1= | |p1= id: [[String]] - custom id, a unique identifier. Adding same type of EH with the same id will overwrite existing|PARAMETER1= |
Revision as of 01:47, 6 April 2020
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:
- Uncategorised
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
Notes
- 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
Bottom Section
- 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.)