Trigger Queue – Mappedia

Trigger Queue

Aus Mappedia
Wechseln zu: Navigation, Suche

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

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.

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: 3

Da die Auslöser gleichzeitig starten, wird das allerdings nicht funktionieren.

Erwartetes Ergebnis

Tatsächliches Ergebnis

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.

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 queue

Auf diese Weise erhalten wir das gewünschte Ergebnis.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Warcraft-Mapping
Werkzeuge