From Bohemia Interactive Community
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.) of the same event together because BIS_fnc_addStackedEventHandler utilizes these commands in it's code, overwriting a non-stacked EH. Redefining a non-stacked EH will also overwrite all stacked EH's (in that particular event).
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")