HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Multiplayer Endings via Script (https://hx3.de/editing-scripting-167/multiplayer-endings-via-script-23178/)

killshot 02.12.2013 19:03

Multiplayer Endings via Script
 
Moin Leute,

ich würde gerne die Mission, nach der Helikopterabholung, innerhalb des Scripts und dem Missionsverlauf entsprechend, beenden lassen.
Also habe ich vier Auslöser platziert:

Name: Ende1
Cond: !(alive Ziel1) && !(alive Ziel2) && player distance (getMarkerPos "xtract1") <= 100
OnAct: ende1var = true;

Name: Ende2
Cond: !(alive Ziel1) && (alive Ziel2) && player distance (getMarkerPos "xtract1") <= 100
OnAct: ende2var = true;

Name: Ende3
Cond: (alive Ziel1) && !(alive Ziel2) && player distance (getMarkerPos "xtract1") <= 100
OnAct: ende3var = true;

Name: Ende4
Cond: (alive Ziel1) && (alive Ziel2) && player distance (getMarkerPos "xtract1") <= 100
OnAct: ende4var = true;

Die 4 Variablen habe ich in der init.sqf definiert:

ende1var = false;
publicVariable "ende1var";
... etc.

und in der briefing.html habe ich die 4 verschiedenen Texte stehen.

Wenn ich jetzt in die letzte Zeile der extraction.sqf (Heliabholung) nur
z.B. endMission "END1" oder nur endMission "END3" etc. schreibe, dann funktioniert es, ich möchte aber ja, wie gesagt, dass es dem Missionsverlauf entsprechend endet. Folgendes habe ich probiert:

Code:

if (ende1var) then {endMission "END1"};
if (ende2var) then {endMission "END2"};
if (ende3var) then {endMission "END3"};
if (ende4var) then {endMission "END4"};

Code:

if (triggerActivated Ende1) then {endMission "END1"};
if (triggerActivated Ende2) then {endMission "END2"};
if (triggerActivated Ende3) then {endMission "END3"};
if (triggerActivated Ende4) then {endMission "END4"};

Das hat leider nicht den erwünschten Effekt. Bzw. überhaupt keinen ^^ Da schwebt der Heli bis das Kerosin raus ist. Daran, dass extraction.sqf über einen Funkauslöser gestartet wird kann es ja eigentlich nicht liegen oder?
Immerhin funktioniert es ja, wenn man nur ein einziges Ende im Script verwendet.

Ansonsten müsste ich wohl vier weitere Auslöser am Endpunkt ("xtract1") durch das Script erstellen lassen, die durch die Variablen (ende1var,...) aktiviert werden und dann dadurch das Ende einleiten lassen?

Vielleicht kann ja jemand helfen :)

Danke und Grüße!

Vienna 02.12.2013 19:46

Es wird an den Bedingungen in den Auslösern liegen. z.B. ist player lokal und es müsste
OnAct: ende1var = true; publicVariable "ende1var";
lauten, wenn etwa nur einer der Spieler in Nähe des Markers ist.

Teste das einmal mit einer einfacheren Bedingung in den Auslösern.

killshot 03.12.2013 04:05

Jau, ich danke dir!

Lag wohl unter anderem daran! Hab's jetzt alles nochmal komplett umgewurstelt und machs über nen Auslöser+publicVariable der dann ein Script mit den endings aufruft.

Für welche, die hier irgendwann nochmal drüberstoplern:

Also in extraction.sqf dann die Variable triggerendings auf true gesetzt, im Auslöser Bedingung: triggerendings bei OnAct: nul = execVM "endtrigger.sqf";

und hier noch die endtrigger.sqf

Code:

if (isServer) then {

sleep 1;

_end1trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end1trg setTriggerArea[150,150,0,true];
_end1trg setTriggerActivation["WEST","PRESENT",true];
_end1trg setTriggerStatements["deployed && !alive radar && !alive arti1 && !alive arti2 && !alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End1""", ""];

_end2trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end2trg setTriggerArea[150,150,0,true];
_end2trg setTriggerActivation["WEST","PRESENT",true];
_end2trg setTriggerStatements["deployed && alive radar && alive arti1 && alive arti2 && alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End2""", ""];

_end3trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end3trg setTriggerArea[150,150,0,true];
_end3trg setTriggerActivation["WEST","PRESENT",true];
_end3trg setTriggerStatements["!deployed && !alive radar && alive arti1 && alive arti2 && alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End2""", ""];

_end4trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end4trg setTriggerArea[150,150,0,true];
_end4trg setTriggerActivation["WEST","PRESENT",true];
_end4trg setTriggerStatements["!deployed && alive radar && !alive arti1 && !alive arti2 && !alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End2""", ""];

_end5trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end5trg setTriggerArea[150,150,0,true];
_end5trg setTriggerActivation["WEST","PRESENT",true];
_end5trg setTriggerStatements["deployed && !alive radar && alive arti1 && alive arti2 && alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End3""", ""];

_end6trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end6trg setTriggerArea[150,150,0,true];
_end6trg setTriggerActivation["WEST","PRESENT",true];
_end6trg setTriggerStatements["deployed && alive radar && !alive arti1 && !alive arti2 && !alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End3""", ""];

_end7trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end7trg setTriggerArea[150,150,0,true];
_end7trg setTriggerActivation["WEST","PRESENT",true];
_end7trg setTriggerStatements["!deployed && !alive radar && !alive arti1 && !alive arti2 && !alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End3""", ""];

_end8trg = createTrigger ["EmptyDetector",markerpos "xtract1"];
_end8trg setTriggerArea[150,150,0,true];
_end8trg setTriggerActivation["WEST","PRESENT",true];
_end8trg setTriggerStatements["!deployed && alive radar && alive arti1 && alive arti2 && alive arti3 && leader (fschjg) distance (getMarkerPos ""xtract1"") <= 200", "endMission ""End4""", ""];

};

Vielleicht hilfts ja irgendwann nochmal wem :D


Danke auf jeden Fall nochmal und gute Nacht ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118