Interface Customization Guide jetzt auf Deutsch

Die UI- AddOns zu World of Warcraft. Was sind sie ? Wo bekommt man sie ? Alles Infos findet ihr hier.
Antworten
kroedler
Skelettschnetzler
Beiträge: 272
Registriert: 30.07.2004, 19:42
Wohnort: Schmalkalden
Kontaktdaten:

Interface Customization Guide jetzt auf Deutsch

Beitrag von kroedler »

Ich hab mir mal die Zeit genommen und den offiziellen Guide ins deutsche übersetzt! Kritik,Anregungen oder Lob einfach hier rein posten!

Disclaimer

Das Aussehen und Layout der Bedienoberfläche von World of Warcraft wird durch XML Dateien und LUA Dateien gestaltet. Dieses Dokument ist nur eine kurze Anleitung um diese Dateien zu verändern und euer Interface an euren Geschmack anzupassen. Um das Interface anzupassen benötigt man wenigstens ein bisschen Kenntnis von XML und Lua.
Es gibt keinen offiziellen Support für die Veränderung eures WoW Interfaces! Wir werden nichts wieder reparieren was ihr kaputt gemacht habt Smile (Sicherheitskopien machen!)

Einleitung

Um zu beginnen, installiert zuerst die Daten in euer World of Warcraft Installationsverzeichnis. Dadurch wird das neue Verzeichnis „Interface“ erzeugt und alle bereits existierenden Veränderungen an eurer eigenen Bedienoberfläche überschrieben. Falls ihr das Standard Interface wiederherstellen wollt, löscht einfach den Interface-Ordner. LÖSCHT NIEMALS den „Interface“ Ordner in eurem „Data“ Verzeichnis, sondern NUR den in eurem Hauptverzeichnis.
Wann auch immer ein Update für WoW herauskommt, bleiben eure Dateien beim alten, und ihr müsst um eventuelle neue Funktionen nutzen zu können das Interface Customization Tool neu installieren.

Falls ihr beim benutzen des Tools einen Fehler bemerkt, überprüft erst ob es an euren Änderungen liegt, indem ihr euren Interface Ordner in ein anderes Verzeichnis verschiebt und testet ob der Fehler bestehen bleibt. Sollte dies der Fall sein, dann könnt ihr uns den Fehler melden.

XML Layout

Die Dateien welche das Aussehen eurer Spieloberfläche bestimmen befinden sich im Verzeichnis „Interface\FrameXML“.
Die Datei „FrameXML.toc“ beinhaltet eine Liste aller Dateien die beim Spielstart geladen werden sollen.(Das Laden erfolgt der Reihenfolge nach). Mögliche Fehler die beim Laden entstehen werden in der Datei „FrameXML.log“ im „Interface“ Verzeichnis abgelegt.

Jede XML Datei ist für ein anderes Element der Bedienoberfläche auf dem Bildschirm verantwortlich. Um ein Gefühl für den Syntax zu bekommen, solltet ihr euch einfach die Dateien ansehen die von uns zur Verfügung gestellt werden. Die Dateien sind strikt nach dem XML 1.0 Standard aufgebaut. Leute die einen Syntax Checker haben, können das Schema benutzen welches in der Datei „UI.xsd“ zu finden ist.

Lua Scripting

Die Funktionen des Interfaces werden durch Lua Scripte zur Verfügung gestellt.
Eine Anleitung für Lua gibt es hier(Englisch):
http://www.lua.org/manual/5.0/

Der einfachste Weg um sich mit Lua einzuarbeiten ist, sich die fertigen Scripte in den XML Dateien anzusehen, welche durch den „script“ Tag gekennzeichnet werden. In den Lua Dateien befinden sich des weiteren die zugehörigen Funktionen welche in den XML Dateien benutzt werden.
Erste Schritte

Ein guter Platz um sich mit dem Interface vertraut zu machen ist die „BasicControls.xml“.

Am Anfang der Datei findet ihr einen Skript Block der die Funktion „_ERRORMESSAGE()“ enthält, welche jedes mal aufgerufen wird wenn es zu einem Fehler in eurem Skript kommt. Diese Funktion öffnet ein Fenster mit der Fehlernachricht. Eine weitere dort definierte Funktion ist „message()“, welche ein Fenster öffnet in dem der Name der Funktion steht in der der Fehler aufgetreten ist. Der Funktionsname wird hierbei der „message()“-Funktion als Argument übergeben.

Weiter unten werden ein paar Texturen definiert. Diese Texturen sind vom Typ „virtual“, d.h. Sie werden nicht sofort geladen, sondern sind nur Platzhalter welche später benutzt werden. Danach wird der Frame(„widget“) „DialogBoxFrame“ definiert, welcher auch vom Typ „virtual“ ist. Der Frame enthält einen Anker(„anchor“), welcher seine relative Position zum übergeordneten Element, den Hintergrund und einem Knopf enthält.

Jeder Frame enthält eine bestimmte Anzahl an Ebenen, welche unbegrenzt viele Texturen und Zeichenketten(„strings“) haben kann. Allerdings müssen die Texturen sowie die Strings verankert sein, da sie nur so sichtbar werden. Die Position der einzelnen Elemente wird in Pixeln angegeben(Auflösung 1024x768).

Am Ende der Datei wird der Frame „ScriptErrors“ definiert, welcher den Dialog darstellt dessen Funktion wir am Anfang vereinbart haben. Das ist der Frame der angezeigt wird wenn die Funktion „message()“ aufgerufen wird.

Wie funktioniert das?

Wann auch immer in XML ein Frame, eine Textur oder String definiert wird, werden die Ausgangsattribute als ein Objekt des zugehörigen Typs an Lua übergeben. Jedes Objekt besitzt Unterfunktionen, die das Objekt verändern können. Mit dieser Methode lassen wir auch den Fehler in unserem ersten Skript anzeigen.
Jeder Frame hat mehrere Skript Handler welche unter bestimmten Situationen aufgerufen werden. Ein Beispiel dafür ist „UIParent“(Frame) welches die Handler „On Load“, „OnEvent“, „OnUpdate“ und „OnShow“ hat. „On Load“ wird sofort nach dem Laden des Frames ausgeführt; zu „OnEvent“ kommen wir später noch; „OnUpdate“ wird bei jeder Veränderung der Umwelt ausgelöst; und „OnShow“ wird aufgerufen sobald der Frame angezeigt wird.
Der „OnEvent“ Handler ist etwas besonderes, denn er erlaubt es dem Spiel praktisch mit dem Interface zu kommunizieren. World of Warcraft wurde so designed, dass es möglichst wenig wissen muss um mit dem Interface kompatibel zu sein. Anstatt bei jedem Ereignis eine Nachricht an das Interface zu senden, wird ein Event ausgelöst. Jeder Frame kann für verschiedene Events registriert werden und wann immer eines dieser Ereignisse eintritt wird der „OnEvent“ Handler aufgerufen.
Mit diesen Events ist es möglich durch eine große Anzahl von Funktionen Änderungen am Spielgeschehen vorzunehmen. Beispiele dieser Funktionen sind in den verschiedenen Lua Dateien zu finden.




Add-ons

Die neuste Version von World of Warcraft unterstützt eine Add-On-Struktur, die es erlaubt Zusätze zu dem bereits existierenden Interface Dateien zu erstellen, ohne die originalen zu verändern.

Eine gute Einführung dazu könnt ihr hier finden:(Englisch)
http://wow.mmhell.com/articles/interfac ... guide.html


Tips und Tricks

World of Warcraft unterstützt das neu laden des User Interfaces während der Laufzeit. Dazu müsst ihr einfach "/script ReloadUI()" eingeben(ohne „“) und danach Enter drücken. Falls beim laden Syntax Fehler auftreten müsst ihr also nur die Dateien editieren und neu laden!
Falls ihr nicht sicher seit was ein Skript macht, benutzt einfach die „message()“-Funktion. Euer Skript wird nach erscheinen des Fensters weiter ausgeführt, allerdings werden keine neuen „message()“-Fenster geöffnet bis ihr das momentan geöffnete schließt.
Habt Spaß beim experimentieren und gebt nicht auf falls etwas nicht mehr funktioniert, sondern fangt einfach noch mal neu an. Wenn ihr nicht auf Anhieb zurecht kommt, könnt ihr das Interface Customization Forum auf www.worldofwarcraft.com durchsuchen und sehen ob jemand anderes euer Problem schon lösen konnte.
Dimension
Site Admin
Beiträge: 970
Registriert: 23.03.2004, 12:10
Wohnort: München

Beitrag von Dimension »

Diese Anleitung gibts bei uns bald in der Guide Ecke.

Mich würde mal interessieren wer von euch sowas machen würde, bzw. wer kann XML & LUA ?
Ich hab die Scripte mal überflogen und sooo einfach ist das auch wieder nicht. Da muss man schon ein wenig Kenntnisse haben.
kroedler
Skelettschnetzler
Beiträge: 272
Registriert: 30.07.2004, 19:42
Wohnort: Schmalkalden
Kontaktdaten:

Beitrag von kroedler »

Ich habs sowiso mit Sprachen, und wenn die Retail da ist, dann werd ich wow auch an mich anpassen :D
Benutzeravatar
pm_Snake
Murlocverhauer
Beiträge: 32
Registriert: 02.02.2005, 11:55

Beitrag von pm_Snake »

Jap, das gleiche mach ich auch sobald ich es für nötig empfinde das UI an mich anzupassen. Anfangs wird aber das originale und eine extra-bar schon ausreichen.
XML ist eigentlich (!) leicht. Wenn ich mich recht entsinne gibt man ja sogar eigene Tag-namen vor...
Aber bisschen mehr muss ich mir noch angucken bevor ich loslege
( für nen angehenden Fachinformatiker sollte das nicht so das Problem sein ;) )
Ich hoffe/bete das die WoW - Community hilfsbereit und nett wird! Not like D2!
Antworten