ARMA 3 - MISSION EDITING & SCRIPTING Arma 3 Addaction / Detach
Arma 3 Addaction / Detach
Quelle: Gametwitter.de Forum | views: 1220

Im Rahmen einer Sealmission war es die Aufgabe "getarnt" über eine Handelsroute bei einer Inselanzulanden.

Hierzu habe ich den (Fisch) Trawler, welche als statisches Schiff in so manchem Hafen dahin rostet, zunächst fahrbereit gemacht.

Anschließend wurden 4 sdv`s (Miniuboote) am Rumpf des Trawlers "befestigt".

Wie macht man das ?

Ich kann nur sagen, wie ich das gelöst habe...

Ich habe mir ein ziviles Schiff genommen - Classname "C_Boat_Transport_02_F" und den besagten Trawler "C_Boat_Civil_04_F ".

Benannt wurde der Trawler unter Variablenname trawler_1 .

In die Initzeile des Trawlers kam hier folgender Eintrag:

this allowDamage false;
this attachTo [zivboot_1, [-1, -0.7, 4] ]; 

Für das zivile Boot, Variablename zivboot_1

In die Initzeile

this allowdamage false;

Dann wurde dem zivilem Boot ganz normal die zu fahrende Wegroute vorgegeben mit normaler Geschwindigkeit mit einem Wegpunkt der Wiederholung der Route.

PS: Das wurde mehrfach wiederholt um eine Handelsroute mit mehreren fahrenden Schiffen zu simulieren (Immersion halt) .

Nun wurden die 4 sdv`s am Trawler befestigt.

Variablenname der Uboote sdv_1 bis sdv_4

sdv_1 Initzeile

this attachTo [trawler_1, [5.4, 5, -5]];

sdv_2 Initzeile

this attachTo [trawler_1, [5.4, -4, -5]];

sdv_3 Initzeile

this attachTo [trawler_1, [-5.7, 2, -5]];

sdv_4 Initzeile

this attachTo [trawler_1, [-5.7, -6.5, -5]];

Nun kommen wir zum Addaction Bereich, denn die Spieler sollen sich während der Fahrt auch vom Trawler abkoppeln können um dann sich ihrem Ziel widmen, während der Trawler seine Runden dreht. Der Addaction Befehl erscheint, wenn man sich in das Uboot setzt. Für den Fall der Kollisonsprobleme in Arma wird hier mit dem setDamage Befehl gearbeitet um sicherzustellen, das die Uboote nicht beschädigt werden können ...bis zur Entriegelung natürlich :)

Bei mir nennt sich die Datei dafür GT_addaction.sqf und ist wie folgt aufgebaut:

#define GT_DETACHSDVTEXT "<t color='#ff0066'>Entriegeln</t>"


{
   if (typeOf vehicle _x == "B_SDV_01_F") then {
      _x addAction [GT_DETACHSDVTEXT,{call GT_fnc_SDVdetach},nil,0,false,false,"","_this distance _target < 5"];
      _x allowDamage false;
   };
} forEach vehicles;


GT_fnc_SDVdetach ={
   _sdv          =     (_this select 0);
   _unit         =     (_this select 1);
   _id          =     (_this select 2);

   _sdv  removeaction _id;
   _unit sidechat "Entriegle Halterung";
   sleep 3;
   detach _sdv;
   sleep 10;
   _sdv allowDamage true;
};

Der Aufruf der GT_addaction.sqf erfolgt in der init.sqf

call compile preprocessFileLineNumbers "GT_addactions.sqf";

Eine Kommentarfunktion ist in diesem Blog nicht vorgesehen.
Bei Problemen zum Skript bitte im Gametwitter.de Forum registieren und dort die Kommentarfunktion nutzen.