Die API enthält neben den vielen Funktionen auch eine Liste von Ereignissen, welche bei bestimmten Ereignissen im Spiel ausgelöst werden. Die Ereignisse werden immer ausgelöst, unabhängig davon, ob AddOns diese behandeln oder nicht.

Registrieren Sie sich!

Die Ereignisse müssen registriert werden, wenn man sie in einem AddOn nutzen will. Zum Registrieren von Ereignissen muss die Funktion RegisterEvent eines Frame-Elementes aufgerufen werden mit dem Ereignis als Parameter.

Frame-Element:RegisterEvent(“EVENTNAME”);

Das Registrieren sollte in den meisten Fällen in den OnLoad-Scripthandler des Frame-Elementes bzw. AddOns eingebunden werden.
Es ist allerdings auch möglich Registrierte Ereignisse wieder zu entfernen. In dem Fall benutzt man einfach die Funktion UnregisterEvent. Das Vorgehen entspricht ansonsten dem Registrieren des Events.

Frame-Element:UnregisterEvent(“EVENTNAME”);

Es können zu jedem Frame-Element unbegrenzt Ereignisse registriert werden. Einzig die Anzahl an API-Ereignisse begrenzt die Registrierung. Ausserdem sollte man sich immer sehr genau überlegen, welches Element welches Ereignis registriert und ob dies auch sinnvoll ist. Es nutzt nicht viel wenn in einem AddOn 20 Elemente das gleiche Ereignis registrieren, da dadurch eher die Performance verschlechtert wird, wenn alle 20 Elemente ihre Aufgaben beim Eintritt des Ereignisses erldeigen wollen.
Die Namen der Ereignisse werden immer in Großbuchstaben geschrieben!

Abfangen und Bearbeiten

Hat man das Ereignis registriert, muss das Element, welches das Ereignis registriert hat, ebenfalls einen OnEvent-Scripthandler besitzen. Dieser Handler wird immer dann aufgerufen, wenn eines der registrierten Ereignisse eintritt.
Hat man mehrere Ereignisse registriert, sollte man prüfen welches der Ereignisse eingetreten ist. Um das aktuelle Ereignis zu erhalten, verwendet man die globale Variable event. Diese enthält den Namen des Ereignisses.
Ebenfalls kann es sein, daß zu dem Ereignis bestimmte Informationen mitgeliefert werden. Zu diesem Zweck sind die globalen Variablen arg1, arg2, …, arg9 definiert. Diese Variablen enthalten, je nach Anzahl, bestimmte Informationen. Es wird immer bei arg1 begonnen und wird bis arg9 hochgezählt. Ist die Variable nicht belegt, so entspricht der Wert nil.

Welche Ereignisse gibt es eigentlich?

Damit man Ereignisse registrieren und behandlen kann, sollte man natürlich auch wissen welche Ereignisse es gibt und wie sie heissen. Die Nachfolgende Unterteilung soll dabei helfen die Ereignisse übersichtlich zu halten da es an 300 Stück gibt. Die Ereignisse wurden dabei nach den verschiedenen Zusammenhängen sortiert.

  • AddOn – Ereignisse, die das Verwalten von AddOns betreffen.
  • Aktionsleiste – Ereignisse, die die Aktionsleisten betreffen.
  • Auktion – Ereignisse, die mit Auktionen zu tun haben.
  • autom. Folgen – Ereignisse, die mit dem automatischen Folgen des eigenen Charakters zu tun haben.
  • Bank – Ereignisse, die mit der Bank zu tun haben.
  • Benutzeroberfläche – Ereignisse, die allgemein mit der Benutzeroberfläche zu tun haben.
  • Berufe – Ereignisse, die mit den Berufen des Charakters zu tun haben.
  • Chat – Ereignisse, die durch Chat-Nachrichtentypen ausgelöst werden.
  • Duell – Ereignisse, die für Duelle zuständig sind.
  • Einheiten – Ereignisse, die mit Einheiten und deren Status zu tun haben.
  • Filmsequenz – Ereignisse, die mit Filmsequenzen zu tun haben.
  • Flugrouten – Ereignisse, die mit der Auswahl der Flugroute zu tun haben.
  • Freunde – Ereignisse der Freundes-Liste.
  • Gegenstände – Ereignisse, die mit Gegenständen zu tun haben.
  • Geist-Form – Ereignisse, die nur in Geistform auftreten.
  • Gilde – Ereignisse des Gildenfensters.
  • Gruppe – Ereignisse, die die Gruppe betreffen.
  • Handel – Ereignisse, mit dem Handeln zwischen Spielern zu tun haben.
  • Händler – Ereignisse, mit Händlern in Zusammenhang stehen.
  • Ignore – Ereignisse der Ignore-Liste.
  • Instanzen – Ereignisse, die mit Instanzen zu tun haben.
  • Loot – Ereignisse, die das Looten betreffen.
  • Minimap – Ereignisse der Minimap.
  • Pet – Ereignisse, die das Pet des eigenen Charakters betreffen.
  • Post – Ereignisse, die das Postsystem betreffen.
  • Quest – Ereignisse, die mit dem Questlogbuch des eigenen Charakters zu tun haben.
  • Schlachtfeld – Ereignisse, die mit Schlachtfeldern zu tun haben.
  • Spieler – Ereignisse, die mit dem eigenen Charakter zu tun haben.
  • Tasche(n) – Ereignisse, die die eigenen Taschen des Charakters betreffen.
  • Trainer – Ereignisse, die mit den Trainerfenstern zu tun haben.
  • Unbekannt – Ereignisse, die nicht Zuzuordnen sind bzw. zu denen kein Bezug bekannt ist.
  • Weltkarte – Ereignisse, die sich mit der Weltkarte befassen.
  • Zauber – Ereignisse, die sich mit dem Zaubern beschäftigen.

zurück zur Übersicht der Skript-Sektion