mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
transfer value even if it changed
This commit is contained in:
parent
ff0348a169
commit
7c8840df56
@ -35,19 +35,25 @@ if (!isMultiplayer) exitWith {};
|
|||||||
private "_idName";
|
private "_idName";
|
||||||
_idName = format ["ACE_setVariablePublic_%1", _varName];
|
_idName = format ["ACE_setVariablePublic_%1", _varName];
|
||||||
|
|
||||||
|
// exit now if an eh for that variable already exists
|
||||||
|
private "_allIdNames";
|
||||||
|
_allIdNames = [GETMVAR(BIS_stackedEventHandlers_onEachFrame,[]), {_this select 0}] call FUNC(map);
|
||||||
|
|
||||||
|
if (_idName in _allIdNames) exitWith {};
|
||||||
|
|
||||||
// when to push the value
|
// when to push the value
|
||||||
private "_syncTime";
|
private "_syncTime";
|
||||||
_syncTime = diag_tickTime + _sync;
|
_syncTime = diag_tickTime + _sync;
|
||||||
|
|
||||||
// add eventhandler. should the value change, then overwrite the previous eventhandler
|
// add eventhandler
|
||||||
[_idName, "onEachFrame", {
|
[_idName, "onEachFrame", {
|
||||||
// wait to sync the variable
|
// wait to sync the variable
|
||||||
if (diag_tickTime > _this select 3) then {
|
if (diag_tickTime > _this select 2) then {
|
||||||
// set value public
|
// set value public
|
||||||
(_this select 0) setVariable [_this select 1, _this select 2, true];
|
(_this select 0) setVariable [_this select 1, (_this select 0) getVariable (_this select 1), true];
|
||||||
|
|
||||||
// remove eventhandler
|
// remove eventhandler
|
||||||
[_this select 4, "onEachFrame"] call BIS_fnc_removeStackedEventHandler
|
[_this select 3, "onEachFrame"] call BIS_fnc_removeStackedEventHandler
|
||||||
};
|
};
|
||||||
}, [_object, _varName, _value, _syncTime, _idName]] call BIS_fnc_addStackedEventHandler;
|
}, [_object, _varName, _syncTime, _idName]] call BIS_fnc_addStackedEventHandler;
|
||||||
nil
|
nil
|
||||||
|
Loading…
Reference in New Issue
Block a user