Was sind eigentlich AddOns? Tja, eine Frage, doch die Antwort ist nicht so genau zu definieren. AddOns sind weder vollständige Programme, noch sind sie nur Skripte. Letztlich sind sie wohl als etwas zwischen diesen beiden genannten Antworten. Im Grunde reicht es meist aus, sie als Erweiterung von World of Warcraft zu sehen. Eine Erweiterung die es dem Benutzer ermöglicht das Spiel in bestimmten Aspekte auf seine Spielweise anzupassen. Wobei natürlich das Spiel selbst nicht beeinflusst werden soll und darf.

Aufgaben und Einschränkungen

AddOns können zwar viel aber dürfen nicht alles, könnte man sagen. Im Gegensatz zu Makros besitzen AddOns die Möglichkeit im Hintergrund, ohne auf Benutzereingaben warten zu müssen, von World of Warcraft zu arbeiten und auf bestimmte Ereignisse zu reagieren, einfach nur Informationen anzuzeigen oder Funktionen bereit zu stellen.
Viele AddOns sind dazu da, die Benutzeroberfläche des Spieles zu verändern und damit den gewünschten Vorlieben anzupassen. Andere AddOns zeigen zusätzliche Informationen zu Dingen im Spiel an, die man nur schwer oder überhaupt nicht einsehen könnte ohne das AddOn. Einige wenige AddOns stellen sogenannte Bibliotheken dar. Diese enthalten meist nützliczhe Funktionen die der Benutzer im Spiel durch Makros oder Slash-Befehle ausführen lassen kann.
All diese Aufgaben sind legal, doch nur solange sie dem Spieler keinen Vorteil verschaffen, den Spieler ohne AddOn nicht haben. So sind zum Beispiel AddOns verboten, welche den Charakter des Spielers automatisch bewegen lassen.
Daher ist es nicht verwunderlich, daß AddOns keine Funktionen aufrufen können, die den Charakter bewegen oder Zauber/Fertigkeiten ausführen. Wird eine solche Funktion in einem AddOn aufgerufen, wird diese einfach ignoriert und es passiert genau nichts.
Aktuell kommen auch immer wieder gerne Fragen auf, ob AddOns wie Decursive, welche das Arbeiten in WoW extrem erleichtern, erlaubt sind. Hierzu kann bisher nur gesagt werden, daß Blizzard diese AddOns zwar nicht sehr gerne sieht, aber es nicht verboten ist sie zu verwenden.

Aufbau

Um ein AddOn zu schreiben Bedarf es mehrerer Dateien. Doch zu allererst, muss der Ordner, in welchem die Dateien untergebracht werden sollen, erstellt werden. AddOns werden immer im Pfad ” [World of Warcraft-Ordner]/Interface/AddOns/” hinterlegt ( [World of Warcraft-Ordner] entspricht dabei dem Ordnernamen eures World of Warcraft Verzeichnisses). In diesem Pfad erstellt man einen Ordner mit dem Namen des AddOns. Achtet hierbei genau auf die Groß- und Kleinschreibung des erstellten Ordners, dies ist für später wichtig.

[World of Warcraft-Ordner]/Interface/AddOns/MeinAddOn/

