7 Commits
Author SHA1 Message Date
Mquadrat d0a3bbfa9b Update README.md 2026-10-05 18:52:09 +02:00
Mquadrat 86cfea6b76 Add files via upload 2026-10-05 18:50:57 +02:00
Mquadrat 38c3accf14 Update README.md 2026-09-12 09:24:18 +02:00
Mquadrat e6f98eb65a Update README.md 2026-09-12 09:23:48 +02:00
Mquadrat 12e0f0dfe0 Update README.md 2026-09-12 09:23:14 +02:00
Mquadrat 08a4abbfe5 Add files via upload 2026-09-12 09:22:48 +02:00
Mquadrat 87075c8c54 Update README.md 2026-09-11 19:38:22 +02:00
4 changed files with 182 additions and 15 deletions
+51 -3
View File
@@ -1,8 +1,54 @@
# Changelog
## 1.4.5.3 (2026-10-05)
A readability option suggested by a user has been added: the area behind the bars can be given a solid background, so the game world no longer shows through where health is missing.
### English
**New**
- **Bar background.** New slider *Bar background* on the *General* tab, 0 to 100 per cent in steps of 5. At 0, which is the default, nothing changes: the plate stays see-through and grass, sky or stone show through the empty part of the health bar. Turned up, a quiet dark grey surface sits behind the bars, so the green of the health bar stands on a fixed background. At 100 the plate is opaque. The shade is `FBBAR_BG_COLOR` (0.15 grey) and the setting is kept per character in `HealBox.BarBG`.
- **Where it sits.** The texture hangs on the lowest of the four stacked bars, the incoming-heal bar, on the `BACKGROUND` layer. That puts it under the prediction, the shield, the health and the mana bar, and it is shown and hidden together with them, so nothing is left behind on a plate that is currently empty or hidden by the attach mode. At 0 per cent no texture is set at all, rather than a fully transparent one.
- **Raid cells need nothing.** They already have their own backdrop at 80 per cent black, so there is no world shining through there; the slider deliberately only touches the plates.
**Thanks**
- The idea and a working patch came from a user who finds the translucent bar hard to read. The patch used `WHITE8X8` plus `SetVertexColor`; the version shipped here uses `SetTexture(r, g, b, a)`, which creates a solid colour directly in 1.12 and is what the mana strip already does. Same result, no texture file involved.
### Deutsch
**Neu**
- **Balkenhintergrund.** Neuer Regler *Balkenhintergrund* im Reiter *Allgemein*, 0 bis 100 Prozent in Fuenferschritten. Bei 0, dem Standard, aendert sich nichts: Die Plakette bleibt durchscheinend, durch den leeren Teil des Lebensbalkens sieht man Gras, Himmel oder Stein. Hochgedreht liegt eine ruhige dunkelgraue Flaeche hinter den Balken, das Gruen des Lebensbalkens steht dann auf festem Grund. Bei 100 ist die Plakette undurchsichtig. Der Grundton ist `FBBAR_BG_COLOR` (0,15 Grau), die Einstellung bleibt je Charakter in `HealBox.BarBG` gespeichert.
- **Wo die Flaeche haengt.** Die Textur sitzt auf der untersten der vier gestapelten Balken, der Heilvorhersage, auf der Ebene `BACKGROUND`. Damit liegt sie unter Vorhersage, Schild, Leben und Mana, und sie wird zusammen mit ihnen ein- und ausgeblendet; auf einer leeren oder im Anheftmodus versteckten Plakette bleibt also nichts stehen. Bei 0 Prozent wird gar keine Textur gesetzt statt einer voellig durchsichtigen.
- **Raidzellen brauchen nichts.** Sie haben bereits ihren eigenen Hintergrund mit 80 Prozent Schwarz, dort scheint keine Welt durch; der Regler fasst bewusst nur die Plaketten an.
**Danke**
- Idee und ein lauffaehiger Patch kamen von einem Nutzer, dem der durchscheinende Balken schlecht lesbar ist. Der Patch benutzte `WHITE8X8` mit `SetVertexColor`; hier ausgeliefert wird `SetTexture(r, g, b, a)`, das in 1.12 direkt eine Vollfarbe erzeugt und genau das ist, was der Manastreifen ohnehin schon macht. Gleiches Ergebnis, ohne Texturdatei.
## 1.4.5.2 (2026-09-12)
One fix: a running HoT no longer pulls Smart Healing down a rank.
### English
**Fixed**
- **A HoT on the target no longer talks Smart Healing into a lower rank.** The full healing still owed by a running HoT was subtracted from the deficit as if it had already landed, so a ticking Renew could turn a Heal rank 4 into a Lesser Heal. Only healing that arrives right away is deducted now, meaning direct heals and spells reported over HealComm, roughly one to three seconds out; HoTs stay out of the calculation because they spread their healing over up to fifteen seconds. They are of course still shown on the bar, and the rule that HoTs are never downranked themselves is untouched.
### Deutsch
**Behoben**
- **Ein HoT auf dem Ziel redet Smart Healing keinen kleineren Rang mehr ein.** Die noch offene Heilung eines laufenden HoT wurde vom Fehlbetrag abgezogen, als waere sie schon angekommen; ein tickendes Erneuerung konnte so aus einem Heilen Rang 4 ein Geringes Heilen machen. Abgezogen wird jetzt nur noch Heilung, die gleich ankommt, also Direktheilungen und ueber HealComm gemeldete Zauber, grob ein bis drei Sekunden; HoTs bleiben aus der Rechnung heraus, weil sie ihre Heilung ueber bis zu fuenfzehn Sekunden verteilen. Angezeigt werden sie auf dem Balken selbstverstaendlich weiterhin, und die Regel, dass HoTs selbst nie abgerangt werden, bleibt unberuehrt.
## 1.4.5.1 (2026-09-11)
Two display fixes: the mana ticker spark moves smoothly again, and the global cooldown no longer greys out every button.
Button and ticker fixes: the mana ticker spark moves smoothly again, and the global cooldown no longer greys out every button but runs as a sweep instead.
### English
@@ -11,7 +57,8 @@ Two display fixes: the mana ticker spark moves smoothly again, and the global co
- **The mana ticker spark moves smoothly again.** The spark was only redrawn once it had travelled half a pixel. That sounds frugal, but it crosses the bar in five seconds, roughly 20 pixels per second, so at 60 frames it advanced on every second frame at best and, depending on rounding, sometimes after one frame and sometimes after two. That uneven step was the stutter, and the fixed 0.03 second redraw step introduced in 1.4.5 made it worse. The threshold is now effectively gone (0.05 px) and the spark is drawn every frame again, which doubles its motion from 30 to 60 steps per second with an even gap.
- **Drawing every frame still costs nothing.** Each spark remembers the width and height of its bar and re-reads them four times a second (`FBTICK_GEOM_STEP`) instead of asking the frame on every pass, and the gate check sits in front of it all: with a full mana bar there is no pass at all.
- **The global cooldown no longer darkens every button.** After casting anything, the client reports every spell as unusable for the length of the global cooldown. Taken literally, that turned all icons dark grey for a second and a half after every cast, as if nothing were available at all. A running cooldown no longer than the global one (`FBCD_MIN_DURATION`) is no longer treated as a reason to darken a button. Blue for missing mana, red for out of range and grey for a spell that really cannot be cast, for instance in the wrong shapeshift form, all work as before. This affects the plates and the raid cells alike, both go through `FBHealBox_ButtonUsable`.
- **The global cooldown does run as a sweep now.** Not showing it at all was the other half of the inconsistency: an instant like Renew left every button untouched while Power Word: Shield, which has a real cooldown in 1.12, showed one. The sweep is the calm way to show a short wait, so the display threshold moved into its own constant `FBCD_SHOW_MIN` (0, show everything) and is no longer tied to the darkening threshold `FBCD_MIN_DURATION`. Setting it to 2 restores the old quiet behaviour. The sweep starts in the very next frame, because the button pass is not throttled.
- **It runs as a sweep instead.** Not showing it at all was the other half of the inconsistency: an instant like Renew or Abolish Disease left every button untouched, while Power Word: Shield, which has a real cooldown in 1.12, showed one. The sweep is the calm way to show a short wait, so after every cast you watch it run out on all buttons, the way the action bars do it.
- **Two thresholds instead of one.** The display threshold moved into its own constant `FBCD_SHOW_MIN` (0, show every running cooldown) and is no longer tied to `FBCD_MIN_DURATION` (2), which now only answers whether a cooldown is a reason to darken a button. The two were the same value before, which is why showing the global cooldown and not darkening for it could not be had at the same time. Setting `FBCD_SHOW_MIN` to 2 restores the quiet display. A cooldown is also only shown when one is really running (`cd[1] > 0`), and the sweep starts in the very next frame because the button pass is not throttled.
### Deutsch
@@ -20,7 +67,8 @@ Two display fixes: the mana ticker spark moves smoothly again, and the global co
- **Der Funke im Manabalken laeuft wieder rund.** Neu gezeichnet wurde er erst, wenn er einen halben Pixel weitergewandert war. Das klingt sparsam, er braucht fuer den Balken aber fuenf Sekunden, also rund 20 Pixel je Sekunde: Bei 60 Bildern kam er damit bestenfalls in jedem zweiten Frame voran und je nach Rundung mal nach einem, mal nach zwei Frames. Genau dieser ungleiche Schritt war das Ruckeln, und der feste Zeichentakt von 0,03 Sekunden aus 1.4.5 hat es verstaerkt. Die Schwelle ist jetzt praktisch weg (0,05 px) und gezeichnet wird wieder in jedem Frame, das verdoppelt die Bewegung von 30 auf 60 gleichmaessige Schritte je Sekunde.
- **Das Zeichnen je Frame kostet trotzdem nichts.** Jeder Funke merkt sich Breite und Hoehe seines Balkens und liest sie viermal je Sekunde nach (`FBTICK_GEOM_STEP`), statt sie bei jedem Durchlauf zu erfragen, und der Torwaechter sitzt weiterhin davor: Bei vollem Manabalken laeuft gar kein Durchlauf.
- **Der globale Cooldown dunkelt nicht mehr alle Buttons ab.** Nach jedem gewirkten Zauber meldet der Client fuer die Dauer des globalen Cooldowns saemtliche Zauber als nicht nutzbar. Woertlich genommen wurden dadurch nach jedem Zauber anderthalb Sekunden lang alle Symbole dunkelgrau, als waere gar nichts mehr verfuegbar. Eine laufende Abklingzeit, die nicht laenger ist als der globale Cooldown (`FBCD_MIN_DURATION`), gilt jetzt nicht mehr als Grund zum Abdunkeln. Blau fuer fehlendes Mana, Rot fuer ausser Reichweite und Grau fuer einen Zauber, der wirklich nicht geht, etwa in der falschen Gestalt, arbeiten unveraendert weiter. Das gilt fuer Plaketten und Raidzellen gleichermassen, beide laufen ueber `FBHealBox_ButtonUsable`.
- **Dafuer laeuft der globale Cooldown jetzt als Uhr mit.** Ihn gar nicht zu zeigen war die andere Haelfte der Ungereimtheit: Ein Instant wie Erneuerung liess alle Buttons unberuehrt, waehrend Machtwort: Schild, das in 1.12 eine echte Abklingzeit hat, eine Uhr zeigte. Die Uhr ist die ruhige Art, eine kurze Wartezeit anzuzeigen, deshalb sitzt die Anzeigeschwelle jetzt in einer eigenen Konstante `FBCD_SHOW_MIN` (0, also alles zeigen) und haengt nicht mehr an der Abdunkel-Schwelle `FBCD_MIN_DURATION`. Wer sie auf 2 setzt, hat das alte ruhige Verhalten zurueck. Die Uhr startet im naechsten Frame, weil der Button-Durchgang nicht gedrosselt ist.
- **Stattdessen laeuft er als Uhr mit.** Ihn gar nicht zu zeigen war die andere Haelfte der Ungereimtheit: Ein Instant wie Erneuerung oder Krankheit aufheben liess alle Buttons unberuehrt, waehrend Machtwort: Schild, das in 1.12 eine echte Abklingzeit hat, eine Uhr zeigte. Die Uhr ist die ruhige Art, eine kurze Wartezeit anzuzeigen: Nach jedem Zauber laeuft sie auf allen Buttons ab, so wie es die Aktionsleisten machen.
- **Zwei Schwellen statt einer.** Die Anzeigeschwelle sitzt jetzt in einer eigenen Konstante `FBCD_SHOW_MIN` (0, also jede laufende Abklingzeit zeigen) und haengt nicht mehr an `FBCD_MIN_DURATION` (2), die nur noch beantwortet, ob eine Abklingzeit ein Grund zum Abdunkeln ist. Vorher war beides derselbe Wert, deshalb liess sich "globalen Cooldown zeigen" und "wegen ihm nicht abdunkeln" nicht gleichzeitig haben. Wer `FBCD_SHOW_MIN` auf 2 setzt, hat die ruhige Anzeige zurueck. Gezeigt wird ausserdem nur, wenn wirklich eine Abklingzeit laeuft (`cd[1] > 0`), und die Uhr startet im naechsten Frame, weil der Button-Durchgang nicht gedrosselt ist.
## 1.4.5 (2026-09-08)
+103 -3
View File
@@ -38,7 +38,12 @@
-- Anheftmodus gegenseitig aus), Wut, Energie und Fokus im Balken,
-- +Heilung der Ausruestung ueber ClassicAPI in der Vorhersage.
-- * v1.4.5.1: Ruckeln des Manafunkens behoben (Bewegungsschwelle und
-- Zeichentakt), globaler Cooldown dunkelt nicht mehr alle Buttons ab.
-- Zeichentakt), globaler Cooldown dunkelt nicht mehr alle Buttons ab
-- und laeuft stattdessen als Uhr mit (eigene Schwelle FBCD_SHOW_MIN).
-- * v1.4.5.2: Laufende HoTs zaehlen bei Smart Healing nicht mehr als
-- anfliegende Heilung.
-- * v1.4.5.3: Einstellbarer Hintergrund hinter den Balken der Plaketten
-- (Regler "Balkenhintergrund", Standard 0 = wie bisher durchscheinend).
--
-- Ehre wem Ehre gebuehrt: Aufbau, Namensplaketten und Grundidee stammen
-- aus dem Original.
@@ -125,6 +130,7 @@ HealBox = {
ButtonSpacing = 2, -- px zwischen den Buttons (1..20)
RowSpacing = 4, -- px zwischen den Plaketten (1..20)
ManaBar = 1, -- Manabalken im Lebensbalken anzeigen
BarBG = 0, -- Deckkraft des Balkenhintergrunds in Prozent
PowerBar = 0, -- auch Wut, Energie und Fokus im Balken zeigen
HideBlizzParty = 0, -- Blizzards Gruppenfenster verstecken
HealBonus = 1, -- +Heilung der Ausruestung in die Vorhersage rechnen
@@ -153,7 +159,7 @@ HealBox = {
-- feuert ADDON_LOADED fuer uns.
FBADDON_NAME = "Heal Box Vanilla";
FBADDON_FOLDER = "FBHealBox";
HealBoxVersion = "|cFFFFFF00v1.4.5.1|r";
HealBoxVersion = "|cFFFFFF00v1.4.5.3|r";
-- ==========================================================================
-- [ Lokalisierung / Localization ]
@@ -201,11 +207,15 @@ FBLocale["enUS"] = {
SMARTRANK_TIP = "Automatically casts the lowest spell rank that covers the target's missing health (minus incoming heals) plus safety margin.\n\n"
.. "|cFFFFD100Rules:|r\n"
.. "• Direct heals only (HoTs and shields untouched)\n"
.. "• A HoT on the target is not counted as incoming\n"
.. "• Always casts assigned rank below 30 % health\n"
.. "• Never heals more than the assigned rank\n"
.. "• Chain spell switching toggled via 'Smartcross'\n"
.. "• Decisions logged with /fbp debug",
SMART_MARGIN = "Safety margin: |cFFFFFFFF%s %%",
BAR_BG = "Bar background: |cFFFFFFFF%s %%",
BAR_BG_OFF = "clear",
BAR_BG_FULL = "solid",
COOLDOWNS = "Cooldowns on buttons",
COOLDOWNS_TIP = "Shows the cooldown sweep on every button (Nature's Swiftness, Inner Focus, Lay on Hands, shield cooldown). The global cooldown runs as a sweep too, so after every cast you see the short wait run out instead of the icons going dark and bright again. Set FBCD_SHOW_MIN to 2 in the code to leave the global cooldown out.",
AGGRO = "Mark who is attacked",
@@ -349,11 +359,15 @@ FBLocale["deDE"] = {
SMARTRANK_TIP = "Wirkt automatisch den niedrigsten Zauberrang, der das fehlende Leben (abzgl. eingehender Heilung) plus Sicherheitsaufschlag deckt.\n\n"
.. "|cFFFFD100Regeln:|r\n"
.. "• Nur Direktheilung (HoTs und Schilde unberuehrt)\n"
.. "• Laufender HoT zaehlt nicht als anfliegende Heilung\n"
.. "• Unter 30 % Leben immer der belegte Rang\n"
.. "• Nie mehr Heilung als der belegte Rang\n"
.. "• Zauberwechsel in Ketten steuert 'Smartcross'\n"
.. "• Entscheidungen im Chat via /fbp debug",
SMART_MARGIN = "Sicherheitsaufschlag: |cFFFFFFFF%s %%",
BAR_BG = "Balkenhintergrund: |cFFFFFFFF%s %%",
BAR_BG_OFF = "klar",
BAR_BG_FULL = "deckend",
COOLDOWNS = "Cooldowns auf den Buttons",
COOLDOWNS_TIP = "Zeigt die Cooldown-Uhr auf jedem Button (Naturschnelligkeit, Innerer Fokus, Handauflegung, Schild-Cooldown). Auch der globale Cooldown laeuft als Uhr mit, nach jedem Zauber siehst du also die kurze Wartezeit ablaufen, statt dass die Symbole dunkel und wieder hell werden. Wer ihn nicht sehen will, setzt FBCD_SHOW_MIN im Code auf 2.",
AGGRO = "Angegriffenen markieren",
@@ -522,11 +536,15 @@ FBLocale["esES"] = {
SMARTRANK_TIP = "Lanza automáticamente el rango más bajo que cubra la vida faltante (menos curaciones entrantes) más el margen de seguridad.\n\n"
.. "|cFFFFD100Reglas:|r\n"
.. "• Solo curaciones directas (HoTs y escudos intactos)\n"
.. "• Un HoT activo no cuenta como curación entrante\n"
.. "• Siempre el rango asignado bajo 30 % de vida\n"
.. "• Nunca cura más que el rango asignado\n"
.. "• Cambio de hechizo controlado por 'Smartcross'\n"
.. "• Registro de decisiones con /fbp debug",
SMART_MARGIN = "Margen de seguridad: |cFFFFFFFF%s %%",
BAR_BG = "Fondo de la barra: |cFFFFFFFF%s %%",
BAR_BG_OFF = "nítido",
BAR_BG_FULL = "opaco",
COOLDOWNS = "Reutilización en botones",
COOLDOWNS_TIP = "Muestra el barrido de reutilización en cada botón (Rapidez de la naturaleza, Enfoque interno, Imposición de manos, reutilización del escudo). La reutilización global también se muestra como barrido, así ves correr la breve espera tras cada lanzamiento en lugar de que los iconos se oscurezcan y se aclaren. Para omitirla, pon FBCD_SHOW_MIN en 2 en el código.",
AGGRO = "Marcar al atacado",
@@ -661,11 +679,15 @@ FBLocale["frFR"] = {
SMARTRANK_TIP = "Lance automatiquement le rang le plus bas couvrant la vie manquante (moins soins en cours) plus la marge de sécurité.\n\n"
.. "|cFFFFD100Règles :|r\n"
.. "• Soins directs uniquement (HoTs et boucliers intacts)\n"
.. "• Un HoT actif ne compte pas comme soin en cours\n"
.. "• Rang assigné conservé sous 30 % de vie\n"
.. "• Ne soigne jamais plus que le rang assigné\n"
.. "• Changement de sort contrôlé par 'Smartcross'\n"
.. "• Décisions visibles via /fbp debug",
SMART_MARGIN = "Marge de sécurité : |cFFFFFFFF%s %%",
BAR_BG = "Fond de la barre : |cFFFFFFFF%s %%",
BAR_BG_OFF = "clair",
BAR_BG_FULL = "opaque",
COOLDOWNS = "Recharges sur les boutons",
COOLDOWNS_TIP = "Affiche le balayage du temps de recharge sur chaque bouton (Rapidité de la nature, Focalisation intérieure, Imposition des mains, recharge du bouclier). Le temps de recharge global est affiché lui aussi : après chaque incantation vous voyez la courte attente s'écouler au lieu de voir les icônes s'assombrir puis redevenir claires. Pour l'exclure, mettez FBCD_SHOW_MIN à 2 dans le code.",
AGGRO = "Marquer la cible attaquée",
@@ -800,11 +822,15 @@ FBLocale["itIT"] = {
SMARTRANK_TIP = "Lancia automaticamente il rango più basso la cui cura copre la salute mancante (meno cure in arrivo) più il margine di sicurezza.\n\n"
.. "|cFFFFD100Regole:|r\n"
.. "• Solo cure dirette (HoT e scudi non modificati)\n"
.. "• Un HoT attivo non conta come cura in arrivo\n"
.. "• Sotto il 30 % di salute lancia sempre il rango assegnato\n"
.. "• Mai una cura superiore al rango assegnato\n"
.. "• Cambio incantesimo controllato da 'Smartcross'\n"
.. "• Decisioni registrate con /fbp debug",
SMART_MARGIN = "Margine di sicurezza: |cFFFFFFFF%s %%",
BAR_BG = "Sfondo della barra: |cFFFFFFFF%s %%",
BAR_BG_OFF = "limpido",
BAR_BG_FULL = "opaco",
COOLDOWNS = "Recuperi sui pulsanti",
COOLDOWNS_TIP = "Mostra l'animazione del tempo di recupero su ogni pulsante (Rapidità della Natura, Concentrazione Interiore, Imposizione delle Mani, recupero dello scudo). Anche il tempo di recupero globale scorre come animazione: dopo ogni lancio vedi scorrere la breve attesa invece di icone che si scuriscono e si riaccendono. Per escluderlo, imposta FBCD_SHOW_MIN a 2 nel codice.",
AGGRO = "Segnala chi è attaccato",
@@ -960,6 +986,13 @@ FBPOWER_COLORS = {
};
FBMANA_BG_ALPHA = 0.35; -- dunkler Streifen hinter dem Mana (0 = aus)
-- Grundton des Balkenhintergrunds auf den Plaketten. Wie deckend er liegt,
-- entscheidet HealBox.BarBG (0 bis 100 Prozent, Regler im Reiter Allgemein).
-- Bei 0 bleibt es beim alten Bild: Durch den leeren Teil des Lebensbalkens
-- scheint die Spielwelt durch. Wer wenig Kontrast sieht, dreht ihn hoch und
-- bekommt eine ruhige graue Flaeche, auf der das Gruen des Lebens steht.
FBBAR_BG_COLOR = { 0.15, 0.15, 0.15 };
-- Begleiter-Plaketten: Namensfarbe, Einrueckung unter dem Besitzer (die
-- Plakette wird um denselben Betrag schmaler, damit die Buttons buendig
-- bleiben) und ein kleines Pfoten-Icon vor dem Namen.
@@ -1445,6 +1478,7 @@ function FBHealBox_StartUp()
FBHealBox_SyncOptions();
HealBoxAttachMode(HealBox.AttachMode);
FBHealBox_ApplyButtonSpacing();
FBHealBox_ApplyBarBGAll();
FBHealBox_ApplyBlizzParty();
if (MMButton) then MMButton:Show(); end
FBUpdateNames();
@@ -1484,6 +1518,9 @@ function FBHealBox_ApplyDefaults()
if (HealBox.ButtonSpacing == nil) then HealBox.ButtonSpacing = 2; end
if (HealBox.RowSpacing == nil) then HealBox.RowSpacing = 4; end
if (HealBox.ManaBar == nil) then HealBox.ManaBar = 1; end
if (HealBox.BarBG == nil) then HealBox.BarBG = 0; end
if (HealBox.BarBG < 0) then HealBox.BarBG = 0; end
if (HealBox.BarBG > 100) then HealBox.BarBG = 100; end
if (HealBox.PowerBar == nil) then HealBox.PowerBar = 0; end
if (HealBox.HideBlizzParty == nil) then HealBox.HideBlizzParty = 0; end
if (HealBox.HealBonus == nil) then HealBox.HealBonus = 1; end
@@ -1518,6 +1555,7 @@ function FBHealBox_SyncOptions()
if (HealCommCheck) then HealCommCheck:SetChecked(HealBox.HealComm == 1); end
if (ManaBarCheck) then ManaBarCheck:SetChecked(HealBox.ManaBar == 1); end
if (PowerBarCheck) then PowerBarCheck:SetChecked(HealBox.PowerBar == 1); end
if (BarBGSlider) then BarBGSlider:SetValue(HealBox.BarBG or 0); FBUpdateBarBGSliderText(); end
if (HidePartyCheck) then HidePartyCheck:SetChecked(HealBox.HideBlizzParty == 1); end
if (ShowPetsCheck) then ShowPetsCheck:SetChecked(HealBox.ShowPets == 1); end
if (TestModeCheck) then TestModeCheck:SetChecked(FBTestMode); end
@@ -2227,6 +2265,22 @@ function FBHealBox_SetBarStrata(f, strata)
f.ManaBar:SetFrameLevel(4);
end
-- Balkenhintergrund einer Plakette setzen. 0 Prozent heisst: gar keine
-- Textur, damit nichts gezeichnet wird, was man ohnehin nicht sieht.
function FBHealBox_ApplyBarBG(f)
if (not f) or (not f.BarBG) then return; end
local a = (HealBox.BarBG or 0) / 100;
if (a <= 0) then f.BarBG:Hide(); return; end
f.BarBG:SetTexture(FBBAR_BG_COLOR[1], FBBAR_BG_COLOR[2], FBBAR_BG_COLOR[3], a);
f.BarBG:Show();
end
function FBHealBox_ApplyBarBGAll()
for p = 1, FBSlotCount do
FBHealBox_ApplyBarBG(FBPartyFrame[p]);
end
end
-- Alle Balken einer Plakette ein-/ausblenden (Party-Frame-Modus blendet aus)
function FBHealBox_SetPlateVisible(f, visible)
if (not f) or (not f.HealthBar) then return; end
@@ -2442,6 +2496,13 @@ function FBHealBoxCreateFrame(FrameName,ParentFrame,FrameTexture,FrameWidth,Fram
f.IncHealBar:SetStatusBarColor(0.4, 1, 0.4, 0.5);
f.IncHealBar:Show();
-- Fester Hintergrund hinter allen Balken. Er haengt bewusst an der
-- untersten Bar: so liegt er unter Heilvorhersage, Schild, Leben und
-- Mana, und er wird zusammen mit ihnen ein- und ausgeblendet.
f.BarBG = f.IncHealBar:CreateTexture(nil, "BACKGROUND");
f.BarBG:SetAllPoints(f.IncHealBar);
f.BarBG:Hide();
-- Manabalken: FBMANA_BAR_HEIGHT px am unteren Rand des Lebensbalkens,
-- "Balken im Balken". Nur sichtbar bei Einheiten mit Mana.
f.ManaBar = CreateFrame("STATUSBAR", nil, f, "TextStatusBar");
@@ -2686,7 +2747,16 @@ function FBHealBox_SmartRank(castString, unit)
local hp, hpMax = FBUnitHealth(unit);
if (hpMax <= 0) or ((hp / hpMax) <= VeryLowHP) then return castString; end
local name = FBUnitName(unit);
local incoming = FBGetDirectHeal(name) + FBGetHoTHeal(name) + FBGetCommHeal(name);
-- Anfliegende Heilung wird abgezogen, aber nur die, die gleich ankommt:
-- Direktheilungen und ueber HealComm gemeldete Zauber landen in ein bis
-- drei Sekunden. Laufende HoTs zaehlen bewusst nicht mit. Ein Erneuerung
-- verteilt seine Heilung ueber fuenfzehn Sekunden, die volle Summe als
-- gegeben anzunehmen liesse den Fehlbetrag winzig aussehen: Aus einem
-- Heilen Rang 4 wuerde ein Geringes Heilen, obwohl das Ziel jetzt Leben
-- braucht und nicht in einer Viertelminute. Auf dem Balken wird der HoT
-- selbstverstaendlich weiter angezeigt, er geht nur nicht in die
-- Rangwahl ein.
local incoming = FBGetDirectHeal(name) + FBGetCommHeal(name);
local deficit = hpMax - hp - incoming;
if (deficit < 0) then deficit = 0; end
local need = deficit * (1 + (HealBox.SmartMargin or 20) / 100);
@@ -3856,6 +3926,11 @@ function FBHealBox_ApplyLocale()
PowerBarCheck.Text:SetText(FBT("POWERBAR"));
PowerBarCheck.tooltipText = FBT("POWERBAR_TIP");
end
if (BarBGSlider) then
getglobal(BarBGSlider:GetName() .. "Low"):SetText(FBT("BAR_BG_OFF"));
getglobal(BarBGSlider:GetName() .. "High"):SetText(FBT("BAR_BG_FULL"));
FBUpdateBarBGSliderText();
end
FBHealBox_UpdatePartyExclusion();
FBUpdateSmartMarginText();
FBHealBox_UpdateSmartCrossState();
@@ -4255,7 +4330,26 @@ function FBHealBoxCreateAddonOptionFrame()
FBUpdateSpacingSliderText();
FBHealBox_Layout();
end);
-- Deckkraft des Balkenhintergrunds (0..100 %)
BarBGSlider = CreateFrame("Slider", "FBBarBGSlider", tabGeneral, "OptionsSliderTemplate");
BarBGSlider:SetWidth(128);
BarBGSlider:SetHeight(16);
BarBGSlider:SetPoint("TOPLEFT", 260, gy - 50);
BarBGSlider:SetMinMaxValues(0, 100);
BarBGSlider:SetValueStep(5);
BarBGSlider:SetValue(HealBox.BarBG or 0);
BarBGSlider.Text = BarBGSlider:CreateFontString(nil, "BACKGROUND", "GameFontNormal");
BarBGSlider.Text:SetPoint("CENTER", 0, 15);
getglobal(BarBGSlider:GetName() .. "Low"):SetText(FBT("BAR_BG_OFF"));
getglobal(BarBGSlider:GetName() .. "High"):SetText(FBT("BAR_BG_FULL"));
BarBGSlider:SetScript("OnValueChanged", function()
HealBox.BarBG = math.floor(BarBGSlider:GetValue() + 0.5);
FBUpdateBarBGSliderText();
FBHealBox_ApplyBarBGAll();
end);
FBUpdateSpacingSliderText();
FBUpdateBarBGSliderText();
-- [ Schalter ] ----------------------------------------------------------
local cy = gy - 95;
@@ -4598,6 +4692,12 @@ function FBUpdateSmartMarginText()
end
end
function FBUpdateBarBGSliderText()
if (BarBGSlider and BarBGSlider.Text) then
BarBGSlider.Text:SetText(format(FBT("BAR_BG"), math.floor(BarBGSlider:GetValue() + 0.5)));
end
end
function FBUpdateSpacingSliderText()
if (ButtonSpacingSlider and ButtonSpacingSlider.Text) then
ButtonSpacingSlider.Text:SetText(format(FBT("BTN_SPACING"), math.floor(ButtonSpacingSlider:GetValue() + 0.5)));
+2 -2
View File
@@ -1,9 +1,9 @@
## Interface: 11200
## Title: Heal Box Vanilla |cFFFFFF00v1.4.5.1|r
## Title: Heal Box Vanilla |cFFFFFF00v1.4.5.3|r
## Notes: Heal/raid frame addon like Healium, with quick-cast buttons, heal prediction, mana ticker and more.
## Notes-deDE: Heal/Raidframe Addon aehnlich Healium, mit Schnellzugriff Buttons, Heal Prediction und Mana Ticker und mehr.
## Author: Dourd (Argent Dawn EU) | Vanilla-Port & Erweiterung 09/2026: Mquadrat
## Version: 1.4.5.1
## Version: 1.4.5.3
## SavedVariablesPerCharacter: HealBox
## OptionalDeps: SuperWoW
+26 -7
View File
@@ -1,6 +1,6 @@
# Heal Box Vanilla
ADDON DOCUMENTATION · VERSION 1.4.5.1 · World of Warcraft CLIENT 1.12.1
ADDON DOCUMENTATION · VERSION 1.4.5.3 · World of Warcraft CLIENT 1.12.1
Party, pet and self heal display with quick-cast buttons for healers. One name plate with a health bar per group slot, plus one for every pet in the group directly below its owner, and next to it up to ten freely assignable spell buttons. A thin mana bar sits inside the health bar for everyone who actually uses mana. On top of that a complete heal prediction (direct heals, remaining HoT ticks and absorb shields) that corrects itself from the combat log and shares its numbers with other healers in the HealComm format. The interface is available in **English and German**, switchable in the options window.
@@ -10,7 +10,7 @@ Party, pet and self heal display with quick-cast buttons for healers. One name p
<img width="956" height="847" alt="Screenshot 2026-09-05 210241" src="https://github.com/user-attachments/assets/d7508232-eb56-47ef-8f7e-c39ab0c2b434" />
<img width="841" height="1102" alt="grafik" src="https://github.com/user-attachments/assets/6fd08ca5-4a05-4219-a62e-d50d595e53fa" />
<img width="845" height="1105" alt="grafik" src="https://github.com/user-attachments/assets/fef5d825-0c5c-4710-8994-b51e4712ceb2" />
\---
@@ -116,6 +116,8 @@ Up to ten buttons sit next to each plate, each showing its spell's icon. A **lef
**Smart Healing (off by default).** With *Smart Healing* on, a click casts the lowest rank of the assigned spell whose expected heal covers the target's missing health, minus healing already on the way, plus the *Safety margin* (default 20 %). Expected heals come from the learned values of the prediction where available, otherwise from the tooltip average. It never goes above the rank you assigned, applies to direct heals only, and below 30 % health it always casts the assigned rank. **Heal over time spells are never downranked**, whatever the class: Renew, Rejuvenation, Regrowth, Tranquility, Lifebloom, Wild Growth, Riptide and Earth Shield always go out at the rank you assigned. A HoT spreads its healing over many seconds, so the health missing at the moment of the click says nothing about which rank fits, and a downranked HoT keeps ticking too weakly for its whole duration. Mixed spells such as Regrowth count as HoTs as well. Shields and buffs such as Fortitude are likewise cast as assigned, and a spell only qualifies at all if its tooltip describes a heal.
**A running HoT does not count as incoming healing.** Only what lands right away is subtracted: direct heals and spells reported over HealComm, so one to three seconds out. The healing still owed by a ticking Renew stays out of it. Counting it in full would make the deficit look tiny and turn a Heal rank 4 into a Lesser Heal, although the target needs health now and not in a quarter of a minute. The HoT is still shown on the bar, it just does not take part in the rank decision.
**Heal chains (new in 1.4.4.3).** Downranking is not limited to the assigned spell. Within a *heal chain* the spell itself may change, so a click on Greater Heal can go out as Lesser Heal rank 3 when that covers the deficit. The chains hold the single-target direct heals of one class:
|Class|Chain|
@@ -285,6 +287,8 @@ The window has two tabs.
**Default party frames**: instead of the addon's own plates, the buttons attach to Blizzard's default party frames (`PartyMemberFrameN`); pet buttons attach to `PetFrame` and `PartyMemberFrameNPetFrame`. The addon's name plates and bars are hidden; the heal prediction keeps working invisibly.
**Bar background**: how solid the area behind the bars is, 0 to 100 per cent in steps of 5. Default 0, which is the old look: where health is missing, the game world shows through the plate. Turn it up and a quiet dark grey surface (`FBBAR_BG_COLOR`) sits behind the bars, so the green of the health bar stands on a fixed background instead of on grass, sky or stone. At 100 the plate is opaque. Suggested by a user who found the see-through bar hard to read, and it is worth a try for anyone playing on a bright screen or in a cluttered zone.
**Mana bar**: shows or hides the mana strip inside the health bar. On by default.
**Hide Blizzard party frames**: hides `PartyMemberFrame1` to `4` while you are in a group, so only the Heal Box plates remain. Off by default. This and *Default party frames* can never both be on, because the attach mode docks the plates onto exactly those frames; whichever one is ticked greys the other out. Switching it off brings the frames back immediately, and a class the addon does not load for gets them back too.
@@ -469,6 +473,7 @@ Everything lives in the `HealBox` table, saved **per character**:
|`ButtonSpacing`|Gap between the buttons in px (0 to 20)|
|`RowSpacing`|Gap between the plates in px (0 to 20)|
|`ManaBar`|1 = mana strip on, 0 = off|
|`BarBG`|Opacity of the bar background in per cent, 0 to 100. 0 (default) keeps the see-through look|
|`ShowPets`|1 = pet plates on, 0 = off|
|`SpellChoiceR[1..10]`|Cast string per button for right click|
|`RightClick`|1 = right-click spell on, 0 = off (default)|
@@ -506,6 +511,7 @@ Every knob is a global at the top of its own section and can be changed without
|`FBMANA_BAR_HEIGHT`|5|Height of the mana strip in px|
|`FBMANA_BAR_COLOR`|`{0.15, 0.4, 1, 1}`|Colour of the mana strip|
|`FBMANA_BG_ALPHA`|0.35|Dark strip behind missing mana (0 = off)|
|`FBBAR_BG_COLOR`|0.15 · 0.15 · 0.15|Shade of the bar background; how solid it sits is the `BarBG` option|
|`FBPET_NAME_COLOR`|`{0.75, 0.85, 1, 1}`|Name colour on pet plates|
|`FBPET_INDENT`|12|Indent (and width reduction) of pet plates|
|`FBPET_ICON` · `FBPET_ICON_SIZE`|footprint · 12|Paw icon in front of pet names|
@@ -577,6 +583,7 @@ Every knob is a global at the top of its own section and can be changed without
|`FBHealBox_SpellCastSeconds(id)`|Cast time from the tooltip (0 = instant), cached per spellbook slot|
|`FBHealBox_ApplyBlizzParty()` · `FBHealBox_HideBlizzPartyActive()`|Hides or restores Blizzard's party frames, including the lock against the attach mode|
|`FBHealBox_SetPowerColor(bar, cache, ptype)`|Colours a resource bar for mana, rage, focus or energy|
|`FBHealBox_ApplyBarBG(f)` · `FBHealBox_ApplyBarBGAll()`|Sets the background behind a plate's bars from the `BarBG` option|
|`FBPredict_ScanPlayerBuffTimes()`|Reads all of your own buff timers once per frame into a texture-to-seconds map|
|`FBHealBox_ApiFailed()`|Puts range, distance and line of sight back to the protected single call after a sweep threw|
|`FBHealBox_UpperTex(tex)`|Upper-cased texture path, remembered, so `strupper` does not allocate per call|
@@ -737,7 +744,9 @@ Entries that do not exist do no harm: if the spellbook scan does not find them,
* heal prediction for direct heals, remaining HoT ticks and absorb shields, self-correcting from the combat log
* HealComm sync with Puppeteer, pfUI, Luna and others, without any Ace libraries
* English, German, Spanish, French and Italian localization, switchable in game
* 1.4.5.1: mana ticker spark no longer stutters (movement threshold and redraw step), and the global cooldown no longer darkens every button; see CHANGELOG
* 1.4.5.3: adjustable background behind the plate bars, so the game world no longer shows through where health is missing; see CHANGELOG
* 1.4.5.2: a running HoT no longer counts as incoming healing when Smart Healing picks a rank; see CHANGELOG
* 1.4.5.1: mana ticker spark no longer stutters (movement threshold and redraw step), and the global cooldown no longer darkens every button but is shown as a sweep instead (own threshold `FBCD_SHOW_MIN`); see CHANGELOG
* 1.4.5: Blizzard's party frames can be hidden (mutually exclusive with the attach mode), rage, energy and focus in the resource bar, and the equipment healing bonus via ClassicAPI in the prediction, plus a performance pass without functional change (player buffs read once per frame, staggered raid range and line-of-sight sweeps, fewer protected calls, no throwaway strings in the raid health text); see CHANGELOG
* 1.4.4.3: class gate for warriors, rogues and hunters (display stays off, chat hint, `/fbp forceload` to override) and Smart Healing no longer downranks heal over time spells of any class. Smart Healing downranks across spells inside a heal chain (Greater Heal to Lesser Heal, Holy Light to Flash of Light), `/fbp smartcross` turns it off; see CHANGELOG
* 1.4.4.2: 32-step buff icon duration display (replacing the 4-quadrant clock with a 32-stage vertical wipe) and syntax/diagnostic bugfixes; see CHANGELOG
@@ -749,14 +758,14 @@ Entries that do not exist do no harm: if the spellbook scan does not find them,
---
Heal Box Vanilla v1.4.5.1 · original by Dourd, UI Overhauled · ported to Vanilla and extended 09/2026 by Mquadrat
Heal Box Vanilla v1.4.5.3 · original by Dourd, UI Overhauled · ported to Vanilla and extended 09/2026 by Mquadrat
_______________________________________________________________________
GERMAN
# Heal Box Vanilla
ADDON DOKUMENTATION · VERSION 1.4.5.1 · World of Warcraft CLIENT 1.12.1
ADDON DOKUMENTATION · VERSION 1.4.5.3 · World of Warcraft CLIENT 1.12.1
Party-, Begleiter- und Selbst-Heilanzeige mit Schnellzugriff-Buttons für Heiler. Für jeden Gruppenplatz eine Namensplakette mit Lebensbalken, dazu eine für jeden Begleiter in der Gruppe direkt unter seinem Besitzer, daneben bis zu zehn frei belegbare Zauber-Buttons. Ein schmaler Manabalken liegt im Lebensbalken, bei allen, die tatsächlich Mana nutzen. Dazu eine vollständige Heilvorhersage (Direktheilung, HoT-Restticks und Absorb-Schilde), die sich über den Combatlog selbst korrigiert und ihre Werte im HealComm-Format mit anderen Heilern teilt. Die Oberfläche gibt es auf **Deutsch und Englisch**, umschaltbar im Optionsfenster.
@@ -864,6 +873,8 @@ Rechts neben jeder Plakette liegen bis zu zehn Buttons, jeder mit dem Icon seine
**Smart Healing (standardmäßig aus).** Mit *Smart Healing* wirkt ein Klick den niedrigsten Rang des belegten Zaubers, dessen erwartete Heilung das fehlende Leben des Ziels abzüglich schon eingehender Heilung plus *Sicherheitsaufschlag* (Standard 20 %) deckt. Die erwartete Heilung stammt aus den gelernten Werten der Vorhersage, wo vorhanden, sonst aus dem Tooltip-Mittelwert. Nie über dem belegten Rang, nur für Direktheilungen, und unter 30 % Leben immer der belegte Rang. **Zauber mit Heilung über Zeit werden nie abgerangt**, egal welcher Klasse: Erneuerung, Verjüngung, Nachwachsen, Gelassenheit, Lebensblüte, Wildwuchs, Springflut und Erdschild gehen immer im belegten Rang raus. Ein HoT verteilt seine Heilung über viele Sekunden, das im Moment des Klicks fehlende Leben sagt also nichts darüber aus, welcher Rang passt, und ein abgerangter HoT tickt die volle Laufzeit zu schwach. Gemischte Zauber wie Nachwachsen zählen ebenfalls als HoT. Schilde und Buffs wie Seelenstärke gehen genauso wie belegt raus, und ein Zauber kommt überhaupt nur in Frage, wenn sein Tooltip eine Heilung beschreibt.
**Ein laufender HoT zählt nicht als eingehende Heilung.** Abgezogen wird nur, was gleich ankommt: Direktheilungen und über HealComm gemeldete Zauber, also ein bis drei Sekunden. Die offene Restheilung eines tickenden Erneuerung bleibt außen vor. Sie voll anzurechnen ließe den Fehlbetrag winzig aussehen und machte aus einem Heilen Rang 4 ein Geringes Heilen, obwohl das Ziel jetzt Leben braucht und nicht in einer Viertelminute. Auf dem Balken wird der HoT weiterhin angezeigt, er geht nur nicht in die Rangwahl ein.
**Heilketten (neu in 1.4.4.3).** Abgerangt wird nicht nur innerhalb des belegten Zaubers. Innerhalb einer *Heilkette* darf auch der Zauber selbst wechseln, ein Klick auf Große Heilung kann also als Geringes Heilen Rang 3 rausgehen, wenn das den Fehlbetrag deckt. Die Ketten enthalten die Einzelziel-Direktheilungen einer Klasse:
|Klasse|Kette|
@@ -1033,6 +1044,8 @@ Das Fenster hat zwei Reiter.
**Standard-Gruppenfenster**: statt eigener Plaketten hängen die Buttons an Blizzards Standard-Gruppenfenstern (`PartyMemberFrameN`); die Pet-Buttons an `PetFrame` bzw. `PartyMemberFrameNPetFrame`. Die eigenen Namensplaketten und Balken werden dabei ausgeblendet; die Heilvorhersage arbeitet unsichtbar weiter.
**Balkenhintergrund**: wie deckend die Fläche hinter den Balken liegt, 0 bis 100 Prozent in Fünferschritten. Standard 0, also das bisherige Bild: Wo Leben fehlt, scheint die Spielwelt durch die Plakette. Hochgedreht liegt eine ruhige dunkelgraue Fläche hinter den Balken (`FBBAR_BG_COLOR`), das Grün des Lebensbalkens steht dann auf festem Grund statt auf Gras, Himmel oder Stein. Bei 100 ist die Plakette undurchsichtig. Angeregt von einem Nutzer, dem der durchscheinende Balken schlecht lesbar war, und einen Versuch wert für alle mit hellem Bildschirm oder unruhiger Umgebung.
**Manabalken**: Manastreifen im Lebensbalken an/aus. Standardmäßig an.
**Blizzard-Gruppenfenster aus**: versteckt `PartyMemberFrame1` bis `4`, solange du in einer Gruppe bist, sodass nur die Plaketten der Heal Box übrig bleiben. Standardmäßig aus. Diese Option und *Standard-Gruppenfenster* können nie beide an sein, weil der Anheftmodus die Plaketten genau an diese Frames hängt; was angehakt ist, graut das andere aus. Ausschalten holt die Frames sofort zurück, und eine Klasse, für die das Addon nicht lädt, bekommt sie ebenfalls zurück.
@@ -1215,6 +1228,7 @@ Alles liegt in der Tabelle `HealBox`, gespeichert **pro Charakter**:
|`ButtonSpacing`|Abstand der Buttons in px (0 bis 20)|
|`RowSpacing`|Abstand der Plaketten in px (0 bis 20)|
|`ManaBar`|1 = Manastreifen an, 0 = aus|
|`BarBG`|Deckkraft des Balkenhintergrunds in Prozent, 0 bis 100. 0 (Standard) behält das durchscheinende Bild|
|`ShowPets`|1 = Pet-Plaketten an, 0 = aus|
|`SpellChoiceR[1..10]`|Cast-String je Button für Rechtsklick|
|`RightClick`|1 = Rechtsklick-Zauber an, 0 = aus (Standard)|
@@ -1250,6 +1264,7 @@ Alle Stellschrauben stehen als Globals oben in ihrem jeweiligen Abschnitt und la
|`FBMANA_BAR_HEIGHT`|5|Höhe des Manastreifens in px|
|`FBMANA_BAR_COLOR`|`{0.15, 0.4, 1, 1}`|Farbe des Manastreifens|
|`FBMANA_BG_ALPHA`|0.35|Dunkler Streifen hinter fehlendem Mana (0 = aus)|
|`FBBAR_BG_COLOR`|0.15 · 0.15 · 0.15|Grundton des Balkenhintergrunds; wie deckend er liegt, regelt die Option `BarBG`|
|`FBPET_NAME_COLOR`|`{0.75, 0.85, 1, 1}`|Namensfarbe auf Pet-Plaketten|
|`FBPET_INDENT`|12|Einrückung (und Verschmälerung) der Pet-Plaketten|
|`FBPET_ICON` · `FBPET_ICON_SIZE`|Fußabdruck · 12|Pfoten-Icon vor Pet-Namen|
@@ -1320,6 +1335,7 @@ Alle Stellschrauben stehen als Globals oben in ihrem jeweiligen Abschnitt und la
|`FBHealBox_SpellCastSeconds(id)`|Zauberzeit aus dem Tooltip (0 = Instant), je Zauberbuchplatz gemerkt|
|`FBHealBox_ApplyBlizzParty()` · `FBHealBox_HideBlizzPartyActive()`|Versteckt Blizzards Gruppenfenster oder gibt sie zurück, samt Sperre gegen den Anheftmodus|
|`FBHealBox_SetPowerColor(bar, cache, ptype)`|Färbt einen Ressourcenbalken für Mana, Wut, Fokus oder Energie|
|`FBHealBox_ApplyBarBG(f)` · `FBHealBox_ApplyBarBGAll()`|Setzt den Hintergrund hinter den Balken einer Plakette nach der Option `BarBG`|
|`FBPredict_ScanPlayerBuffTimes()`|Liest alle eigenen Bufflaufzeiten einmal je Frame in eine Tabelle Textur nach Sekunden|
|`FBHealBox_ApiFailed()`|Stellt Reichweite, Abstand und Sichtlinie auf den geschützten Einzelaufruf zurück, wenn ein Durchlauf geworfen hat|
|`FBHealBox_UpperTex(tex)`|Groß geschriebener Texturpfad, gemerkt, damit `strupper` nicht je Aufruf zuteilt|
@@ -1469,7 +1485,9 @@ Nicht vorhandene Einträge stören nicht: Findet der Zauberbuch-Scan sie nicht,
* Heilvorhersage für Direktheilung, HoT-Restticks und Absorb-Schilde, selbstkorrigierend über den Combatlog
* HealComm-Sync mit Puppeteer, pfUI, Luna und Co., ohne Ace-Bibliotheken
* Lokalisierung Deutsch, Englisch, Spanisch, Französisch und Italienisch, im laufenden Spiel umschaltbar
* 1.4.5.1: Ruckeln des Manafunkens behoben (Bewegungsschwelle und Zeichentakt) und der globale Cooldown dunkelt nicht mehr alle Buttons ab; siehe CHANGELOG
* 1.4.5.3: Einstellbarer Hintergrund hinter den Balken der Plaketten, damit die Spielwelt nicht mehr durch fehlendes Leben scheint; siehe CHANGELOG
* 1.4.5.2: Ein laufender HoT zählt bei der Rangwahl von Smart Healing nicht mehr als anfliegende Heilung; siehe CHANGELOG
* 1.4.5.1: Ruckeln des Manafunkens behoben (Bewegungsschwelle und Zeichentakt), der globale Cooldown dunkelt nicht mehr alle Buttons ab und läuft stattdessen als Uhr mit (eigene Schwelle `FBCD_SHOW_MIN`); siehe CHANGELOG
* 1.4.5: Blizzards Gruppenfenster ausblendbar (schließt sich mit dem Anheftmodus gegenseitig aus), Wut, Energie und Fokus im Ressourcenbalken, Heilbonus der Ausrüstung über ClassicAPI in der Vorhersage, dazu ein Leistungsdurchgang ohne Funktionsänderung (Spielerbuffs einmal je Frame, gestaffelte Reichweiten- und Sichtlinienprüfung im Raid, weniger geschützte Aufrufe, keine Wegwerf-Strings im Raid-HP-Text); siehe CHANGELOG
* 1.4.4.3: Klassensperre für Krieger, Schurke und Jäger (Anzeige bleibt aus, Hinweis im Chat, Freischaltung mit `/fbp forceload`) und Smart Healing rangt HoTs aller Klassen nicht mehr ab. Smart Healing rangt innerhalb einer Heilkette auch über Zaubergrenzen ab (Große Heilung zu Geringem Heilen, Heiliges Licht zu Blitz des Lichts), `/fbp smartcross` schaltet es aus; siehe CHANGELOG
* 1.4.4.2: 32-Stufen-Ablaufanzeige für Buff-Icons (ersetzt die 4-Quadranten-Uhr durch 32 vertikale Stufen) sowie Syntax- und Diagnose-Korrekturen; siehe CHANGELOG
@@ -1481,7 +1499,7 @@ Nicht vorhandene Einträge stören nicht: Findet der Zauberbuch-Scan sie nicht,
---
Heal Box Vanilla v1.4.5.1 · Original von Dourd, UI Overhauled · Vanilla-Portierung und Erweiterung 09/2026 von Mquadrat
Heal Box Vanilla v1.4.5.3 · Original von Dourd, UI Overhauled · Vanilla-Portierung und Erweiterung 09/2026 von Mquadrat
---
@@ -1492,3 +1510,4 @@ Heal Box Vanilla v1.4.5.1 · Original von Dourd, UI Overhauled · Vanilla-Portie
**Deutsch:** World of Warcraft Vanilla 1.12.1 Heiler-Addon, Classic WoW Heil-Addon, Heilfenster mit Klick-Buttons, Healium-Alternative für Vanilla, HealComm-kompatibel, Heilvorhersage und eingehende Heilung, Absorb-Schild-Anzeige, HoT-Timer, Machtwort: Schild und Geschwächte Seele, Buff-Timer als Uhr-Icons, Seelenstärke nachbuffen, Dispel-Anzeige, Gruppen- und Begleiterfenster, kompakte Raidframes für 20er und 40er Schlachtzüge, Raid-Raster für Heiler, Mana-Ticker und Fünf-Sekunden-Regel, Regenerations-Tick-Balken, automatisches Abrangen, Smart Healing, Smart Damage, Angriffsziel-Markierung, Sichtlinien-Anzeige, Reichweiten-Fading, Klassenfarben, SuperWoW, UnitXP, MobHealth3 und MobInfo-2, läuft auf Turtle WoW und anderen 1.12-Privatservern, Priester Druide Paladin Schamane Heiler-UI, Lua 5.0 Addon, Deutsch Englisch Spanisch Französisch Italienisch.
#WoWVanilla #Vanilla112 #WoW1121 #ClassicWoW #TurtleWoW #WoWAddon #VanillaAddon #HealerAddon #HealingAddon #Healium #HealComm #HealPrediction #RaidFrames #PartyFrames #UnitFrames #ClickCasting #ManaTicker #FiveSecondRule #Downranking #SmartHealing #SmartDamage #BuffTimer #HoTTracker #DispelTracker #Priest #Druid #Paladin #Shaman #SuperWoW #UnitXP #MobHealth #Lua50 #HealBoxVanilla