• Level: Anfänger
  • Tools: Texteditor
  • Zeitaufwand: ca 5 min

Slash Kommandos erzeugen

In diesem Beispiel wird gezeigt, wie man Slashkommandos für ein Addon erzeugt. Als Slashkommando werden umgangssprachlich die Kommandos, die in das Chatfenster eingegeben werden können, bezeichnet (z.B. /m, /p, /s etc.).

Prinzipiell können zu jedem beliebigen Zeitpunkt, Kommandos für ein Addon erzeugt werden. In den meisten Fällen werden die Kommandos aber erzeugt, wenn das Addon geladen wird. Als Ausgangspunkt benutzen wir das Addongrundgerüst, wie es bereits in dem Beispiel Hello World! vorgestellt wurde. In dem OnLoad…/OnLoad Tag der XML Datei tragen wir die Funktion ein, mit der die Kommandos erstellt werden.

  1. ...
  2. Scripts
  3. OnLoadSlashCommands_OnLoad()/OnLoad
  4. /Scripts
  5. ...

Danach erstellen wir die Funktion, die die Kommandos erstellen soll (in unserem Fall heisst die Funktion SlashCommands_OnLoad()).

  1. 1 function SlashCommands_OnLoad()
  2. SLASH_SLASHCOMMANDS1 = "/slashcommand";
  3. SLASH_SLASHCOMMANDS2 = "/sc";
  4. SlashCmdListSLASHCOMMANDS = function (msg)
  5. DEFAULT_CHAT_FRAME:AddMessage(msg, 1.0, 1.0, 1.0, 1.0);
  6. end
  7. end

Schauen wir uns den Code mal etwas genauer an. Kommandos werden in WoW nach einem bestimmten Muster erstellt. Zunächst benötigt man eine oder mehrere globale String Variable, in der die Kommandos gespeichert werden (Zeilen 2 und 3). Der Name der Variablen ist von WoW vorgegeben:

  • Der Name der Variable fängt mit dem Prefix SLASH_ an.
  • Danach folgt eine Kennung; als Kennung wird meist der Name des Addons benutzt.
  • Auf die Kennung folgt die Nummer des Kommandos. Die Nummer muss immer vorhanden sein, auch wenn Euer Addon nur über ein Kommando verfügen soll.

Damit haben wir bereits festgelegt, wie unsere Kommandos lauten. Nun müssen wir WoW noch mitteilen was passieren soll, wenn der Benutzer das Slashkommando in das Chatfenster eingibt. Dazu fügen wir in das globale Array SlashCmdList einen neues Element ein und weisen ihm eine Funktion zu, die immer dann aufgerufen wird, wenn der Benutzer das Kommando in das Chatfenster eingibt (Zeilen 4-6). WoW erwartet an dieser Stelle eine Funktion mit einem Parameter von Typ String. Wichtig an dieser Stelle ist, dass der Index des Elementes in dem Array SlashCmdList, der Kennung, die wir unseren Kommandos in den Zeilen 2 und 3 zugewiesen haben (SLASHCOMMANDS), entspricht.

Wenn der Benutzer nun eines der beiden Kommandos in das Chatfenster eingibt, wird die in dem Array SlashCmdList hinterlegte Funktion aufgerufen. Als Parameter wird der Text übergegeben, der auf das Kommando folgt. Gibt der Benutzer z.B. “/sc Test” ein, hat der Parameter msg den Wert Test. Dieses Beispiel ist an dieser Stelle relativ unspektakulär: Es gibt lediglich den Wert des Parameters msg im Standardchatfenster aus.

zurück zur HowTo-Übersicht
zurück zur Übersicht der Skript-Sektion