PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeines Trigger problem


AdamWest
15.03.2014, 16:15
Hallo,
ich weiß nicht warum aber irgendwie krieg ich es einfach nicht hin, dass wenn alle Opfor Einheiten aus dem Trigger rausgehen bzw. nicht mehr Leben, dass dann der Trigger auslöst und z.B. die Mission endet.

Weiß jemand wie man das macht?
Wäre sehr dankbar.

[CCG]Cyborg
15.03.2014, 16:27
habe gerade zwar ein anderes problem, aber versuch mal in dem trigger unter Aktivierung etwas wie:

_null = [] spawn {while {true} do {private["_oli"];_oli = "I_soldier_F" countType list Trigger1; sleep 0.5;{if ("I_soldier_F" countType list Trigger1 > _oli) then {hint "noch einer"};} foreach list Trigger1;};};

in dem Beispiel wird ein Script erzeugt, welches die Einheiten des Typs "I_soldier_F", im Trigger mit dem Namen Trigger1, zählt. Dann eine halbe sekunde wartet und sie dann erneut zählt. Nun vergleicht es beide Zahlen, und sollte bei der zweiten Zählung mehr rauskommen als bei der ersten, dann sagt es mit Hint "nocheiner" bescheid, das noch Kanonenfutter eingetrudelt ist...

da geht natürlich noch != oder < ....[nur vor == muss ich warnen ;)]

Typen fändest du hier:

https://community.bistudio.com/wiki/Arma_3_CfgVehicles_WEST
https://community.bistudio.com/wiki/Arma_3_CfgVehicles_GUER
https://community.bistudio.com/wiki/Arma_3_CfgVehicles_EAST
https://community.bistudio.com/wiki/Arma_3_CfgVehicles_CIV
https://community.bistudio.com/wiki/Arma_3_CfgVehicles_EMPTY

LG Cyborg

PS: Bedingung des Triggers wäre: true
"Jeder" sollte glaube auch eingestellt sein, und Einmal!! Nicht Mehrfach!

[CCG]Cyborg
15.03.2014, 16:36
Sorry, ich hab nochmal gelesen....:zahn:

mit Typ "Ende1"/OPFOR/nicht vorhanden/Einfach/this

kommst du nicht zum Ziel?

AdamWest
15.03.2014, 16:41
Danke dein erster Post hat mir sehr geholfen.
Und danke für die schnelle Antwort

Drunken Officer
15.03.2014, 17:57
Trigger x/y

Aktivierung: Opfor
Einmal
Bedingung: this
Akt: "end1" call BIS_fnc_endMission;

Fertig aus.

Cyborg:
_nul als Varibale im Trigger? Sollte kommen "Lokale Varibal im globalen Bereich"
while {true} .... die Schleife läuft immer!

Und wenn schon mit sctipt, dann nimmt man doch countSide als Befehl. Da kann man alle Einheiten einer Seite im Trigger auslesen

z.b. (Trigger heißt Stadt1) Aktivierung: jeder Bedingung: this

gugge= [] spawn
{
_zahl = east countSide list Stadt1;
while {_zahl != 0} do
{
_zahl = east countSide list Stadt1;
sleep 5;
};
Hint "Stadt 1 wurde befreit";
sleep 4;
"end1" call BIS_fnc_endMission;
};

AdamWest
15.03.2014, 20:21
@Drunken Officer:
Trigger x/y

Aktivierung: Opfor
Einmal
Bedingung: this
Akt: "end1" call BIS_fnc_endMission;

Hilft mir eher wenig, weil ich es ja so machen will, dass wenn keine Opfor Einheiten mehr im Trigger Bereich ist und/oder wenn alle tot sind das dan die Mission endet

Drunken Officer
15.03.2014, 21:02
x/y = deine Meteranagaben für den Triggerbereich
Trigger auf nicht vorhanden stellen! :rolleyes:

Mit den restlichen, von mir geposteten Einstellungen endet die Mission, wenn sich keine roten Einheiten im Trigger befinden.
Ansonsten bitte Murrys Guide Punkt 1.4 lesen! Da steht viel über Trigger geschrieben. Ein kleines bissel Selbstarbeit ist gefordert. Also Guide lesen

LittleIranus
15.03.2014, 21:08
Hilft da nicht etwas wie:

Name:
TEXT:
Typ: Keine
Aktivierung: Opfor
Einmal
Nicht vorhanden
Bedingung: this
Bei AKT: ["END1", true] call BIS_fnc_endMission



Hierbei sollten sich OPFOR Einheiten bereits im Triggerbereich befinden, wenn sie nicht mehr drinnen sind ist die Mission abgeschlossen.

Varriante 2: (Ergänze ein Stilmittel) das habe ich heute bei youtube gesehen von "kleyten"


Name:
TEXT:
Typ: Keine
Aktivierung: Opfor
Einmal
Nicht vorhanden
Bedingung: this
Bei AKT: playMusic ["Track03_OnTheRoad", 23.5]; ["END1", true] call BIS_fnc_endMission

AdamWest
15.03.2014, 21:57
Muss ich mal probieren

AdamWest
15.03.2014, 22:26
Funktioniert einwandfrei

Das ich nicht auf die Idee gekommen bin...
Naja danke

Drunken Officer
16.03.2014, 03:28
... weil du den Guide nicht gelesen und goggle nicht gefragt hast.

Mein o.g. Script funzt auch, wenn du trigger erst aktivierst, wenn rot einläuft. Aber wie man das einstellt GUIDE lesen

[CCG]Cyborg
16.03.2014, 12:48
Cyborg:
_nul als Varibale im Trigger? Sollte kommen "Lokale Varibal im globalen Bereich"



Nope, läuft... (spawn) ;)


while {true} .... die Schleife läuft immer!


Jupp, macht aber jeder mehrfach Trigger im Hintergrund eh... also...Pups


Und wenn schon mit sctipt, dann nimmt man doch countSide als Befehl. Da kann man alle Einheiten einer Seite im Trigger auslesen


Japp, war auch nur ein Beispiel was ich zufällig gerade in der Zwischenablage hatte... kann man sich ja passend machen wie man es braucht.

LG Cyborg

Vienna
16.03.2014, 21:39
Du produzierst schon einiges an unsinnigem!

Code in einer Zeile ist nicht ordentlich lesbar. Besser wie folgend, das kann man auch so in die Felder kopieren.

_null = [] spawn
{
while {true} do
{
private["_oli"];
_oli = "I_soldier_F" countType list Trigger1;
sleep 0.5;
{
if ("I_soldier_F" countType list Trigger1 > _oli) then {hint "noch einer"}
} foreach list Trigger1
}
};

Die lokale Variable in Bei Akt.: geht nicht.

private gehört außerhalb der Schleife.

Anstelle von hint nimm player groupChat, dann siehst du wie unsinnig count mit forEach ist.

Drunken Officer
17.03.2014, 06:54
Na du wirst nicht Kritik üben. Bessere Alternativen aufzeigen, als von ihm gepostet, scheint nicht erwünscht zu sein