#include "..\script_component.hpp" /* * Author: KoffeinFlummi, commy2, kymckay, johnb43 * Start an ammo cook-off in the given ammo box. * * Arguments: * 0: Ammo box * 1: Source (default: objNull) * 2: Instigator (default: objNull) * * Return Value: * None * * Example: * cursorObject call ace_cookoff_fnc_cookOffBoxServer * * Public: No */ if (!isServer) exitWith {}; if (!GVAR(enableAmmobox) || {GVAR(ammoCookoffDuration) == 0}) exitWith {}; params ["_box", ["_source", objNull], ["_instigator", objNull]]; // Make sure it's a box (important, because deleted EH is assigned to ReammoBox_F only in postInit) if !(_box isKindOf "ReammoBox_F") exitWith {}; if !(_box getVariable [QGVAR(enableAmmoCookoff), true]) exitWith {}; // Allow only 1 cook-off per box at a time if (_box getVariable [QGVAR(isCookingOff), false]) exitWith {}; _box setVariable [QGVAR(isCookingOff), true, true]; private _delay = random [SMOKE_DELAY / 2, SMOKE_DELAY, SMOKE_DELAY / 2 * 3]; // Spawn cook-off effects on all connected machines and JIP private _jipID = [QGVAR(cookOffBoxLocal), [ _box, _source, _instigator, CBA_missionTime + _delay // Generate a globally synced timestamp ]] call CBA_fnc_globalEventJIP; [_jipID, _box] call CBA_fnc_removeGlobalEventJIP; _box setVariable [QGVAR(cookoffBoxJipID), _jipID]; // API [QGVAR(cookOffBox), [_box, _source, _instigator, _delay]] call CBA_fnc_globalEvent;