Ist der Ordner vorhanden, ist es an der Zeit die notwendigen Dateien für das AddOn zu erstellen. Es gibt drei verschiedene Dateitypen, welche jeweils eine eigene Aufgabe besitzen:
  • Die TOC-Datei
    Diese Datei ist die wichtigste von allen drei Dateitypen. Es kann immer nur eine toc-Datei im AddOn-Ordner geben. In der Datei werden wichtige Informationen eingetragen, die WoW beim starten einliest und damit das AddOn für den Spieler zur Verwendung freigibt.
    Die toc-Datei muss den gleichen Namen besitzen wie der AddOn-Ordner sowie die Endung ” .toc
    MeinAddOn.toc

  • Die XML-Datei
    In dieser Datei wird das Aussehen des AddOns für die Benutzeroberfläche definiert. Ein AddOn kann auch mehrere XML-Dateien besitzen.
    Der Name der Datei ist nicht vorgschrieben und kann frei gewählt werden. Die Endung ist in jedem Fall ” .xml“.
    mein_xmlcode.xml

  • Die LUA-Datei
    Dieser Dateityp ist optional. Das Bedeutet, daß es nicht zwingend notwendig ist, daß das AddOn eine lua-Datei besitzt. Allerdings sollte man, wann immer man Funktionen für das AddOn schreibt oder Variablen definiert, eine lua-Datei verwenden. Dies trägt deutlich zur Übersichtlichkeit bei.
    Die lua-Dateien darf nur lua-Kode enthalten!
    Der Name der Datei ist nicht vorgeschrieben und kann frei gewählt werden. Die Endung ist in jedem Fall ” .lua“.
    mein_luacode.lua

Hat man das AddOn seinen Wünschen/Bedürfnissen entsprechend geschrieben, muss man testen, ob das geschriebene auch so arbeitet wie man es erwartet.

Test Debugging

In den meisten Fällen teste man das AddOn durch ausprobieren. Denn schließlich sagt schon die alte Weisheit ” Probieren geht über studieren!“.
AddOn-Auswahlfenster im CharakterbildschirmNachdem man World of Warcraft gestartet hat und das Charakterfenster erscheint sollte man prüfen ob das AddOn auch erkannt wurde und in der AddOn Liste erscheint (Button AddOns im unteren linken Bildabschnitt). Ist das AddOn dort nicht vorhanden, muss etwas in der toc-Datei falsch sein oder der AddOn-Ordner liegt nicht dort wo er sein sollte. Prüft also den Standort des AddOn-Ordners nochmals nach und wenn dieser korrekt ist, dann solltet ihr die toc-Datei auf ihren Namen sowie deren Inhalt untersuchen. Der Name der toc-Datei muss, wie gesagt, dem AddOn-Ordnernamen entsprechen.
Um das AddOn nach der Fehlerbehebung in die Liste zu holen müsst ihr das Spiel nochmals starten.
Habt ihr diese Hürde genommen und das euer AddOn wurde erkannt, aktiviert dieses sofern es noch nicht aktiviert ist und betretet voller Hoffnung das Spiel.

Wenn ihr ein AddOn erstellt habt, welches in der Benutzeroberfläche sichtbar sein sollte, dies aber nicht tut, könnte dies daran liegen, daß sich ein Fehler in die XML-Datei geschlichen hat. In diesem Fall muss man leider die XML-Datei nach dem, meist sehr kleinen, Fehler untersuchen. Eventuell fehlt ein Zeichen eines Tags oder das Tag selbst. Diese Suche kann durchaus sehr Nervenaufreibend sein, daher ist es meistens zu empfehlen einen XML-Editor mit Syntaxprüfung zu verwenden, vorzugsweise inklusive XSD-Unterstützung, der euch bei der Suche helfen kann durch Hervorheben von Tags und anderen Dingen.

Beispiel: Fehler in der XML Datei

Ist allerdings das AddOn ohne sichtbare Oberfläche und/oder eine Fehlernachricht erscheint, dann handelt es sich meistens um einen Fehler im lua-Kode. Die angezeigte Fehlermeldung kann euch dabei sehr viel über den Entstehungspunkt des Fehlers und der Ursache der Fehlermeldung mitteilen. Lest diese daher sehr genau.

lua-Fehlermeldung im Spiel

Insgesamt ist es meistens von Vorteil, wenn man zum Debuggen des geschriebenen Kodes an bestimmten Stellen Ausgabe-Routinen schreibt, wodurch ihr im Spiel sehen könnt was passiert ist und was nicht.
[Bild von Ausgabebesipielen]