74 lines
2.9 KiB
Plaintext
74 lines
2.9 KiB
Plaintext
waitUntil {!isNil "save_is_loaded"};
|
|
waitUntil {save_is_loaded};
|
|
|
|
// Check if there is no FOB yet (new campaign)
|
|
if (GRLIB_all_fobs isEqualTo []) then {
|
|
|
|
// Prebuild FOB (parameter setting) or spawn FOB box
|
|
if (GRLIB_build_first_fob) then {
|
|
// Only accept spawnpoints which are at least 800m away from any sector
|
|
private _y = "";
|
|
private _validPlaces = sectors_opfor select {
|
|
_y = _x;
|
|
(sectors_allSectors findIf {((markerPos _x) distance2d (markerPos _y)) < 800}) isEqualTo -1
|
|
};
|
|
|
|
// Spawn first FOB on random valid spawnpoint
|
|
[markerPos (selectRandom _validPlaces), true] remoteExec ["build_fob_remote_call", 2];
|
|
} else {
|
|
// Spawn FOB box and wait until the first FOB was built
|
|
private _fobbox = objNull;
|
|
while {GRLIB_all_fobs isEqualTo []} do {
|
|
_fobbox = ([FOB_box_typename, FOB_truck_typename] select KP_liberation_fob_vehicle) createVehicle (getposATL base_boxspawn);
|
|
_fobbox setdir getDir base_boxspawn;
|
|
_fobbox setposATL (getposATL base_boxspawn);
|
|
[_fobbox, true] call KPLIB_fnc_clearCargo;
|
|
[_fobbox] call KPLIB_fnc_addObjectInit;
|
|
|
|
// If the FOB box has fallen into the sea or is destroyed, start again with spawning a new one
|
|
waitUntil {
|
|
sleep 1;
|
|
!(alive _fobbox) || !(GRLIB_all_fobs isEqualTo []) || (((getPosASL _fobbox) select 2) < 0)
|
|
};
|
|
sleep 10;
|
|
};
|
|
deleteVehicle _fobbox;
|
|
};
|
|
|
|
// Wait a short time before paradropping the start resource crates
|
|
waitUntil {sleep 1; !(GRLIB_all_fobs isEqualTo [])};
|
|
if (KP_liberation_tutorial && {["KPLIB_Tasks_Tutorial_Fob"] call BIS_fnc_taskExists}) then {
|
|
waitUntil {sleep 1; ["KPLIB_Tasks_Tutorial_Fob_02"] call BIS_fnc_taskCompleted};
|
|
sleep 3;
|
|
} else {
|
|
sleep 10;
|
|
};
|
|
|
|
// Spawn start resource crates and attach them to parachutes
|
|
KPLIB_startCrates = [];
|
|
private _crate = objNull;
|
|
for "_i" from 1 to 6 do {
|
|
_crate = createVehicle [
|
|
(KPLIB_crates select (_i % 3)),
|
|
[((GRLIB_all_fobs select 0) select 0), ((GRLIB_all_fobs select 0) select 1), 150],
|
|
[],
|
|
80,
|
|
"FLY"
|
|
];
|
|
[_crate, true] call KPLIB_fnc_clearCargo;
|
|
_crate setVariable ["KP_liberation_crate_value", 100, true];
|
|
[_crate, 500] remoteExec ["setMass", _crate];
|
|
[objNull, _crate] call BIS_fnc_curatorObjectEdited;
|
|
if (KP_liberation_ace) then {[_crate, true, [0, 1.5, 0], 0] remoteExec ["ace_dragging_fnc_setCarryable"];};
|
|
KPLIB_startCrates pushBack _crate;
|
|
};
|
|
|
|
// Spawn green smoke on the crates short before they hit the ground
|
|
uiSleep 25;
|
|
private _smoke = objNull;
|
|
{
|
|
_smoke = "SmokeShellGreen" createVehicle (getPos _x);
|
|
_smoke attachTo [_x];
|
|
} forEach KPLIB_startCrates;
|
|
};
|