initial files
This commit is contained in:
73
kp_liberation.brf_sumava/scripts/server/base/startgame.sqf
Normal file
73
kp_liberation.brf_sumava/scripts/server/base/startgame.sqf
Normal file
@@ -0,0 +1,73 @@
|
||||
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;
|
||||
};
|
||||
Reference in New Issue
Block a user