*UPDATE
So im Folgenden möchte ich einmal ein wenig auf die Grundlegenden Sachen von oUF eingehen, was oUF überhaupt ist, wozu es da ist und wie man ein paar sachen auh selber bearbeiten kann, damit nicht für jedne kleinkram immer ein neuer Thread aufgemacht werden muss. ich habe mal nachgeschaut und eigentlich noch keine zusammenfassenden thread in diesem Forum darüber gefunden
Inhaltsverzeichnis:
1) Allgemeines
2) Erste Schritte
3) Es geht los
4) Player/Target
4.1) Target
4.2) Castbar
5) Position
5.1) UIParent
6) Tags
1) Allgemeines:
oUF ist ein Unitframesaddon wie zum Beispiel Xpearl oder Pitbull. Da in diesen Foren aber eine große abneigung gegenüber XPearl besteht besinnen sich doch mittlerweile viele Leute auf Pitbull, oder aber eben oUF.
Nun gibt es Leider das Problem das oUF NICHT über ein ingame menü verfügt wie z.B Pitbull, sondern komplett über die Prorammiersprache LUA eingerichtet werden muss. Wenn man nun nur oUF installiert passiert erstmal gar nichts im Spiel, man muss sich ersteinmal ein oUF Layout herrunterladen. Ich werde mich im folgenden auf Layout oUF_P3lim, beziehungsweise oUF_Perfect stützen.
2) Erste Schritte.
So bevors jetzt los geht müsse wir erst einmal die benötigten Programme downloaden. Als erstes würde ich hier oUF und das oUF layout empfehlen.
oUF download Link
Diverse Layouts findet ihr auch auf WoWinteface.com
oUF Layouts
ic benutze aber hier oUF_P3lim und oUF_Perfect
Diese Addons entpackt ihr wie gewohnt in euren Addon ordner, wenn ihr nicht wisst wie das geht siehe "Wie installiere ich Addons"
Soweit so gut. Nun fehlt noch das wichtigste, ein Programm mit dem man die besagt LUA Dateien lesen kann. Im Prinzip geht das mit jedem nur erdenklichen texteditor. Ich benutze aber SciTE auch zu finden auf WowInterface.com
Auch ich bin ein Downloadlink
3) Es geht los!
Dann wollen wir mal. Als erstes öffnet man SciTE mit einem Doppelklick auf das Icon auf dem Desktop.
Das ganze sieht dann ca. so aus:
Nun öffnet man, wie bei einem normalen Programm die Lua Datei aus dem oUF_layout ordner. Also wahrscheinlich „World of Warcraft -> Interface -> Addons -> oUF_P3lim“
Bei mir z.B oUF_P3lim das sieht dann ca. so aus:
Dies sieht jetzt erstmal relativ unübersichtlich aus, im Endeffekt ist aber alles ganz einfach, wenn man sich einmal reingefunden hat. Außerdem da wir nur ein bereits vorhandenes Layout bearbeiten wollen und kein komplett neues erstellen wollen interressiert uns das meiste eh nicht
Der wichtigste Absatz, den es zu suchen gilt ist erstmal
dort wird nämlich die Position der Frames, deren Farbe, die Texte und so weiter festgelegt, und das is ja meistens das was Juckt
Bitte entschuldigt wenn ich im folgenden NICHT chronologisch zur Reihenfolge in der Lua Datei vorgehe, aber ich gehe einfach mal die einzelnen Frames durch um danach noch ein paar spezielle Sachen anzusprechen.
4) Player/Target
Als erstes wollen wir uns mal dem Player bzw. Targetframe widmen. Um die Einstellungen für diese Frames zu finden suchen wir die folgende Textzeile:
Hier wird nun alles eingestellt was den Player und den Targetframe betrifft.
Nun scrollen wir ein wenig runter und finden ziemlich bald die folgenden Zeilen
hier wird jetzt die Höhe (27) und die Breite (230) des Frames angegeben. Alle Angaben werden bei Lua IMMER in Pixeln gemacht, wenn ihr also ganz genau arbeiten wollt und gute Augenhabt könnt ihr einzelne Pixel auch "nachzählen". Wenn wir nun zum Beispiel einen quadratischen frame haben wollen, geben wir einfach zwei gleich große zahlen an z.B.
Weiter finden wir hier noch ein paar Einstellungen zur Castbar. Als erstes möchte ich hier den Hintergrund erwähnen
Hier wird die Farbe des Hintergrundes festgelegt, wobei die erste Zahl für Rot, die zweite für Grün und die Dritte für Blau steht. Weiter können wir noch die Farbe der direkten Castbar bestimmen, also nicht nur die des Hintergrundes. Dies passiert in der Zeile
Hier wird die Farbe genauso definiert wie beim Hintergrund, also mit RGB werten.
4.1) Target
Nun Gehen wir ein paar Zeilen weiter Runter und finden das Folgende
Hier wird es nun ein wenig komplexer, da hier alles definiert wird was das Target betrifft, also z.B Buffs und Debuffs.
Die Einstellung von Buffs und Debuffs läuft allerdings genau gleich, da sich nichts ändert, außer das aus Buffs ein Debufs wird
Deswegen werde ich das Hier nur einmal anhand der Buffs vorführen. Der Gesamt Code für die Buffs sieht ca. So aus
setzt nun die Anzahl der angezeigten Buffs fest, also z.B. 5 oder 24 je nachdem wieviele man sehen möchte.
gibt den Abstand zwischen den einzelnen Buffs an wieder in pxl. Wie immer bei lua. Der Abstand von 2 Pixeln gilt sowohl auf der x-Achse, als auch auf der y-Achse.
gibt die Richtung an in der sich die Buffs auf der y-Achse Fortsetzen, das Gleiche geht auch mit der x-Achse, allerdings muss man dann 'LEFT' oder 'RIGHT' einsetzen. Da man auf der x-Achse nur nach rechts und Links verschieben kann.
gibt den Punkt an von dem aus die Buffs wachsen, also z.B. 'TOPLEFT' oder wie hier ‚BOTTOMLEFT‘. Dieser Anker ist wichtig wenn man die Buffs nun verschieben möchte.
Mit allen anderen Frames funktioniert es genau so wie beim Target hier, man muss bloß halt immer den für den jeweiligen Frame wichtigen Absatz zu finden, also beim ToT beispielsweise
aber jeden Frame hier einzeln durch zuexzerzieren würde eindeutig zu lange dauern. Und dann würd es erst recht niemand mehr lesen
4.2) Castbar
So nun möchte ich ein wenig über die Castbar reden. Auch hier ist alles ganz ganz einfach, wenn man weis wonach man suchen muss.
Im eigentlichen wird die Castbar un´ter dem Punkt
schon komplett mit eingerichtet, und dies sind auch die Grundlegendste Funktionen auf die ich hier einmal ansprechen möchte.
als erstes wäre hier die Farbe der Castbar
Wobei die 3 Kommazahlen jeweils füe eine Farbe stehen, die erse ist Rot, die zweite Grün und dir Dritte Blau. (1, 1, 1) wäre weiß, (0, 0, 0,) wäre schwarz und je näher die drei werte beieinander liegen desto eher ist es ein Grau, wir hätten hier also ein schönes grau gegeben.
Als nähstes kommen wir zum Hintergrund
auch hier wird wie bei der Farbe schon der Hintergrund definiert durch die Drei werte, also Rot/ Grün und Blau. Der Wert BackdropAlpha definiert die helligkeit des Hintergrundes. Wobei 0 für durchsichtig steht, und 1 für komplett undurchsichtig.
Nun der Text, also zaubername und ähnliches.
Die erse zele definiert den Text der ausgegeben werden soll, hier der Zaubername. In der zweiten Leiste steht wo der Name angezeigt wird. in Diesem Fall in der Castbar, am Linken Rand, allerdings um 2 pxl nach rechts und um 1pxl nach untern verschoben.
Nach genau dem Gleichen prinzip läuft es bei der zauberzeit ab, bloß das dort anstatt des .Text ein .Time steht
Als letztes möchte ich noc einmal auf die Position der Castbar zu sprechen kommen. Diese wird definiert durch die folgenden Befehle
wobei das "self" für den Playerframe steht, das Heist die Castbar is um 100pxl nach unten verschoben unter den Playerframe. die erste zahl steht wie immer für die xWerte.
5) Position
Als letztes komme ich zur Position der einzelnen Frames, die so wie ich mitbekommen habe den meistne schwierigkeiten bereitet. als erstes suchen wir in der Lua datei einmal nach
Weil hier die position definiert wird. Nun steht da z.B. das Folgende:
Das
steht jetzt für den frame der Gespawnt wird, hier der Playerframe
das
steht für den Punkt von dem ausgerechnet wird, hier jetzt die Linke obere Ecke, hier kannst du auch
oä. einfügen, dann wird halt von oben Rechts gerechnet.
Das
is relativ unwichtig, steht aber dafür das dieser Frame als Orientierung für andere Frames dienen kann. Siehe auch -> 5.1)
So und nun das Wichtigste, die beiden Zahlen stehen, wie in Mathe, für die x-Achse bzw- y-Achse, wobei immer von dem Punkt gerechnet wird den du vorne definiert hast. Um sich das einmal vorstellen zu können, der oben definierte Punkt ist so zusagen der 0-Punkt, bei dem die x-/ und y-Achse aufeinander treffen und dann ist es nur noch einfaches subtrahieren, bzw Addieren.
In meinem Falle ist es jetzt mal 'TOPLEFT' wenn man nun eine Bildschirmauflösung von 1280 mal 1024 hat und den Playerframe ziemlich genau in der Mitte haben will muss man das folgende einfügen
Für alle anderen Frames bleibt das Prinzip gleich. Meistens eine Ausname bilden der Focustarget-, der Pettarget-, und der ToTframe. Diese sind meistens über UIParents festgelegt.
5.1) UIParent
Wie eben schon gesagt werden der Focustarget-, der Pettarget-, und der ToTframe über UIParents mit vorhanden Frames verknüpft.
Die Definition das ein Frame als UIParent benutz werden kann passiert wie auch schon erwähnt durch das
Man kann sich das ganze ungefähr so vorstellen das der Frame dann als Elternframe für einen neuen Frame steht und sich der neue Frame dann am Parent orientiert. Ich führe das mal am ToT vor.
Also zuerst suchen wir einmal in unserer Lua-Datei die folgende Zeile.
Hier wird also die Position festgetzt, an der der ToT-Frame erscheint. Im prinzip ist es nichts anderes als beim playerframe auch, allerdings dient nun nicht mehr der gesamte Bildschirm als mögliche Spawnposition, sondern nur noch der Targetframe. Dafür sorgt das „oUF.units.target” hier wird nämlich so ca. das folgende gesagt: „Hey orientier dich mal nicht mehr am ganzen bildschirm, sondern nimm lieber den Targetframe“ das folgende
setzt die Position am Parentrame fest, an der sich der Anker des ToT-Frames orientiert, also hier oben rechts.
Die beiden folgenden Zahlen stehen wie immer für die X-/ bzw. Y-Achse und sorgen dafür das der Frame ein wenig verschoben wird. Auch hier wie immer bei Lua sind alle Angaben in Pixeln zu machen.
In eigenen Worten sagt die Zeile dem ToT-Frame also das folgende: „hey ich möchte nicht das du deine Position auf den gesamten Bikdschirm beziehst, sondern nur auf den Targetframe. Und hier bitte auf der X-Achse nciht verschoben, dafür aber auf der Y-Achse um 5 Pixel nach oben.
So im Folgenden möchte ich einmal ein wenig auf die Grundlegenden Sachen von oUF eingehen, was oUF überhaupt ist, wozu es da ist und wie man ein paar sachen auh selber bearbeiten kann, damit nicht für jedne kleinkram immer ein neuer Thread aufgemacht werden muss. ich habe mal nachgeschaut und eigentlich noch keine zusammenfassenden thread in diesem Forum darüber gefunden
Inhaltsverzeichnis:
1) Allgemeines
2) Erste Schritte
3) Es geht los
4) Player/Target
4.1) Target
4.2) Castbar
5) Position
5.1) UIParent
6) Tags
1) Allgemeines:
oUF ist ein Unitframesaddon wie zum Beispiel Xpearl oder Pitbull. Da in diesen Foren aber eine große abneigung gegenüber XPearl besteht besinnen sich doch mittlerweile viele Leute auf Pitbull, oder aber eben oUF.
Nun gibt es Leider das Problem das oUF NICHT über ein ingame menü verfügt wie z.B Pitbull, sondern komplett über die Prorammiersprache LUA eingerichtet werden muss. Wenn man nun nur oUF installiert passiert erstmal gar nichts im Spiel, man muss sich ersteinmal ein oUF Layout herrunterladen. Ich werde mich im folgenden auf Layout oUF_P3lim, beziehungsweise oUF_Perfect stützen.
2) Erste Schritte.
So bevors jetzt los geht müsse wir erst einmal die benötigten Programme downloaden. Als erstes würde ich hier oUF und das oUF layout empfehlen.
oUF download Link
Diverse Layouts findet ihr auch auf WoWinteface.com
oUF Layouts
ic benutze aber hier oUF_P3lim und oUF_Perfect
Diese Addons entpackt ihr wie gewohnt in euren Addon ordner, wenn ihr nicht wisst wie das geht siehe "Wie installiere ich Addons"
Soweit so gut. Nun fehlt noch das wichtigste, ein Programm mit dem man die besagt LUA Dateien lesen kann. Im Prinzip geht das mit jedem nur erdenklichen texteditor. Ich benutze aber SciTE auch zu finden auf WowInterface.com
Auch ich bin ein Downloadlink
3) Es geht los!
Dann wollen wir mal. Als erstes öffnet man SciTE mit einem Doppelklick auf das Icon auf dem Desktop.
Das ganze sieht dann ca. so aus:
Nun öffnet man, wie bei einem normalen Programm die Lua Datei aus dem oUF_layout ordner. Also wahrscheinlich „World of Warcraft -> Interface -> Addons -> oUF_P3lim“
Bei mir z.B oUF_P3lim das sieht dann ca. so aus:
Dies sieht jetzt erstmal relativ unübersichtlich aus, im Endeffekt ist aber alles ganz einfach, wenn man sich einmal reingefunden hat. Außerdem da wir nur ein bereits vorhandenes Layout bearbeiten wollen und kein komplett neues erstellen wollen interressiert uns das meiste eh nicht
Der wichtigste Absatz, den es zu suchen gilt ist erstmal
Code:
local function CreateStyle(self, unit)
Bitte entschuldigt wenn ich im folgenden NICHT chronologisch zur Reihenfolge in der Lua Datei vorgehe, aber ich gehe einfach mal die einzelnen Frames durch um danach noch ein paar spezielle Sachen anzusprechen.
4) Player/Target
Als erstes wollen wir uns mal dem Player bzw. Targetframe widmen. Um die Einstellungen für diese Frames zu finden suchen wir die folgende Textzeile:
Code:
if(unit == 'player' or unit == 'target') then
Nun scrollen wir ein wenig runter und finden ziemlich bald die folgenden Zeilen
Code:
SetAttribute('initial-height', 27)
SetAttribute('initial-width', 230)
Code:
self:SetAttribute('initial-height', 64)
self:SetAttribute('initial-width', 64)
Code:
Castbar:SetBackdropColor(0, 0, 0)
Code:
Castbar:SetStatusBarColor(0.25, 0.25, 0.35)
4.1) Target
Nun Gehen wir ein paar Zeilen weiter Runter und finden das Folgende
Code:
if(unit == 'target') then
Die Einstellung von Buffs und Debuffs läuft allerdings genau gleich, da sich nichts ändert, außer das aus Buffs ein Debufs wird
Code:
self.Buffs:SetPoint('TOPLEFT', self, 'RIGHT', 3, 14)
self.Buffs:SetHeight(24 * 2)
self.Buffs:SetWidth(270)
self.Buffs.num = 10
self.Buffs.size = 24
self.Buffs.spacing = 2
self.Buffs.initialAnchor = 'BOTTOMLEFT'
self.Buffs['growth-y'] = 'UP'
Code:
Buffs.num = 10
Code:
Buffs.spacing = 2
Code:
Buffs['growth-y'] = 'UP'
Code:
Buffs.initialAnchor = 'BOTTOMLEFT'
Mit allen anderen Frames funktioniert es genau so wie beim Target hier, man muss bloß halt immer den für den jeweiligen Frame wichtigen Absatz zu finden, also beim ToT beispielsweise
Code:
if(unit == 'targettarget') then
4.2) Castbar
So nun möchte ich ein wenig über die Castbar reden. Auch hier ist alles ganz ganz einfach, wenn man weis wonach man suchen muss.
Im eigentlichen wird die Castbar un´ter dem Punkt
Code:
if(unit == 'player' or unit == 'target') then
als erstes wäre hier die Farbe der Castbar
Code:
self.Castbar:SetStatusBarColor(0.25, 0.25, 0.35)
Als nähstes kommen wir zum Hintergrund
Code:
self.Castbar:SetBackdrop(backdrop)
self.Castbar:SetBackdropColor(0, 0, 0)
self.Castbar:SetBackdropCAlpha(0.5)
Nun der Text, also zaubername und ähnliches.
Code:
self.Castbar.Text = self.Castbar:CreateFontString(nil, 'OVERLAY', 'GameFontHighlightSmallLeft')
self.Castbar.Text:SetPoint('LEFT', self.Castbar, 2, -1)
Nach genau dem Gleichen prinzip läuft es bei der zauberzeit ab, bloß das dort anstatt des .Text ein .Time steht
Als letztes möchte ich noc einmal auf die Position der Castbar zu sprechen kommen. Diese wird definiert durch die folgenden Befehle
Code:
self.Castbar:SetPoint('TOPRIGHT', self, 'BOTTOMRIGHT', 0, -100)
5) Position
Als letztes komme ich zur Position der einzelnen Frames, die so wie ich mitbekommen habe den meistne schwierigkeiten bereitet. als erstes suchen wir in der Lua datei einmal nach
Code:
oUF:Spawn
Code:
oUF:Spawn('player'):SetPoint('TOPLEFT', UIParent, 460, -760)
Code:
'player'
das
Code:
'TOPLEFT'
Code:
'TOPRIGHT'
Das
Code:
UIParent
So und nun das Wichtigste, die beiden Zahlen stehen, wie in Mathe, für die x-Achse bzw- y-Achse, wobei immer von dem Punkt gerechnet wird den du vorne definiert hast. Um sich das einmal vorstellen zu können, der oben definierte Punkt ist so zusagen der 0-Punkt, bei dem die x-/ und y-Achse aufeinander treffen und dann ist es nur noch einfaches subtrahieren, bzw Addieren.
In meinem Falle ist es jetzt mal 'TOPLEFT' wenn man nun eine Bildschirmauflösung von 1280 mal 1024 hat und den Playerframe ziemlich genau in der Mitte haben will muss man das folgende einfügen
Code:
oUF:Spawn('player'):SetPoint('TOPLEFT', UIParent, 640, -512)
Für alle anderen Frames bleibt das Prinzip gleich. Meistens eine Ausname bilden der Focustarget-, der Pettarget-, und der ToTframe. Diese sind meistens über UIParents festgelegt.
5.1) UIParent
Wie eben schon gesagt werden der Focustarget-, der Pettarget-, und der ToTframe über UIParents mit vorhanden Frames verknüpft.
Die Definition das ein Frame als UIParent benutz werden kann passiert wie auch schon erwähnt durch das
Code:
UIParent
Also zuerst suchen wir einmal in unserer Lua-Datei die folgende Zeile.
Code:
oUF:Spawn('targettarget'):SetPoint('BOTTOMRIGHT', oUF.units.target, 'TOPRIGHT', 0, 5)
Code:
'TOPRIGHT'
Die beiden folgenden Zahlen stehen wie immer für die X-/ bzw. Y-Achse und sorgen dafür das der Frame ein wenig verschoben wird. Auch hier wie immer bei Lua sind alle Angaben in Pixeln zu machen.
In eigenen Worten sagt die Zeile dem ToT-Frame also das folgende: „hey ich möchte nicht das du deine Position auf den gesamten Bikdschirm beziehst, sondern nur auf den Targetframe. Und hier bitte auf der X-Achse nciht verschoben, dafür aber auf der Y-Achse um 5 Pixel nach oben.
Zuletzt bearbeitet von einem Moderator: