mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
37 lines
957 B
Plaintext
37 lines
957 B
Plaintext
/*
|
|
* Author: esteldunedain
|
|
*
|
|
* Executes a code once with a given game time delay, using a PFH
|
|
*
|
|
* Argument:
|
|
* 0: Code to execute (Code)
|
|
* 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"
|
|
|
|
PARAMS_4(_func,_params,_delay,_interval);
|
|
|
|
[
|
|
{
|
|
EXPLODE_2_PVT(_this,_params,_pfhId);
|
|
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;
|
|
|
|
// Execute the function
|
|
_funcParams call _func;
|
|
},
|
|
_interval,
|
|
[_this, time]
|
|
] call CBA_fnc_addPerFrameHandler
|