Heli Extraction Template

    • Tut- Complete

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Heli Extraction Template

      Ach ja, seit 3 Stunden unterwegs und endlich hat man mehr schlecht als recht den Extraction Punkt erreicht.
      Jetzt aber schnell die Büchse rufen und raus hier.
      Ein immer wieder beliebtes Ende einer gelungenen Mission. Wie aber ArmA so ist.. da funkt wieder mal irgendwas nicht.. SCHEEIII.....EEEE

      Hier mal ein Script mit dem ich das löse.
      Der Heli fliegt erst ab wenn alle Spieler sitzen.
      Sind mehrere Spielergruppen unterwegs sind diese im Script zu benennen. Achtung: Nicht jeder Heli hat genügend Sitzplätze!!

      EDITOR
      - Im Editor brauche ich meine Spielergruppe (hier 4Mann) benannt mit: s1, s2, s3, s4
      - Jeder Einheit bekommt den Gruppennamen WestGruppe1 oder wie hier wg1 in die Init (da ich nie weiß welche spielbare Einheit später wirklich gespielt wird)
      - Einen Marker für die SpawnPosition meines Helis: extractionSpawn
      - Einen Marker als Landepunkt: ExtractionLZ

      1. Trigger fragt ab ob mein Spielergruppe am LZ ist und gibt einen Hint das mit 0-0-1 nun der Heli gerufen werden kann
      2. Trigger: Radio Alpha also mit 0-0-1 wird Heli Script ausgeführt. Scriptaufruf: _null = [] execVM "HeliExtraction.sqf";
      3. Trigger: Wenn die Spieler im Heli sind wird im Script eine Variable getriggert die diesen Trigger auslöst: Nachricht: Extraction complete
      4. Trigger: Löst nach 20sec aus und beendet die Mission

      SCRIPT
      Zeile 3 Name des SpawnMarkers - Muss mit Namen des gesetzten Markers im Editor übereinstimmen. Die Zahl am Schluss gibt die Höhe an. Hier 40m.. kann unter Umständen viel zu tief sein!
      _startPos = [(getMarkerPos "extractionSpawn") select 0,(getMarkerPos "extractionSpawn") select 1,40];

      Zeile 4: Class Namen des Helis. Hier "B_Heli_Transport_01_F" also ein UH80-GhostHawk
      _extraVec = [_startPos, 0, "B_Heli_Transport_01_F", side (leader wg1)] call BIS_fnc_spawnVehicle;

      Zeile 10: Namen des Landemarkers. Hier ExtractionLZ
      _wp = _grp addWaypoint [getMarkerPos "ExtractionLZ", 0];

      Zeile 12: Eine grüne Rauchgranate wird als Signal auf Landepunkt gespawnt. Andere Farben gehen natürlich auch:
      SmokeShell, SmokeShellRed, SmokeShellGreen, SmokeShellBlue, SmokeShellYellow, SmokeShellPurple, SmokeShellOrange
      lighte = "SmokeShellGreen" CreateVehicle [(getPos lz1 select 0),(getPos lz1 select 1),0.2];

      Zeile 22: Hier werden die Spielernamen erfasst und dem Leader der Gruppe wg1 zugeordnet. Dies macht Sinn wenn mehrere Spielergruppen vorhanden sind.
      ACHTUNG. Mindestens 1 slot aus der Gruppe wg1 muss besetzt sein! Sonst kann das nicht funktionieren
      [s1,s2,s3,s4] joinSilent (leader wg1);

      In Zeile 23 bis 26 werden den Spielern Farben je nach Gruppen verliehen. (Muss nicht sein, kann man weglassen)

      Das war auch schon das wichtigste. Hier das Script:

      Quellcode

      1. if (!isServer) exitWith {};
      2. sleep 1;
      3. _startPos = [(getMarkerPos "extractionSpawn") select 0,(getMarkerPos "extractionSpawn") select 1,40];
      4. _extraVec = [_startPos, 0, "B_Heli_Transport_01_F", side (leader wg1)] call BIS_fnc_spawnVehicle;
      5. _grp = _extraVec select 2;
      6. ExtraVehicle = _extraVec select 0;
      7. ExtraVehicle setDir 0;
      8. _wp = _grp addWaypoint [getMarkerPos "ExtractionLZ", 0];
      9. _wp setWaypointType "LOAD";
      10. _wp setWaypointStatements ["true", "ExtraVehicle land ""GET IN"";"];
      11. _wp setWaypointBehaviour "safe";
      12. lz1 = "Land_HelipadEmpty_F" createVehicle (getMarkerPos "ExtractionLZ");
      13. lz1 setVehicleVarName "lz1";
      14. publicVariable "lz1";
      15. sleep 5;
      16. lighte = "SmokeShellGreen" CreateVehicle [(getPos lz1 select 0),(getPos lz1 select 1),0.2];
      17. sleep 5;
      18. [s1,s2,s3,s4] joinSilent (leader wg1);
      19. s1 assignTeam "Blue";
      20. s2 assignTeam "Blue";
      21. s3 assignTeam "Red";
      22. s4 assignTeam "Red";
      23. waitUntil {
      24. ({alive _x} count units wg1)
      25. ==
      26. ({_x in ExtraVehicle} count units wg1)
      27. };
      28. sleep 5;
      29. extraction = true;
      30. publicVariable "extraction";
      31. _wp = _grp addWaypoint [getMarkerPos "extractionSpawn", 0];
      32. _wp setWaypointType "MOVE";
      33. _wp setWaypointBehaviour "safe";
      34. player addRating 100;
      35. sleep 12;
      36. ExtraVehicle fire "CMFlareLauncher";
      Alles anzeigen
      Dateien
    • Der landet mit laufendem Rotor und wartet bis alle Spieler (hier s1- s4) im Heli sind
      Gestern im Editor getestet. Dieses Script habe ich in dutzende Male bereits auf unserem Dedi in gespielten Missionen verwendet. Immer einwandfrei.
      Aber ich prüfe gern selbst nochmal nach. Moment...

      Gerade getestet.. läuft einwandfrei (Vanilla). Das einzige das mir vielleicht einfällt wäre die Möglichkeit das der Extraktionspunkt zu nahe an aktionreichen Gebieten ist...
      Da müsste man den LZ vielleicht etwas ausserhalb editieren. Ausserdem ist wie üblich darauf zu achten den Extraktionspunkt auf Gebiete zu setzen in der ein Heli landen kann.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Spiderman ()