Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private ["_obj", "_vehicle", "_carrierPartsArray", "_partClasses", "_nearbyCarrierParts", "_carrierPart", "_index"];
- if (isServer) then {
- diag_log ":: Spawning Carrier";
- //Test 1
- private _obj = ["Land_Carrier_01_base_F", [14991,15347.2,0],[0.864525,0.502589,0],[0,0,1], true];
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate;
- /* //Test 2
- private _obj = ["Land_Carrier_01_base_F", [17044.3,21522.9,0],[-0.871425,-0.490529,0],[0,0,1], true];
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate; */
- //Test 3
- private _obj = ["Land_Carrier_01_base_F", [3899.37,9205.94,0],[0.878769,-0.477248,0],[0,0,1], true];
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate;
- //Test 4
- private _obj = ["Land_Carrier_01_base_F", [18832.9,18660.1,0],[-0.699871,-0.71427,0],[0,0,1], true];
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate;
- //Test 5
- private _obj = ["Land_Carrier_01_base_F", [14290.6,23703.5,0],[0.998871,-0.0475133,0],[0,0,1], true];
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate;
- //Test 6
- private _obj = ["Land_Carrier_01_base_F", [13152,12966.7,-0.264461],[0.0858712,0.996306,0],[0,0,1], true],
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate;
- //Test 7
- private _obj = ["Land_Carrier_01_base_F", [16412.3,15328,2.16388],[0.847579,0.53067,0],[0,0,1], true],
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate;
- //Test 8
- private _obj = ["CUP_B_LHD_WASP_USMC_SEA_CONTROL", [15176.5,14893.9,21.1362],[8.74228e-008,-1,0],[0,0,1], true]
- private _vehicle = (_obj select 0) createVehicle (_obj select 1);
- _vehicle allowDamage false;
- _vehicle setPosWorld (_obj select 1);
- _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
- [_vehicle] call BIS_fnc_Carrier01PosUpdate;
- // Broadcast Carrier ID over network
- missionNamespace setVariable ["USS_FREEDOM_CARRIER",_vehicle]; publicVariable "USS_FREEDOM_CARRIER";
- _vehicle enableSimulationGlobal true;
- } else {
- [] spawn {
- // Clients wait for carrier
- waitUntil { !(isNull (missionNamespace getVariable ["USS_FREEDOM_CARRIER",objNull])) };
- // Work around for missing carrier data not being broadcast as expected
- if (count (USS_FREEDOM_CARRIER getVariable ["bis_carrierParts", []]) == 0) then {
- ["Carrier %1 is empty. Client Fixing.",str "bis_carrierParts"] call BIS_fnc_logFormatServer;
- private _carrierPartsArray = (configFile >> "CfgVehicles" >> typeOf USS_FREEDOM_CARRIER >> "multiStructureParts") call BIS_fnc_getCfgDataArray;
- private _partClasses = _carrierPartsArray apply {_x select 0};
- private _nearbyCarrierParts = nearestObjects [USS_FREEDOM_CARRIER,_partClasses,500];
- {
- private _carrierPart = _x;
- private _index = _forEachIndex;
- {
- if ((_carrierPart select 0) isEqualTo typeOf _x) exitWith { _carrierPart set [0,_x]; };
- } forEach _nearbyCarrierParts;
- _carrierPartsArray set [_index,_carrierPart];
- } forEach _carrierPartsArray;
- USS_FREEDOM_CARRIER setVariable ["bis_carrierParts",_nearbyCarrierParts];
- ["Carrier %1 was empty. Now contains %2.",str "bis_carrierParts",USS_FREEDOM_CARRIER getVariable ["bis_carrierParts", []]] call BIS_fnc_logFormatServer;
- };
- // Client Initiate Carrier Actions with slight delay to ensure carrier is sync'd
- [USS_FREEDOM_CARRIER] spawn { sleep 1; _this call BIS_fnc_Carrier01Init};
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement