Trigger Queue
Aus Mappedia
Mit der Trigger Queue (zu deutsch etwa: Auslöserschlange) kann man Auslöser hintereinander ausführen lassen. Sie funktioniert wie eine Warteschlange, an der sich alle Trigger anstellen, die mit der trigger queue ausgeführt werden. Sie warten also, bis der Auslöser vor ihnen fertig ist, bevor sie ihre Aktionen abarbeiten.
Inhaltsverzeichnis |
[bearbeiten] Problem
Man hat verschiedene Auslöser, die erst unterschiedlich lang warten, und dann eine Zahl ausgeben. Diese Trigger sollen der Reihe nach ausgeführt werden, so dass sich die Waits addieren. Es soll also erst Auslöser 1 ausgeführt werden, mit seinem vollen Wait, danach soll der zweite Auslöser ausgeführt werden, wieder mit seinem ganzen Wait, usw.
[bearbeiten] Die problematischen Trigger
Mein Auslöser
Ereignisse
Bedingungen
Aktionen

Auslöser - Run Trigger1 <gen> (checking conditions)

Auslöser - Run Trigger2 <gen> (checking conditions)

Auslöser - Run Trigger3 <gen> (checking conditions)
Trigger1
Ereignisse
Bedingungen
Aktionen

Wait 3.00 game-time seconds

Spiel - Display to (All players) the text: 1
Trigger2
Ereignisse
Bedingungen
Aktionen

Wait 7.00 game-time seconds

Spiel - Display to (All players) the text: 2
Trigger3
Ereignisse
Bedingungen
Aktionen

Wait 4.00 game-time seconds

Spiel - Display to (All players) the text: 3Da die Auslöser gleichzeitig starten, wird das allerdings nicht funktionieren.
[bearbeiten] Erwartetes Ergebnis
- 3 sec wait
- "1"
- 7 sec wait
- "2"
- 4 sec wait
- "3"
[bearbeiten] Tatsächliches Ergebnis
- 3 sec wait
- "1"
- 1 sec wait
- "3"
- 3 sec wait
- "2"
[bearbeiten] Lösung
Man will die Trigger also aufeinander warten lassen. Das geht, indem man sie in die trigger queue einreiht. Dabei ist allerdings wichtig, dass die Auslöser um eine Aktion erweitert werden, die dafür sorgt, dass sie wieder aus der trigger queue entfernt werden. Kurioser Weise, erkennt der Editor nicht, wann der Auslöser zu Ende ist und wartet sich dumm und dämlich, wenn man diese Aktion vergisst.
[bearbeiten] Die korrigierten Trigger
Mein Auslöser
Ereignisse
Bedingungen
Aktionen

Auslöser - Add Trigger1 <gen> to the trigger queue (Überprüfen conditions)

Auslöser - Add Trigger2 <gen> to the trigger queue (Überprüfen conditions)

Auslöser - Add Trigger3 <gen> to the trigger queue (Überprüfen conditions)
Trigger1
Ereignisse
Bedingungen
Aktionen

Wait 3.00 game-time seconds

Spiel - Display to (All players) the text: 1

Auslöser - Remove (This trigger) from the trigger queue
Trigger2
Ereignisse
Bedingungen
Aktionen

Wait 7.00 game-time seconds

Spiel - Display to (All players) the text: 2

Auslöser - Remove (This trigger) from the trigger queue
Trigger3
Ereignisse
Bedingungen
Aktionen

Wait 4.00 game-time seconds

Spiel - Display to (All players) the text: 3

Auslöser - Remove (This trigger) from the trigger queueAuf diese Weise erhalten wir das gewünschte Ergebnis.

