Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author:
- stanhope, AW-community members
- bassed off of existing AW created side missions
- Last modified:
- 22/03/2017
- Modified:
- Description:
- Mission in which players have to find and heal a crashed helipilot before he dies. Bleedouttimer starts running when player get's within 3.5km of the obj.
- */
- private ["_flatPos","_playerClose","_accepted","_position","_objPos","_randomDir","_fuzzyPos","_i","_enemiesArray",
- "_randomPos","_bleedouttimer","_x","_triggerrange","_proximityTimeout"];
- _bleedouttimer = 450; //time before the pilot dies
- _triggerrange = 3500; //if players get within this radius the bleedouttimer starts running
- _proximityTimeout = 1800; //timeout that fails the mission if nobody gets near it.
- //-------------------- FIND SAFE POSITION FOR heliwreck
- _flatPos = [0,0,0];
- _accepted = false;
- while {!_accepted} do {
- _position = [] call BIS_fnc_randomPos;
- _flatPos = _position isFlatEmpty [5,0,0.2,sizeOf "Land_Wreck_Heli_Attack_01_F",0,false];
- while {(count _flatPos) < 2} do {
- _position = [] call BIS_fnc_randomPos;
- _flatPos = _position isFlatEmpty [5,0,0.2,sizeOf "Land_Wreck_Heli_Attack_01_F",0,false];
- };
- if ((_flatPos distance (getMarkerPos "respawn_west")) > 1000 && (_flatPos distance (getMarkerPos currentAO)) > 500) then
- {
- _accepted = true;
- };
- };
- _objPos = [_flatPos, 25, 35, 10, 0, 0.5, 0] call BIS_fnc_findSafePos;
- // Heli-wreck Creation -----------------------
- sideObj = "Land_Wreck_Heli_Attack_01_F" createVehicle _flatPos;
- waitUntil {alive sideObj};
- sideObj setDir 0;
- sideObj setPos [(getPos sideObj select 0), (getPos sideObj select 1), ((getPos sideObj select 2))];
- sideObj setVectorUp surfaceNormal position sideObj;
- //Pilot Creation -----------------------
- pilot = "C_man_pilot_F" createVehicle _flatPos;
- pilot setPos [(getPos sideObj select 0)+4, (getPos sideObj select 1)-4, ((getPos sideObj select 2))];
- pilot setVectorUp surfaceNormal position pilot;
- removeuniform pilot;
- removevest pilot;
- pilot adduniform "U_B_HeliPilotCoveralls";
- pilot addvest "V_TacVest_blk";
- pilot addheadgear "H_PilotHelmetHeli_B";
- pilot switchMove "HubWoundedProne_idle1";
- // Spawn enemy forces--------------------------------------
- _enemiesArray = [sideObj] call AW_fnc_SMenemyEASTrescuepilot;
- // Briefing ------------------------------------------------
- _fuzzyPos = [((_flatPos select 0) - 300) + (random 600),((_flatPos select 1) - 300) + (random 600),0];
- { _x setMarkerPos _fuzzyPos; } forEach ["sideMarker", "sideCircle"];
- sideMarkerText = "search and rescue";
- "sideMarker" setMarkerText "Side Mission: search and rescue";
- [west,["rescueTask"],/*briefing needs rewriting*/
- ["We received a distress call from a friendly heli. We believe the enemy has shot it down, your job is to find and rescue the pilot who is believed to have survived the crash. Be careful when approaching the searcharea we expect heavy AA."
- ,"Side Mission: search and rescues","sideCircle"],
- (getMarkerPos "sideCircle"),0,0,true,"heal",true] call BIS_fnc_taskCreate;
- //mission core
- sideMissionUp = true;
- SM_SUCCESS = false;
- SM_FAILED = false;
- NearTrgFired = false;
- pilot addAction ["<t color='#ff1111'>Rescue pilot</t>",
- "missions\side\actions\rescue.sqf",
- [],21,true,true,"",'((vehicle player) == player) && ((player distance _target) < 5)'];
- _BlueforNotNearTrg = createTrigger ["EmptyDetector", _fuzzyPos, true];
- _BlueforNotNearTrg setTriggerActivation ["WEST", "NOT PRESENT", true];
- _BlueforNotNearTrg setTriggerArea [_triggerrange, _triggerrange, 0, false, 1800];
- _BlueforNotNearTrg setTriggerStatements ["this","",
- "if (sideMissionUp) then
- {
- if (_proximityTimeout < 1) exitWith
- {
- sideMissionUp = false;
- SM_FAILED = true;
- };
- };"];
- _BlueforNearTrg = createTrigger ["span class='re5'> EmptyDetector", _fuzzyPos, true];
- _BlueforNearTrg setTriggerActivation ["WEST", "span class='re5'> PRESENT", true];
- _BlueforNearTrg setTriggerArea [_triggerrange, _triggerrange, 0, false, 1800];
- _BlueforNearTrg setTriggerStatements ["this",
- "NearTrgFired = true;
- if (sideMissionUp) then
- {
- if (_bleedouttimer == 0) exitWith
- {
- deleteVehicle pilot;
- sideMissionUp = false;
- SM_FAILED = true;
- };
- if (SM_SUCCESS) exitWith
- {
- pilot switchMove 'AinjPpneMstpSnonWrflDnon_rolltofront';
- sleep 3;
- sideMissionUp = false;
- };
- };",""];
- while {sideMissionUp} do
- {
- if (!NearTrgFired) then
- {
- _proximityTimeout =_proximityTimeout -5;
- sleep 4;
- };
- if (NearTrgFired) then
- {
- _bleedouttimer = _bleedouttimer -1;
- };
- sleep 1;
- if (SM_FAILED || SM_SUCCESS) exitWith {};
- };
- if (SM_SUCCESS) then
- {
- deleteVehicle pilot;
- [] call AW_fnc_SMhintSUCCESS;
- ["rescueTask", "SUCCEEDED",true] call BIS_fnc_taskSetState;
- };
- if (SM_FAILED) then
- {
- deleteVehicle pilot;
- ["rescueTask", "Failed",true] call BIS_fnc_taskSetState;
- };
- if (SM_FAILED || SM_SUCCESS) then
- {
- deleteVehicle _BlueforNearTrg;
- deleteVehicle _BlueforNotNearTrg;
- sleep 5;
- ["rescueTask",west] call bis_fnc_deleteTask;
- { _x setMarkerPos [-10000,-10000,-10000]; } forEach ["sideMarker", "sideCircle"];
- //-------------------- DELETE
- sleep 120;
- deleteVehicle nearestObject [getPos sideObj,"Land_Wreck_Heli_Attack_01_F"];
- { [_x] spawn AW_fnc_SMdelete } forEach [_enemiesArray];
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement