PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : While do frage


Viperz2000
15.12.2013, 19:21
Hallo.
Ich hoffe ihr könnt mir helfen.
Versuche gerade meine erste mission zu basteln.

Ich hänge ein bisschen an meinem Script.

Erstmal was soll passieren:

Durch einen Auslöser soll das script gestartet werden. :daumen:
Das Script soll solange einheiten spawnen und diese dann wegpunkte ablaufen lassen bis ein Officer gefangen genommen ist. Das Spawnen und laufen klappt. Nun habe ich das in eine Schleife gepackt:

while {} do
{

_grp = createGroup east;

_u1 = _grp createUnit ["TK_Soldier_Crew_EP1",getMarkerPos "spawn5",[],0,"NONE"];
_u2 = _grp createUnit ["TK_Soldier_Engineer_EP1",getMarkerPos "spawn5",[],0,"NONE"];
_u3 = _grp createUnit ["TK_Soldier_Medic_EP1",getMarkerPos "spawn5",[],0,"NONE"];

_grp move (getMarkerPos "m1");

_grp move (getMArkerPos "m2");

Waituntil {not alive _u3};

};
So nun muss ich ja sagen wie lange die Schleife ausgeführt werden soll. Ich habe also den Officer auf der Karte platziert, ein Auslöser drangehangen mit bei dem Eintrag bei Aktivierung Officer1.

Wenn ich das richtig verstanden habe ist "officer1" nach der Aktivierung ja eine Globale Variable. Wie kann ich die jetzt bei while als bedingung einfügen?

Thx schon mal im Vorraus

[GNC]JamesRyan
16.12.2013, 09:17
Ganz verstehe ich dein Problem leider nicht ,denn wie soll der AUslöser denn die Gefangennahme prüfen? Aber zunächst eins nach dem anderen:

Wenn es erstmal um die Anwesenheit geht, hast du ja scheinbar bereits einen Auslöser, der die Varaible offiver1 auf true setzt. Dann kannst du diese auch deinem Skript übergeben. Allerdings muss dieses dann auch nach dem Auslöser gestartet werden, wenn deine while-Schleife zu Missionsbeginn schon geladen wird, ist ja officer1 false, oder? Daher würde er sie gar nicht starten, da musst du die überlegen, wie du das löst.

while {officer1} do {};

ist jedenfalls korrekt, wenn die Variable officer1 bekannt ist und auf true steht. Dann wird die while-Schleife solange durchlaufen, bis officer1 auf false gesetzt wird, z.B. durch eine Gefangennahme, die du mit einem zweiten Auslöser irgendwie abfragen müsstest.

Viperz2000
16.12.2013, 14:52
Oh sehe gerade habe es doof beschrieben:

Also:

1. Bluefor löst ein Auslöser aus der das Script startet
2.Auf der Map habe ich ein "Officer" hingestellt, der in einem Auslöser steht und darauf wartet gefangen genommen zu werden. Hab ihn mit dem Auslöser Gruppiert. Der Auslöser ist eingestellt: Aktivierung durch Anführer, mehrfach, vorhanden, Typ keine, Name Officer1, bedingung this, Aktivierung Officer1.
Also müsste doch sobald der O. den Auslöser verlässt die bedingung erfüllt sein.
So wenn ich jetzt einfach hinter while Officer1 setze müssten ja eigentlich einheiten spawnen oder?

Kann es sein das die Globale Variable nicht mit ins script genommen wird?