Advertisement
Guest User

Untitled

a guest
Mar 21st, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.47 KB | None | 0 0
  1. /*
  2. @file: destroyRadar.sqf
  3. Author:
  4.  
  5. Quiksilver
  6.  
  7. Last modified:
  8.  
  9. 25/04/2014
  10.  
  11. Description:
  12.  
  13. Get radar telemetry from enemy radar site, then destroy it.
  14. _________________________________________________________________________*/
  15.  
  16. private ["_objPos","_flatPos","_accepted","_position","_randomDir","_hangar","_x","_enemiesArray","_briefing","_fuzzyPos","_unitsArray","_dummy","_object","_tower1","_tower2","_tower3"];
  17.  
  18. _c4Message = ["Radar data secured. The charge has been set! 30 seconds until detonation.","Radar telemetry secured. The explosives have been set! 30 seconds until detonation.","Radar intel secured. The charge is planted! 30 seconds until detonation."] call BIS_fnc_selectRandom;
  19.  
  20. //-------------------- FIND SAFE POSITION FOR OBJECTIVE
  21.  
  22. _flatPos = [0,0,0];
  23. _accepted = false;
  24. while {!_accepted} do {
  25. _position = [] call BIS_fnc_randomPos;
  26. _flatPos = _position isFlatEmpty [5,0,0.1,sizeOf "Land_Radar_Small_F",0,false];
  27.  
  28. while {(count _flatPos) < 2} do {
  29. _position = [] call BIS_fnc_randomPos;
  30. _flatPos = _position isFlatEmpty [5,0,0.1,sizeOf "Land_Radar_Small_F",0,false];
  31. };
  32.  
  33. if ((_flatPos distance (getMarkerPos "respawn_west")) > 1000 && (_flatPos distance (getMarkerPos currentAO)) > 500) then
  34. {
  35. _accepted = true;
  36. };
  37. };
  38.  
  39. _objPos = [_flatPos, 15, 30, 10, 0, 0.5, 0] call BIS_fnc_findSafePos;
  40.  
  41. //-------------------- SPAWN OBJECTIVE
  42.  
  43. sideObj = "Land_Radar_Small_F" createVehicle _flatPos;
  44. waitUntil {!isNull sideObj};
  45. sideObj setDir random 360;
  46.  
  47. house = "Land_Cargo_House_V3_F" createVehicle _objPos;
  48. house setDir random 360;
  49. house allowDamage false;
  50.  
  51. _dummy = [explosivesDummy1,explosivesDummy2] call BIS_fnc_selectRandom;
  52. sleep 0.3;
  53. _object = [research1,research2] call BIS_fnc_selectRandom;
  54. sleep 0.3;
  55. { _x enableSimulation true; } forEach [researchTable,_object];
  56. sleep 0.3;
  57. researchTable setPos [(getPos house select 0), (getPos house select 1), ((getPos house select 2) + 1)];
  58. sleep 1;
  59. [researchTable,_object,[0,0,0.9]] call BIS_fnc_relPosObject;
  60. sleep 0.3;
  61. _tower1 = [sideObj, 50, 0] call BIS_fnc_relPos;
  62. _tower2 = [sideObj, 50, 120] call BIS_fnc_relPos;
  63. _tower3 = [sideObj, 50, 240] call BIS_fnc_relPos;
  64. sleep 0.3;
  65. tower1 = "Land_Cargo_Patrol_V3_F" createVehicle _tower1;
  66. tower2 = "Land_Cargo_Patrol_V3_F" createVehicle _tower2;
  67. tower3 = "Land_Cargo_Patrol_V3_F" createVehicle _tower3;
  68. sleep 0.3;
  69. tower1 setDir 180;
  70. tower2 setDir 300;
  71. tower3 setDir 60;
  72.  
  73. { _x allowDamage false } forEach [tower1,tower2,tower3];
  74. sleep 0.3;
  75.  
  76.  
  77. //-------------------- SPAWN FORCE PROTECTION
  78.  
  79. _enemiesArray = [sideObj] call QS_fnc_SMenemyEAST;
  80.  
  81. //-------------------- BRIEF
  82.  
  83. _fuzzyPos = [((_flatPos select 0) - 300) + (random 600),((_flatPos select 1) - 300) + (random 600),0];
  84.  
  85. { _x setMarkerPos _fuzzyPos; } forEach ["sideMarker", "sideCircle"];
  86. sideMarkerText = "Secure Radar"; publicVariable "sideMarkerText";
  87. "sideMarker" setMarkerText "Side Mission: Secure Radar"; publicVariable "sideMarker";
  88. publicVariable "sideObj";
  89.  
  90. _briefing = "<t align='center'><t size='2.2'>New Side Mission</t><br/><t size='1.5' color='#00B2EE'>Secure Radar</t><br/>____________________<br/>OPFOR have captured a small radar on the island to support their aircraft.<br/><br/>We've marked the position on your map; head over there and secure the site. Take the data and destroy it.</t>";
  91. [_briefing] remoteExec ["AW_fnc_globalHint",0,false];
  92. ["NewSideMission", "Secure Radar"] remoteExec ["AW_fnc_globalNotification",0,false];
  93. sideMarkerText = "Secure Radar"; publicVariable "sideMarkerText";
  94.  
  95. sideMissionUp = true;
  96. SM_SUCCESS = false;
  97.  
  98.  
  99. while { sideMissionUp } do {
  100.  
  101. if (!alive sideObj) exitWith {
  102.  
  103. //-------------------- DE-BRIEFING
  104.  
  105. hqSideChat = "Intel destroyed! Mission FAILED!";
  106. [hqSideChat] remoteExec ["AW_fnc_globalSideChat",0,false];
  107. remoteExec ["QS_fnc_SMhintFAIL",0,false];
  108. { _x setMarkerPos [-10000,-10000,-10000]; } forEach ["sideMarker", "sideCircle"]; publicVariable "sideMarker";
  109. sideMissionUp = false; publicVariable "sideMissionUp";
  110.  
  111. //-------------------- DELETE
  112.  
  113. { _x setPos [-10000,-10000,0]; } forEach [_object,researchTable,_dummy]; // hide objective pieces
  114. sleep 120;
  115. { deleteVehicle _x } forEach [sideObj,house,tower1,tower2,tower3];
  116. deleteVehicle nearestObject [getPos sideObj,"Land_Radar_Small_ruins_F"];
  117. [_enemiesArray] spawn QS_fnc_SMdelete;
  118. };
  119.  
  120. if (SM_SUCCESS) exitWith {
  121.  
  122. hqSideChat = _c4Message;
  123. [hqSideChat] remoteExec ["AW_fnc_globalSideChat",0,false];
  124.  
  125. //-------------------- BOOM!
  126.  
  127. _dummy setPos [(getPos sideObj select 0), ((getPos sideObj select 1) +5), ((getPos sideObj select 2) + 0.5)];
  128. sleep 0.1;
  129. _object setPos [-10000,-10000,0]; // hide objective
  130. sleep 30; // ghetto bomb timer
  131. "Bo_Mk82" createVehicle getPos _dummy; // default "Bo_Mk82","Bo_GBU12_LGB"
  132. _dummy setPos [-10000,-10000,1]; // hide dummy
  133. researchTable setPos [-10000,-10000,1]; // hide research table
  134. sleep 0.1;
  135.  
  136. //-------------------- DE-BRIEFING
  137.  
  138. [] call QS_fnc_SMhintSUCCESS;
  139. { _x setMarkerPos [-10000,-10000,-10000]; } forEach ["sideMarker", "sideCircle"]; publicVariable "sideMarker";
  140. sideMissionUp = false; publicVariable "sideMissionUp";
  141.  
  142. //--------------------- DELETE
  143. sleep 120;
  144. { deleteVehicle _x } forEach [sideObj,house,tower1,tower2,tower3];
  145. deleteVehicle nearestObject [getPos sideObj,"Land_Radar_Small_ruins_F"];
  146. [_enemiesArray] spawn QS_fnc_SMdelete;
  147. };
  148. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement