Shadowed Unit Frames HP Anzeige

Hallo Zusammen,
Ich bin derzeit dabei meine Unit Frames etwas anzupassen und switche daher für mein Heiler Interface oft von Vuhdo zu SUF.
Prinzipiell bin ich eher der Fan von SUF, da man dort deutlich flexibler die Positionierung der HoT Icons an den Frames einstellen kann und mir die Aufmachung an sich angenehmer erscheint (ist wohl Geschmackssache).
Allerdings finde ich dort keine passenden Tags bezüglich des Text-Formates
% HP mit eingerechneter eingehender Heilung.
(Zum Vergleich: Bei Vuhdo kann man sich die aktuelle HP in % anzeigen lassen und dort wird direkt die eingehende Heilung addiert.)

Bsp.: 100% aktuelle HP-> Flash Heal wird gecastet mit 15 % Heilung der max. Hp -> angezeigt wird mir 115%, sodass ich den Cast abbrechen kann, um den Overheal von 15% zu vermeiden. (kleiner Gimmick von Vuhdo an der Stelle, die Frames des Spielers ändern Ihre Farbe zu einem helleren Farbton)

Da ich mich alles andere als gut mit LUA-Programmierung oder Codierung auskenne, würde es mich interessieren ob man auch in SUF einen Tag erstellen kann, der dies anzeigt. Derzeit kann man sich die aktuelle Hp in % und die eintreffende Heilung in % anzeigen lassen, aber nicht in addierter oder zusammengefasster Form.

Habe schon etwas in den LUA Einstellungen der Tags in SUF geforscht und dabei folgende für aktuelle % Hp und % eingehende Heilung gefunden:

Prozent GP:

function(unit, unitOwner)
local max = UnitHealthMax(unit)
if( max <= 0 or UnitIsDead(unit) or UnitIsGhost(unit) or not UnitIsConnected(unit) ) then
return "0%"
end

return math.floor(UnitHealth(unit) / max * 100 + 0.5) .. "%"
end

Eingehende Heilung Prozent:

function(unit, unitOwner, fontString)
local heal = UnitGetIncomingHeals(unit)
local maxHealth = UnitHealthMax(unit)
return heal and heal > 0 and maxHealth > 0 and string.format("%d%%", (heal /   maxHealth) * 100)
end

Ich bin mir bewusst das bei SUF die eintreffende Heilung in Form eines kleinen grünen Balkens aus den Frames herausangezeigt wird, finde ich aber eher unübersichtlich bzw. nicht deutlich erkenntlich genug.

Vielleicht kann mir ja jemand helfen oder hat dieses „Problem“ für sich selber schon lösen können.

Vielen Dank schon mal im voraus und schöne Grüße :raised_hands:

Du kannst einfach die eingehende Heilung auf die aktuellen Lebenspunkte addieren:

function(unit, unitOwner)
local max = UnitHealthMax(unit)
if( max <= 0 or UnitIsDead(unit) or UnitIsGhost(unit) or not UnitIsConnected(unit) ) then
return "0%"
end

local upheal = UnitHealth(unit) + UnitGetIncomingHeals(unit)
if upheal > max then upheal = max end

return math.floor(upheal  / max * 100 + 0.5) .. "%"
end

local upheal = UnitHealth(unit) + UnitGetIncomingHeals(unit) ist die aktuelle HP + die Heilung
if upheal > max then upheal = max end verhindert, dass Zahlen höher 100% angezeigt werden.

2 Likes

Vielen Dank dafür, funktioniert super! :kissing_heart:
(Hab es grad nur alleine testen können, aber sollte sich in den Gruppen-Frames ja gleich verhalten)

Eine letzte Frage hätte ich allerdings noch:
Werden auch eingehende Heilungen von anderen Spielern aus meinem Raid mit einberechnet? (ich vermute Ja, konnte es aber leider noch nicht teste :confused: )

Vielen, vielen Dank aber nochmal an dieser Stelle! :slight_smile:

Ja.
Sonst würdest du ja dauernd unnötig überheilen, weil du nicht die Heilung deiner Mitspieler siehst.


Wenn du nur die Heilung von einer spezifischen UnitID haben möchtest, kann man ein zweites Argument anfügen.

Wenn du nur deine eigene Heilung sehen willst, wäre die Funktion

UnitGetIncomingHeals(unit, "player")

Ist natürlich wie gesagt nicht wirklich sinnvoll :wink:

Dieses Thema wurde automatisch 180 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.