Advertisement
Irkutsk86

Untitled

Jan 17th, 2024
741
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.52 KB | None | 0 0
  1. private ["_obj", "_vehicle", "_carrierPartsArray", "_partClasses", "_nearbyCarrierParts", "_carrierPart", "_index"];
  2.  
  3. if (isServer) then {
  4. diag_log ":: Spawning Carrier";
  5. //Test 1
  6. private _obj = ["Land_Carrier_01_base_F", [14991,15347.2,0],[0.864525,0.502589,0],[0,0,1], true];
  7. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  8. _vehicle allowDamage false;
  9. _vehicle setPosWorld (_obj select 1);
  10. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  11. [_vehicle] call BIS_fnc_Carrier01PosUpdate;
  12.  
  13. /* //Test 2
  14. private _obj = ["Land_Carrier_01_base_F", [17044.3,21522.9,0],[-0.871425,-0.490529,0],[0,0,1], true];
  15. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  16. _vehicle allowDamage false;
  17. _vehicle setPosWorld (_obj select 1);
  18. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  19. [_vehicle] call BIS_fnc_Carrier01PosUpdate; */
  20.  
  21. //Test 3
  22. private _obj = ["Land_Carrier_01_base_F", [3899.37,9205.94,0],[0.878769,-0.477248,0],[0,0,1], true];
  23. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  24. _vehicle allowDamage false;
  25. _vehicle setPosWorld (_obj select 1);
  26. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  27. [_vehicle] call BIS_fnc_Carrier01PosUpdate;
  28.  
  29. //Test 4
  30. private _obj = ["Land_Carrier_01_base_F", [18832.9,18660.1,0],[-0.699871,-0.71427,0],[0,0,1], true];
  31. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  32. _vehicle allowDamage false;
  33. _vehicle setPosWorld (_obj select 1);
  34. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  35. [_vehicle] call BIS_fnc_Carrier01PosUpdate;
  36.  
  37. //Test 5
  38. private _obj = ["Land_Carrier_01_base_F", [14290.6,23703.5,0],[0.998871,-0.0475133,0],[0,0,1], true];
  39. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  40. _vehicle allowDamage false;
  41. _vehicle setPosWorld (_obj select 1);
  42. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  43. [_vehicle] call BIS_fnc_Carrier01PosUpdate;
  44.  
  45. //Test 6
  46. private _obj = ["Land_Carrier_01_base_F", [13152,12966.7,-0.264461],[0.0858712,0.996306,0],[0,0,1], true],
  47. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  48. _vehicle allowDamage false;
  49. _vehicle setPosWorld (_obj select 1);
  50. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  51. [_vehicle] call BIS_fnc_Carrier01PosUpdate;
  52.  
  53. //Test 7
  54. private _obj = ["Land_Carrier_01_base_F", [16412.3,15328,2.16388],[0.847579,0.53067,0],[0,0,1], true],
  55. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  56. _vehicle allowDamage false;
  57. _vehicle setPosWorld (_obj select 1);
  58. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  59. [_vehicle] call BIS_fnc_Carrier01PosUpdate;
  60.  
  61. //Test 8
  62. private _obj = ["CUP_B_LHD_WASP_USMC_SEA_CONTROL", [15176.5,14893.9,21.1362],[8.74228e-008,-1,0],[0,0,1], true]
  63. private _vehicle = (_obj select 0) createVehicle (_obj select 1);
  64. _vehicle allowDamage false;
  65. _vehicle setPosWorld (_obj select 1);
  66. _vehicle setVectorDirAndUp [_obj select 2, _obj select 3];
  67. [_vehicle] call BIS_fnc_Carrier01PosUpdate;
  68.  
  69. // Broadcast Carrier ID over network
  70. missionNamespace setVariable ["USS_FREEDOM_CARRIER",_vehicle]; publicVariable "USS_FREEDOM_CARRIER";
  71. _vehicle enableSimulationGlobal true;
  72.  
  73. } else {
  74.     [] spawn {
  75.         // Clients wait for carrier
  76.         waitUntil { !(isNull (missionNamespace getVariable ["USS_FREEDOM_CARRIER",objNull])) };
  77.  
  78.         // Work around for missing carrier data not being broadcast as expected
  79.         if (count (USS_FREEDOM_CARRIER getVariable ["bis_carrierParts", []]) == 0) then {
  80.             ["Carrier %1 is empty. Client Fixing.",str "bis_carrierParts"] call BIS_fnc_logFormatServer;
  81.             private _carrierPartsArray = (configFile >> "CfgVehicles" >> typeOf USS_FREEDOM_CARRIER >> "multiStructureParts") call BIS_fnc_getCfgDataArray;
  82.             private _partClasses = _carrierPartsArray apply {_x select 0};
  83.             private _nearbyCarrierParts = nearestObjects [USS_FREEDOM_CARRIER,_partClasses,500];
  84.             {
  85.                 private _carrierPart = _x;
  86.                 private _index = _forEachIndex;
  87.                 {
  88.                     if ((_carrierPart select 0) isEqualTo typeOf _x) exitWith { _carrierPart set [0,_x]; };
  89.                 } forEach _nearbyCarrierParts;
  90.                 _carrierPartsArray set [_index,_carrierPart];
  91.             } forEach _carrierPartsArray;
  92.             USS_FREEDOM_CARRIER setVariable ["bis_carrierParts",_nearbyCarrierParts];
  93.             ["Carrier %1 was empty. Now contains %2.",str "bis_carrierParts",USS_FREEDOM_CARRIER getVariable ["bis_carrierParts", []]] call BIS_fnc_logFormatServer;
  94.         };
  95.  
  96.         // Client Initiate Carrier Actions with slight delay to ensure carrier is sync'd
  97.         [USS_FREEDOM_CARRIER] spawn { sleep 1; _this call BIS_fnc_Carrier01Init};
  98.     };
  99. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement