Einleitung

Mit dem Release von Burning Crusade plant Blizzard eine Reihe einschneidender Veränderungen am System für Interfacemodifikationen. Diese Änderungen wirken sich auch auf das klassische World of Warcraft aus, sie betreffen also auch Spieler, die Burning Crusade nicht kaufen! Wenn also im Folgenden von Burning Crusade die Rede ist, schliesst das automatisch WoW 2.0 mit ein.
Das System wurde so stark verändert, dass alte AddOns mit hoher Wahrscheinlichkeit nicht auf Anhieb funktionieren werden, weshalb Burning Crusade sich von Anfang an weigert diese zu laden (die bekannte “Veraltete AddOs laden”-Option greift hier nicht). Aber auch viele bekannte Makros werden in ihrer jetzigen Form nicht mehr funktionieren.
In dieser mehrteiligen Artikelserie wollen wir uns umfangreich mit den Änderungen am Interface auseinandersetzen. Während in den weiteren Teilen die Entwicklung von AddOns im Vordergrund stehen wird, widmen wir uns in diesem ersten Teil den Änderungen für Makros.

Warum überhaupt Änderungen?

Wer regelmäßig in den offiziellen Foren stöbert, wird sicherlich schon einmal über das Credo von Blizzard gestolpert sein, man wolle “smart players not smart buttons” (kluge Spieler statt kluger Knöpfe). Dies spielt auf stark automatisierende AddOns und Makros an, die dem Spieler allzuviel Arbeit abnehmen und eventuell sogar demjenigen, der sie benutzt einen unfairen Vorteil verschaffen. Mit dem Release von Burning Crusade werden einige Knöpfe eine ganze Ecke dümmer werden…
Im Bereich Makros betrifft das vor allem sogenannte intelligente Zaubermakros, also solche, die es erlauben, dass man mit dem selben Knopf situationsabhängig verschiedene Zauber wirken kann. Da Makros einer Zeichenbegrenzung unterliegen, sind sie meist sehr kompakt gefasst. Bei komplizierteren Berechnungen kann dabei schonmal so etwas herauskommen:

 /run local s,m,l,b,p=563,1.2,{30,75,140,220,310,424}, {0.38,0.68,0.8,0.8,0.8,0.8},"player"; for i=6,1 ,-1 do if((UnitHealth(p)l[i]+b[i]*s)and (UnitManaMax(p)-UnitMana(p)=((l[i]+b[i]*s)*m))) then CastSpellByName("Aderlass(Rang "..i..")"); break; end end 

Da aber die allerwenigsten Spieler Lust haben sich in diesem Wust von Zahlen und Sonderzeichen zu orientieren, werden solche Makros von vielen Spielern als Black Box angesehen. Man kopiert das Makro aus irgendeinem Forum oder aus den Makrocharts und solange es funktioniert hinterfragt niemand wie es eigentlich funktioniert. Wer dagegen nur selten in Foren vorbeischaut, wird wahrscheinlich gar nicht wissen, was man mit Makros überhaupt machen kann. Kurzum, das ganze System ist ziemlich unübersichtlich und erfordert einiges an Zeit um sich einzuarbeiten. Da aber die meisten Spieler eben lieber spielen als Makros programmieren wollen, hat man sich bei Blizzard ein paar Gedanken gemacht…

Slashcommands vs. Lua-Code

Die vielleicht gravierendste Änderung hängt eng mit dem neuen Sicherheitssystem für AddOns zusammen, dass wir in einem der späteren Artikel noch genauer unter die Lupe nehmen wollen. Grob gesagt sorgt dieses System dafür, dass bestimmte Funktionen für Makros entweder gar nicht mehr, oder nur noch in bestimmten Situationen zugänglich sind, beispielsweise nur solange der Spieler in keinen Kampf verwickelt ist.
Als Konsequenz aus diesem neuen System werden die meisten Makros die aus WoW bekannt sind mit Burning Crusade nicht mehr funktionieren! Als Faustregel gilt hier: Alle Makros die Lua-Code verwenden, also alle in denen ein /script oder /run vorkommt, sind potentielle Problemkandidaten. Um diese Einschränkung auszugleichen, hat man eine ganze Reihe neuer Kommandos für Makros eingeführt. Diese sogenannten Slashcommands (deren Name daher rührt, dass sie alle mit einem “Slash” / beginnen) unterliegen nicht den Einschränkungen des Sicherheitssystems und haben dadurch einen signifikanten Vorteil gegenüber Lua-Code.

Ein Beispiel: Bisher gab es in WoW zwei Möglichkeiten per Makro einen Zauber zu wirken. Einmal als Slashcommand:

 /cast Name des Spruchs 

oder mit Hilfe von Lua-Code:

 /script CastSpellByName("Name des Spruchs"); 

Letzteres ist mit Burning Crusade nicht mehr möglich (oder genauer: nur noch solange man sich nicht im Kampf befindet). Warum ist das gut für die Spieler? Zum einen spart man sich eine Menge Sonderzeichen. Lua ist eine vollwertige Programmiersprache und bringt als solche eine umfangreiche Grammatik mit sich. Slashcommands sind dagegen immer gleich aufgebaut:

 /Befehl zusätzliche Parameter 

In jeder Zeile steht genau ein Befehl, der durch einen Slash eingeleitet wird. Eventuell verlangt der Befehl noch zusätzliche Parameter, zum Beispiel den Namen eines Zaubers oder eines Gegenstands, die durch Leerzeichen voneinander getrennt sind. Die Makrobefehle sind außerdem selbsterklärend, außer rudimentären Englischkenntnissen ist kein Vorwissen erforderlich um ein Makro lesen zu können. Das Ergebnis ist ein einfaches, transparentes System, das intuitiv und innerhalb weniger Minuten erlernbar ist.

Kleine Makroschule

Eines der wichtigsten Kommandos haben wir bereits kennengelernt: /cast zum Wirken eines Zaubers. Klickt man bei geöffnetem Makro-Fenster und gedrückter Shift-Taste auf einen Spruch im Zauberbuch, fügt WoW automatisch eine passende /cast-Anweisung in das geöffnete Makro ein. Wer mag, kann zusätzlich zum Namen des Zaubers auch noch in Klammern den gewünschten Rang mitangeben:

 /cast Verderbnis(Rang 7) 

beziehungsweise für Lokalisierungsverweigerer:

 /cast Corruption(Rank 7) 

Wird kein Rang angegeben, wird automatisch der höchste bekannte Rang des Zaubers gewirkt. Eine kleine Ausnahme sind Buffs, die verlangen, dass das Ziel eine bestimmte Stufe hat. Wenn kein Rang angegeben wurde, wählt das Makro in diesem Fall automatisch den höchsten Buff aus, den das Ziel erhalten kann.
Man kann /cast übrigens auch benutzen um die Zaubersprüche des Pets auszulösen.

Mindestens genauso nützlich wie /cast ist /use, das die Verwendung von Gegenständen ermöglicht. Der einfachsten Variante dieses Kommandos wird einfach der Namen des zu verwendenden Gegenstands übergeben:

 /use Geröstete Wachtel 

0 = Munition
1 = Kopf
2 = Hals
3 = Schultern
4 = Hemd
5 = Brust
6 = Gürtel
7 = Hose
8 = Schuhe
9 = Armschienen
10 = Handschuhe
11 = Oberer Ring
12 = Unterer Ring
13 = Oberes Trinket
14 = Unteres Trinket
15 = Umhang
16 = Haupthand
17 = Nebenhand
18 = Distanzwaffe
19 = Tabard

20-23 = Taschen (von rechts nach links)
40-63 = Bankslots
64-69 = Banktaschen

Die zweite Variante kann benutzt werden um Gegenstände, die man ausgerüstet hat zu aktivieren (z.B. Trinkets). Hier gibt man als Parameter die Nummer des Inventarslots an, in dem sich das Item befindet. Die Nummern für die Inventarslots findet ihr in der Box rechts.
Um also beispielsweise das Trinket im oberen Slot zu aktivieren schreibt man einfach:

 /use 13 

Zwar könnte man hier auch einfach den Namen des Gegenstands angeben, allerdings haben die Nummern den Vorteil, dass sie sich immer auf den gleichen Slot beziehen, unabhängig davon, was für ein Gegenstand gerade dort liegt.
Die dritte Variante erlaubt das Benutzen von Items in den Taschen. Wie auch beim Inventar kann man sich aussuchen, ob man die Items über ihren Namen oder ihren Platz in der Tasche anspricht. Die “Rucksackkoordinaten” bestehen aus zwei Zahlen. Die Erste gibt die Tasche an, 0 für den Rucksack ganz links, 4 für die Tasche ganz rechts (sofern vorhanden), die Zweite gibt den Platz innerhalb der Tasche an, 1 ist der Platz links oben und es wird nach rechts unten durchgezählt.

 /use 0 13 

benutzt beispielsweise das Item links unten im Rucksack.
Eine weitere grundlegende Funktion ist /equip, mit der man Gegenstände ausrüsten kann.

 /equip Arkanitangel 

hat den selben Effekt, als würde man die Angel im Rucksack rechtsklicken. Um Ringe oder Trinkets in einen bestimmten Slot zu legen, benutzt man /equipslot, das zusätzlich die Nummer des Inventarplatzes verlangt:

 /equip 14 Haken des Anglermeisters 

Darüberhinaus gibt es noch eine ganze Reihe weiterer neuer Befehle, die ich hier aber nur kurz auflisten möchte: