oUF Eclipsbar GetEclipseDirection... Problem

Cytek

Quest-Mob
Registriert
22.08.2007
Beiträge
91
Reaktionspunkte
0
Kommentare
3
Hi ich hab mir mit oUF ne Eclipse Bar gemacht. Code sieht folgendermaßen aus:
Code:
local _, class = UnitClass('player')
if class == 'DRUID' then
self.EclipseBar = CreateFrame('Frame', nil, self)
self.EclipseBar:SetPoint("BOTTOMLEFT", self.Health, "TOPLEFT", 0, 1)
self.EclipseBar:SetSize(235, 10)
self.EclipseBar:SetBackdrop(backdrop)
self.EclipseBar:SetBackdropColor(0, 0, 0)

self.EclipseBar.LunarBar = CreateFrame('StatusBar', nil, self.EclipseBar)
self.EclipseBar.LunarBar:SetPoint('LEFT', self.EclipseBar, 'LEFT', 0, 0)
self.EclipseBar.LunarBar:SetSize(235, 10)
self.EclipseBar.LunarBar:SetStatusBarTexture(statusbar)
self.EclipseBar.LunarBar:SetStatusBarColor(.30, .52, .90)
self.EclipseBar.LunarBar.frequentUpdates = FreqUpdate
		
self.EclipseBar.SolarBar = CreateFrame('StatusBar', nil, self.EclipseBar)
self.EclipseBar.SolarBar:SetPoint('LEFT', self.EclipseBar.LunarBar:GetStatusBarTexture(), 'RIGHT', 0, 0)
self.EclipseBar.SolarBar:SetSize(235, 10)
self.EclipseBar.SolarBar:SetStatusBarTexture(statusbar)
self.EclipseBar.SolarBar:SetStatusBarColor(.80, .82, .60)
self.EclipseBar.SolarBar.frequentUpdates = FreqUpdate
self.EclipseBarText = self.EclipseBar.SolarBar:CreateFontString(nil, 'OVERLAY')
self.EclipseBarText:SetPoint('CENTER', self.EclipseBar, 'CENTER', 0, 0)
 self.EclipseBarText:SetFont(font, 14, 'THINOUTLINE')
if GetEclipseDirection() == "sun" then
 self.EclipseBarText:SetText("|cff4478BCSternenfeuer!|r")
 else
 self.EclipseBarText:SetText("|cffE5994CZorn!|r")
 end
 end
Ziel der Bar ist nicht nur anzuzeigen wieviel mir noch bis zur jeweiligen Eclipse fehlt sondern auch noch in welche Richtung ich muss... Jede Eule mit oUF kennt das Problem... man stirbt im PVP und hat erstmal keine Ahnung in welche Richtung man arbeiten muss...
Meine Bar funktioniert soweit auch nur ändert sie die Richtung nicht wenn ich den Eclipse Procc erreicht habe...
Z.B.:
Ich muss mich mit Sternfeuer zur Sonnenfinsternis arbeiten und hab 100 Solarenergie erreicht --> Sonnenfinsternis erreicht, aber die Richtungsanzeige ändert sich nicht. Wenn ich das UI neulade rafft er es aber und zeigt dann wieder die richtige Richtung...
 
Zuletzt bearbeitet von einem Moderator:
vergesst es missverständniss
 
Zuletzt bearbeitet von einem Moderator:
Normal, deine Abfrage ist ja auch in keinem Update drin...

Wie sieht denn deine Update-Funktion aus?

Die müsste man sehen, wenn man Hilfe haben möchte :-)
 
kann ich dir die lua ma per pn zukommen lassen?^^ bin nich so der lua held xD kein plan wo die update funktion is, bzw. ob es überhaupt eine gibt:unsure:
 
Ich hab dir mal was gebastelt... ob es geht, weiss ich nicht:
Dein
Code:
if GetEclipseDirection() == "sun" then
 self.EclipseBarText:SetText("|cff4478BCSternenfeuer!|r")
 else
 self.EclipseBarText:SetText("|cffE5994CZorn!|r")
 end
entfernen und stattdessen dieses hier einfügen:
Code:
self.EclipseBar.PostUpdatePower = function(unit)
	if ( GetEclipseDirection() == "sun" ) then
		self.EclipseBarText:SetText("|cff4478BCSternenfeuer!|r");
	elseif ( GetEclipseDirection() == "moon" ) then
		self.EclipseBarText:SetText("|cffE5994CZorn!|r");
	else
		self.EclipseBarText:SetText("");
	end
end;
 
man shanty du bist ein held:) das läuft 1a

ganz ganz dickes danke!
 
Hi,
ich habs jetz bei mir genauso wie shanty es geschrieben hat. es funktioniert soweit auch echt gut, aber wenn ich gestorben bin oder den spec wechsle fragt er wohl die eclipse richtung nicht ab...
ich bekomme keinen text angezeigt und habe somit keinen indikator in welche richtung ich muss. hat da evtl. noch jemand nen lösungsansatz?

Edit: ich post euch nochmal den quellcode:

Code:
        local _, class = UnitClass('player')
        if class == 'DRUID' then
            self.EclipseBar = CreateFrame('Frame', nil, self)
            self.EclipseBar:SetPoint("BOTTOMLEFT", self.Health, "TOPLEFT", 0, 5)
            self.EclipseBar:SetSize(220, 5)
            self.EclipseBar:SetBackdrop(backdrop)
            self.EclipseBar:SetBackdropColor(0, 0, 0)
            
            self.EclipseBar.bd = createBackdrop(self, self.EclipseBar)

            self.EclipseBar.LunarBar = CreateFrame('StatusBar', nil, self.EclipseBar)
            self.EclipseBar.LunarBar:SetPoint('LEFT', self.EclipseBar, 'LEFT', 0, 0)
            self.EclipseBar.LunarBar:SetSize(220, 5)
            self.EclipseBar.LunarBar:SetStatusBarTexture(texture)
            self.EclipseBar.LunarBar:SetStatusBarColor(79/255, 114/255, 160/255)
            self.EclipseBar.LunarBar.frequentUpdates = FreqUpdate
                            
            self.EclipseBar.SolarBar = CreateFrame('StatusBar', nil, self.EclipseBar)
            self.EclipseBar.SolarBar:SetPoint('LEFT', self.EclipseBar.LunarBar:GetStatusBarTexture(), 'RIGHT', 0, 0)
            self.EclipseBar.SolarBar:SetSize(220, 5)
            self.EclipseBar.SolarBar:SetStatusBarTexture(texture)
            self.EclipseBar.SolarBar:SetStatusBarColor(255/255, 124/255, 10/255)
            self.EclipseBar.SolarBar.frequentUpdates = FreqUpdate
            self.EclipseBarText = self.EclipseBar.SolarBar:CreateFontString(nil, 'OVERLAY')
            self.EclipseBarText:SetPoint('CENTER', self.EclipseBar, 'CENTER', 0, 7)
            self.EclipseBarText:SetFont(font, 14, 'THINOUTLINE')
            self.EclipseBar.PostUpdatePower = function(unit)
            if ( GetEclipseDirection() == "sun" ) then
                    self.EclipseBarText:SetText("|cff324865Sternenfeuer!|r");
                elseif ( GetEclipseDirection() == "moon" ) then
                        self.EclipseBarText:SetText("|cffbc5c07Zorn!|r");
                else
                        self.EclipseBarText:SetText("");
                end
            end;
        end
 
Zuletzt bearbeitet von einem Moderator:
Zurück