Auslöser
| Variablentyp: trigger | |
|---|---|
| | |
| | |
| |
Auslöser (engl. Trigger) sind ein wesentlicher Bestandteil beim Erstellen des Kartenskriptes einer Map. Man kann sich einen Auslöser als einen Befehl an Warcraft III vorstellen, der in der Form "Wenn x passiert, tue y, unter der Bedingung, dass z gegeben ist" formuliert ist. Ohne Auslöser, wäre eine interaktive Karte praktisch undenkbar. Einige wenige Beispiele für Dinge, die nur mit Auslösern möglich sind, sind das Verknüpfen von Maps zu einer Kampagne, das automatische Erstellen von Einheiten wie in einer Tower Defense, Bestenlisten, videoartige Zwischensequenzen in einer Mission und Quests. Fast jede Map braucht Auslöser. Die einzige Art von Map, die ohne Auslöser auskommen kann und auch muss, ist die Nahkampf-Karte.
Aufbau
Auslöser bestehen aus einer Folge von Anweisungen, was zu tun ist (Aktionen), einer Liste von Möglichkeiten, wann das geschieht (Ereignisse), und einer Liste von Bedingungen, mit denen sich einschränken lässt, unter welchen Umständen der Auslöser ausgeführt wird.
Man sieht in diesem Bild gut das Ereignis. Dieses ist wichtig, da der Auslöser ("Trigger") sonst nicht startet. Anschließend kommt eine Bedingung, sie gibt genau an unter welchen Bedingungen (Umständen) der Auslöser funktionieren soll. In diesem Auslöser zum Beispiel ist als Ereignis der Tod einer Einheit angegeben. Das heißt der Auslöser würde beim Tod einer jeden Einheit anspringen. Durch die Bedingung das die sterbende Einheit ein Held sein muss beschränkt sich dieser Auslöser jetzt nur noch auf Helden. Nun kommen nur noch die Aktionen welche ausgeführt werden sollen sobald ein Held stirbt. In diesem Falle soll der Held nur wiederbelebt werden. Dazu kommt noch eine Textnachricht und fertig. So jetzt sollte der Auslöser funktionieren und wir testen die Karte. Dann lassen wir nur noch einen Held sterben und vóila, es funktioniert.
Ereignis
Das Ereignis bestimmt, wann ein Auslöser aufgerufen wird. Es können bereits im Auslöser-Editor oder zur Laufzeit Ereignisse hinzugefügt werden, allerdings nur im Editor wieder entfernt werden.
Es stehen folgende Arten von Ereignissen zur Verfügung:
- Allgemein
- - Map Initialisierung (Start der Map, während des Ladebildschirms)
- Zerstörbar
- - Destructible Dies (Zerstörbar stirbt - Betrifft Bäume, Türen, Kisten etc.)
- - Destructible Within Region Dies (Zerstörbares Objekt innerhalb eines Gebietes stirbt - auf die ersten 64 zerstörbaren Objekte in dem Gebiet beschränkt - später erstellte zerstörbare Objekte werden ignoriert)
- Dialog
- - Dialog Button Click (Ein Dialog-Button wurde gedrückt)
- Spiel
- - Time Of Day (Tageszeit)
- - Value Of Real Variable (Eine Variable des Typs Real erhält eine Relation zu einem bestimmten Wert (Variable darf kein Array sein))
- - Game Load (Ein Spielstand wurde geladen)
- - Game Save (Das Spiel wird gespeichert)
- - Hero Abilities Button Clicked (Heldenfähigkeitsbutton geklickt (nur Singleplayer))
- - Build Structure Button Clicked (Baubutton geklickt (nur Singleplayer))
- - Tournament Event (Für Battle.net-Turniere)
- Spieler
- - Chat Message (Chat-Nachricht)
- - Cinematic Skipped (die Esc-Taste wurde während einer Cinematic-Sequenz gedrückt)
- - Selection Event (Ein Spieler wählt eine Einheit aus/ab)
- - Keyboard Event (Ereignis für die Tastaturpfeile)
- - Properties (Eigenschaften (zB Gold, Holz, ...))
- - Alliance Change (Any/Specific) (Ein Spieler ändert die Verbündeten-Einstellungen)
- - Victory (Spieler gewinnt)
- - Defeat (Spieler verliert)
- Zeit
- - Time Elapsed (Zeit vergangen)
- - Periodic Event (Periodisches Ereignis)
- - Timer Expires (Timer erreicht 0:00:00)
Bedingung
Tritt das Ereignis ein, wird ein Auslöser auf die Bedingungen überprüft. Sind alle Wahr (True) (außer wenn Or benutzt wird dann muss es nur eine sein), so werden die Aktionen ausgeführt. Dieser Abschnitt ist vergleichbar mit der If-Anweisung.
Es stehen folgende Vergleiche zur Verfügung:
- Boolean Comparison (Vergleiche, die Wahr oder Falsch zurückgeben)
- Ability Comparison (Vergleiche mit Fähigkeiten)
- Buff Comparison (Vergleiche mit Zauberverstärkern)
- Destructible Comparison (Vergleiche mit Zerstörbaren Objekten)
- Destructible-Type Comparison (Vergleiche mit Zerstörbaren Objekttypen)
- Dialog Button Comparison (Vergleiche mit Dialog-Buttons)
- Game Difficulty Comparison (Vergleiche mit dem Spielschwiergkeitsgrad)
- Game Speed Comparison (Vergleiche mit der Spielgeschwindigkeit)
- Hero Skill Comparison (Vergleiche mit Heldenfähigkeiten)
- Integer Comparison (Vergleiche mit ganzen Zahlen)
- Item Comparison (Vergleiche mit Gegenständen)
- Item-Class Comparison (Vergleiche mit Item-Klassen)
- Item-Type Comparison (Vergleiche mit Itemtypen)
- Melee AI Comparison (Vergleiche mit KI-Schwierigkeitsgrad)
- Order Comparison (Vergleiche mit Befehlen)
- Player Comparison (Vergleiche mit Spielern)
- Player Color Comparison (Vergleiche mit Spielerfarben)
- Player Controller Comparison (Vergleiche mit dem Kontrollstatus eines Spielers (zB Benutzer, Computer, ...))
- Player Slot Status Comparison (Vergleiche mit Spieler-Slots (zB Benutzt, Unbenutzt, ...))
- Race Comparison (Vergleiche mit Völkern)
- Real Comparison (Vergleiche mit rationalen Zahlen)
- String Comparison (Vergleiche mit Zeichenketten)
- Tech-Type Comparison (Vergleiche mit Ausbaustufen)
- Terrain-Type Comparison (Vergleiche mit Bodenterrain)
- Trigger Comparison (Vergleiche mit Auslösern)
- Unit Comparison (Vergleiche mit Einheiten)
- Unit-Type Comparison (Vergleiche mit Einheitentypen)
- And (Und; Beide Bedingungen müssen erfüllt sein)
- Or (Oder; Eine Bedingung muss erfüllt sein)



