Einzelnen Beitrag anzeigen
Alt 09.07.2016, 20:17   #3 (permalink)
Drunken Officer
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard

TaskFrameWork von BIS. https://community.bistudio.com/wiki/...Task_Framework

Ich mache es so, ich erstelle mir eine .sqf, welche nur der Server lädt.

Ich lasse die erste Aufgabe erstellen. Mit einer waituntil-funktion (gebremst duch ein integriertes sleep !! ) warte ich, bis ein Ergebnis eintrifft und starte Aufgabe 2.
Man kann es auch im Editor syncronisieren, was aber schnell unübersichtlich wird.

Beispiel:
initserver.sqf: execVM "TaskManagment.sqf"

TaskManagment.sqf
Code:
//--- erstellt erste Aufabe
[west, ["tsk_1"],["Zerstören sie die Küstengeschütze. Diese wurde per Aufklärung identifiziert und markiert", "Geschütze Zersören", "Zersören"], getpos Coast_gun_1, "ASSIGNED", true] call BIS_fnc_setTask;
//--- wartet, bis Geschütze kaputt sind
waitUntil {sleep 5; !alive Coast_gun_1 && !alive Coast_gun_2};
//--- schreibt den Task in "erfolgreich" um
[west, ["tsk_1"], "SUCCEDED", true] spawn BIS_FNC_tastSetState;

//--- erstellt 2. aufgabe
[west, ["tsk_2"],["Rücken sie vor bis zum Sendemasten. Sabotieren sie den Sendemasten", "Sabotage", "Sabotage"], getMarkerPos "mkr_radiotower", "ASSIGNED",true] call BIS_fnc_setTask;
... es wird eine Variable geschaltet...
//-- wartet bis Mast sabotiert wurde
waitUntil {sleep 5; missionnamespace getVariable "var_sabo" };
//--- schreibt Aufgabe in Erfolgreich um#
[west, ["tsk_2"], "SUCCEDED", true] spawn BIS_FNC_tastSetState;

//--- erstellt 3. Aufgabe
[west, ["tsk_3"],["Rücken sie vor bis zum Truppenstützpunkt. Markieren sie das Ziel (Benzintank) mit dem Laser und rufen über 0-0-1 ein ""Warzenschein"". Sie dürfen nicht entdeckt werden. ", "Luftangriff", "Luftangriff"], getMarkerPos "mkr_base", "ASSIGNED", true] call BIS_fnc_setTask;
//--- Split der Aufgabenerfüllung, warte bis Entdeckungsauslöser aktiviert wird oder der Dieseltank zersört wurde

waituntil { sleep 4; triggerActivted trg_base || !alive gas_tank };
if (triggerActivted trg_base) then 
 { 
    [west, ["tsk_3"], "FAILED", true] spawn BIS_FNC_tastSetState;
 };
if (!triggerActivted trg_base && !alive gas_tank) then
{
   [west, ["tsk_3"], "SUCCEDED", true] spawn BIS_FNC_tastSetState;
};
 
//--- wartet, bis tsk_3 einen der beiden Werte zurück wirft

waituntil { sleep 3; ["tsk_3"] call BIS_fnc_taskState == "FAILED" || ["tsk_3"] call BIS_fnc_taskState == "SUCCEDED" };
usw usw
__________________
Bewegende Momente bei ArmA 3
Drunken Officer ist offline