params ["_caller", "_lfz", "_wp1","_wp2","_startpos"];
_lfz = (_this select 3) select 0;
_transporttyp = (_this select 3) select 1; // 0 = zur LZ; 1 = zurück zur Basis
_lfz setVariable ["var_backtobase", false, true];
if ( missionNamespace getVariable "callsupport") exitWith { [(side (_this select 1)),"HQ"] commandChat "Einsatz abgelehnt. Keine freien Transportmittel" };
_dof_fnc_meinMarkerFunction =
{
createMarker ["LzEzMarker",LandingPos];
"LzEzMarker" setMarkerShape "ICON";
"LzEzMarker" setMarkerType "hd_dot";
"LzEzMarker" setMarkerText _this;
};
caller = (_this select 1);
openmap [true,false];
titletext ["auf der Karte die Helikopereinsatzort markieren","plain"];
onMapSingleClick "onMapSingleClick ''; LandingPos = _pos; missionNamespace setvariable ['callsupport', true, true];";
waitUntil {sleep 1; (!visiblemap || callsupport)};
if (!callsupport) exitWith
{
LandingPos = nil;
onMapSingleClick "";
missionNamespace setvariable ['callsupport', false, true];
hint parseText format["Helikoptereinsatz abgebrochen"];
titletext ["","plain"];
};
[[(side (_this select 1)),"HQ"], "Daten an Flugzentrale gesendet. Helikoper kommt zum Einsatz"] remoteExec ["commandChat"];
if (_transporttyp == 0) then { "Landezone" call _dof_fnc_meinMarkerFunction} else { "Evac Punkt" call _dof_fnc_meinMarkerFunction };
_startpos = getpos _lfz;
_lfzpad = "Land_HelipadEmpty_F" createVehicle LandingPos;
_lfz synchronizeObjectsAdd [_lfzpad];
//--- erstellt Wegpunkt im Einsatzgebeit
_wp1 = group _lfz addwaypoint [LandingPos, 1];
_wp1 setwaypointtype "MOVE";
_wp1 setWaypointStatements ["true", "(vehicle this) LAND 'GET OUT';"];
_lfz setCombatMode "blue";
_lfz setBehaviour "SAFE";
_lfz allowfleeing 0;
_lfz flyinHeight 40;
waitUntil {sleep 1; _lfz distance LandingPos < 600};
if (_transporttyp == 1) then{ "SmokeShellGreen" createVehicle LandingPos};
_lfz setspeedMode "normal";
[[(side (_this select 1)),"HQ"], "Helikopter erreicht das Einsatzgebiet. Landung erfolgt in x < 3"] remoteExec ["commandChat"];
_lfz setcaptive true;
waitUntil {sleep 1; _lfz distance LandingPos < 150};
_lfz setspeedMode "LIMITED";
waitUntil {sleep 1; getpos _lfz select 2 < 5};
//--- fügt ein Abflugkommando hinzu
flyhomeID = _lfz addAction
[
"Ready! Fly Back ",
{ (_this select 0) setVariable ["var_backtobase", true,true]; (_this select 0) removeAction flyhomeID; },
nil,
6,
false,
false,
"",
""
];
waituntil {sleep 2; _lfz getVariable "var_backtobase"}; // waituntil {sleep 2; {_x in _lfz} count allunits == countedcrew} --> wenn helicrew vorher ausgezählt;
//--- Löscht den Marker, Setzt Pad neu, Syncronisert neu, Heli gehört wieder zur Seite
deleteMarker "LzEzMarker";
_lfz setcaptive false;
_lfzpad setpos _startpos;
//--- Leitet Ablug ein
_wp2 = group _lfz addwaypoint [_startpos, 1];
_wp2 setwaypointtype "MOVE";
_wp2 setWaypointStatements ["true", "(vehicle this) LAND 'Land';"];
_lfz setCombatMode "blue";
_lfz setBehaviour "SAFE";
_lfz allowfleeing 0;
_lfz flyinHeight 40;
waitUntil {sleep 1; _lfz distance _startpos < 600};
_lfz setspeedMode "normal";
waitUntil {sleep 1; _lfz distance _startpos < 150};
_lfz setspeedMode "LIMITED";
//_lfz land "LAND";
waitUntil {isTouchingGround _lfz};
_lfz action ["engineOff", _lfz];
_lfz setdammage 0; _lfz setfuel 1;
missionNamespace setvariable ["callsupport", false, true];
deleteVehicle _lfzpad;
while {(count (waypoints (group _lfz))) > 0} do
{
deleteWaypoint ((waypoints (group _lfz)) select 0);
};