BIS fnc addStackedEventHandler: Difference between revisions
Jump to navigation
Jump to search
Killzone Kid (talk | contribs) (removed my note, so many changes happened since not sure if relevant any more) |
No edit summary |
||
Line 79: | Line 79: | ||
<dd class="note"> | <dd class="note"> | ||
It is not possible to override default engine behavior with stacked event handlers. This is because [[BIS_fnc_executeStackedEventHandler]], a function that is called inside [[BIS_fnc_addStackedEventHandler]], '''always''' returns false. | It is not possible to override default engine behavior with stacked event handlers. This is because [[BIS_fnc_executeStackedEventHandler]], a function that is called inside [[BIS_fnc_addStackedEventHandler]], '''always''' returns false. | ||
</dd> | |||
</dl> | |||
<!-- DISCONTINUE Notes --> | |||
<!-- CONTINUE Notes --> | |||
<dl class="command_description"> | |||
<dd class="notedate">Posted on December 8, 2014 - 20:56 (UTC)</dd> | |||
<dt class="note">[[User:DreadedEntity|DreadedEntity]]</dt> | |||
<dd class="note"> | |||
You cannot use stacked EH's and non-stacked EH's (just the normal commands, [[onEachFrame]]/[[onMapSingleClick]]/etc.) together because [[BIS_fnc_addStackedEventHandler]] utilizes these commands in it's code, overwriting a non-stacked EH. | |||
Stacked Event Handlers are saved to [[missionNamespace]] whenever a new one is added, to view them use: | |||
<code>[[hint]] [[str]] ([[missionNamespace]] [[getVariable]] ["BIS_stackedEventHandlers_XXX",[]]); | |||
where "XXX" is each event name ("[[onEachFrame]]", "[[onPreloadStarted]]", "[[onPreloadFinished]]", "[[onMapSingleClick]]", "[[onPlayerConnected]]", "[[onPlayerDisconnected]]")</code> | |||
</dd> | </dd> | ||
</dl> | </dl> | ||
<!-- DISCONTINUE Notes --> | <!-- DISCONTINUE Notes --> |
Revision as of 21:56, 8 December 2014
Description
- Description:
- Stack an event handler. Possible event handlers are:
- "onEachFrame"
- "onPlayerConnected"
- "onPlayerDisconnected"
- "onMapSingleClick"
- "onPreloadStarted"
- "onPreloadFinished"
- Execution:
- call
- Groups:
- Uncategorised
Syntax
- Syntax:
- [key, event, code, arguments] call BIS_fnc_addStackedEventHandler;
- Parameters:
- key: String - unique identifier
- event: String - event handler type, see Description
- code: String or Code
- arguments: Anything - arguments to make available in code
- Return Value:
- String
Examples
- Example 1:
["someId", "onEachFrame", { hintSilent str time; }] call BIS_fnc_addStackedEventHandler;
- Example 2:
["someId", "onEachFrame", { hintSilent str _this; }, "Hello world!"] 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 November 1, 2013
- neokika
- More info at: http://forums.bistudio.com/showthread.php?167822-Stacked-event-handlers-OnEachFrame-OnPlayerConnected-etc
- Posted on February 11, 2014
- 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 December 8, 2014 - 08:21 (UTC)
- DreadedEntity
- It is not possible to override default engine behavior with stacked event handlers. This is because BIS_fnc_executeStackedEventHandler, a function that is called inside BIS_fnc_addStackedEventHandler, always returns false.
- Posted on December 8, 2014 - 20:56 (UTC)
- DreadedEntity
-
You cannot use stacked EH's and non-stacked EH's (just the normal commands, onEachFrame/onMapSingleClick/etc.) together because BIS_fnc_addStackedEventHandler utilizes these commands in it's code, overwriting a non-stacked EH.
Stacked Event Handlers are saved to missionNamespace whenever a new one is added, to view them use:
hint str (missionNamespace getVariable ["BIS_stackedEventHandlers_XXX",[]]); where "XXX" is each event name ("onEachFrame", "onPreloadStarted", "onPreloadFinished", "onMapSingleClick", "onPlayerConnected", "onPlayerDisconnected")