mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
common: add waitAndExecute function
This commit is contained in:
parent
c85db9baf9
commit
2f4f6f3161
@ -119,6 +119,7 @@ PREP(toBitmask);
|
||||
PREP(toHex);
|
||||
PREP(toNumber);
|
||||
PREP(unmuteUnit);
|
||||
PREP(waitAndExecute);
|
||||
|
||||
// ACE_Debug
|
||||
PREP(exportConfig);
|
||||
|
41
addons/common/functions/fnc_waitAndExecute.sqf
Normal file
41
addons/common/functions/fnc_waitAndExecute.sqf
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Author: CAA-Picard
|
||||
*
|
||||
* Executes a code once with a given game time delay, using a PFH
|
||||
*
|
||||
* Argument:
|
||||
* 0: Code to execute (Code or String)
|
||||
* 1: Parameters to run the code with (Array)
|
||||
* 2: Delay in seconds before executing the code (Number)
|
||||
* 3: Interval of time in which the execution is evaluated, 0 means every frame (Number)
|
||||
*
|
||||
* Return value:
|
||||
* PFH handler ID
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
|
||||
EXPLODE_4_PVT(_this,_func,_params,_delay,_interval);
|
||||
|
||||
[
|
||||
{
|
||||
EXPLODE_2_PVT(_this,_params,_phfId);
|
||||
EXPLODE_2_PVT(_params,_delayedExecParams,_startTime);
|
||||
EXPLODE_3_PVT(_delayedExecParams,_func,_funcParams,_delay);
|
||||
|
||||
// Exit if the time was not reached yet
|
||||
if (time < _startTime + _delay) exitWith {};
|
||||
|
||||
// Remove the PFH
|
||||
[_pfhId] call cba_fnc_removePerFrameHandler;
|
||||
|
||||
// Compile the function if necesary
|
||||
if (typeName _func == "STRING") then {
|
||||
_func = compile _func;
|
||||
};
|
||||
|
||||
// Execute the function
|
||||
_funcParams call _func;
|
||||
},
|
||||
_interval,
|
||||
[_this, time]
|
||||
] call CBA_fnc_addPerFrameHandler
|
Loading…
Reference in New Issue
Block a user