Added a native Action Bar Hovercasting (Mouseover) engine. You can now cast spells on hovered targets using action bar keybinds without losing your current target. Togglable in Options -> General.
Added Fear Ward to the global HoT tracker, which will display the icon directly on the unit frame.
Fixed Shaman weapon buff tracking (e.g., Rockbiter) failing due to spell ranks in tooltips.
Fixed missing health bar skin textures by ensuring `.tga` paths are explicitly resolved.
ixed division-by-zero math errors during UI scaling that caused the addon to crash.

Signed-off-by: Bluewhale1337 <295648290+Bluewhale1337@users.noreply.github.com>
This commit is contained in:
Bluewhale1337
2026-06-23 22:48:40 +02:00
committed by GitHub
parent 37635c665e
commit 913ab315b0
10 changed files with 186 additions and 153 deletions
+45 -35
View File
@@ -227,7 +227,7 @@ function HealBot_GetSpellName(id)
if (not subSpellName or subSpellName=="") then if (not subSpellName or subSpellName=="") then
return spellName; return spellName;
end end
return spellName .. "(" .. subSpellName .. ")"; return spellName .. " (" .. subSpellName .. ")";
end end
function HealBot_GetSpellId(spell) function HealBot_GetSpellId(spell)
@@ -938,43 +938,11 @@ HealBot_MissingBuffs = {}
function HealBot_CheckShamanWeaponBuff(spellName) function HealBot_CheckShamanWeaponBuff(spellName)
local hasMainHandEnchant, _, _, hasOffHandEnchant = GetWeaponEnchantInfo() local hasMainHandEnchant, _, _, hasOffHandEnchant = GetWeaponEnchantInfo()
if not (hasMainHandEnchant or hasOffHandEnchant) then return false end
local baseName = string.gsub(spellName, " Weapon", "") if hasMainHandEnchant or hasOffHandEnchant then
return true
HealBot_ScanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
if hasMainHandEnchant then
HealBot_ScanTooltip:ClearLines()
HealBot_ScanTooltip:SetInventoryItem("player", 16)
local numLines = HealBot_ScanTooltip:NumLines()
for i = 1, numLines do
local line = getglobal("HealBot_ScanTooltipTextLeft"..i)
if line and line:GetText() then
if string.find(line:GetText(), baseName) then
HealBot_ScanTooltip:Hide()
return true
end
end
end
end end
if hasOffHandEnchant then
HealBot_ScanTooltip:ClearLines()
HealBot_ScanTooltip:SetInventoryItem("player", 17)
local numLines = HealBot_ScanTooltip:NumLines()
for i = 1, numLines do
local line = getglobal("HealBot_ScanTooltipTextLeft"..i)
if line and line:GetText() then
if string.find(line:GetText(), baseName) then
HealBot_ScanTooltip:Hide()
return true
end
end
end
end
HealBot_ScanTooltip:Hide()
return false return false
end end
@@ -1069,6 +1037,7 @@ function HealBot_OnEvent_UnitAura(this,unit)
["Interface\\Icons\\Spell_Nature_ResistNature"] = true, ["Interface\\Icons\\Spell_Nature_ResistNature"] = true,
["Interface\\Icons\\Spell_Holy_PowerWordShield"] = true, ["Interface\\Icons\\Spell_Holy_PowerWordShield"] = true,
["Interface\\Icons\\Spell_Holy_SealOfProtection"] = true, ["Interface\\Icons\\Spell_Holy_SealOfProtection"] = true,
["Interface\\Icons\\Spell_Holy_Excorcism"] = true,
} }
local i = 1; local i = 1;
@@ -1579,3 +1548,44 @@ function HealBot_Range_Check(unit, range)
return return_val; return return_val;
end end
--------------------------------------------------------------------------------
-- Native Action Bar Hovercasting (Mouseover Hook)
--------------------------------------------------------------------------------
do
local pass = function() end
local orig = UseAction
function UseAction(slot, checkCursor, onSelf)
if HealBot_Config.ActionMouseover == 1 then
local mouseover = HealBot_Action_TooltipUnit
if mouseover and mouseover ~= 'target' then
local _PlaySound = PlaySound
local target = UnitName("target")
PlaySound = pass
ClearTarget()
PlaySound = _PlaySound
do
local autoSelfCast = GetCVar("autoSelfCast")
SetCVar("autoSelfCast", "0") -- Ensure disabled
orig(slot, checkCursor, onSelf)
if autoSelfCast then
SetCVar("autoSelfCast", autoSelfCast)
end
end
SpellTargetUnit(mouseover)
if target then
PlaySound = pass
TargetLastTarget()
PlaySound = _PlaySound
end
return
end
end
orig(slot, checkCursor, onSelf)
end
end
+1 -1
View File
@@ -1,6 +1,6 @@
## Interface: 11200 ## Interface: 11200
## Title: HealBotBlue ## Title: HealBotBlue
## Version: 1.0 ## Version: 1.1
## Author: Bluewhale ## Author: Bluewhale
## Notes: Adds panel with skinable bars for healing and decursive ## Notes: Adds panel with skinable bars for healing and decursive
## SavedVariables: HealBot_Config ## SavedVariables: HealBot_Config
+16 -13
View File
@@ -143,7 +143,8 @@ function HealBot_Action_EnableButton(button)
local sb=HealBot_Config.btextenabledcolb[HealBot_Config.Current_Skin]; local sb=HealBot_Config.btextenabledcolb[HealBot_Config.Current_Skin];
local sa=HealBot_Config.btextenabledcola[HealBot_Config.Current_Skin]; local sa=HealBot_Config.btextenabledcola[HealBot_Config.Current_Skin];
local r,g,b,a = HealBot_HealthColor(button.unit,hlth,maxhlth) local r,g,b,a = HealBot_HealthColor(button.unit,hlth,maxhlth)
local btextheight=HealBot_Config.btextheight[HealBot_Config.Current_Skin] local btextheight=HealBot_Config.btextheight[HealBot_Config.Current_Skin] or 10;
if btextheight == 0 then btextheight = 10 end
local bwidth = HealBot_Config.bwidth[HealBot_Config.Current_Skin] local bwidth = HealBot_Config.bwidth[HealBot_Config.Current_Skin]
local textlen = floor(5+(((bwidth*1.8)/btextheight)-(btextheight/2))) local textlen = floor(5+(((bwidth*1.8)/btextheight)-(btextheight/2)))
@@ -248,14 +249,14 @@ end
function HealBot_Action_ResetSkin() function HealBot_Action_ResetSkin()
HealBot_Action_PartyChanged() HealBot_Action_PartyChanged()
if HealBot_Options:IsVisible() then if HealBot_Options:IsVisible() then
HealBot_DiseaseColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_DiseaseColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_MagicColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_MagicColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_PoisonColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_PoisonColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_CurseColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_CurseColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_EnTextColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_EnTextColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_EnTextColorpickin:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_EnTextColorpickin:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_DisTextColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_DisTextColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_DebTextColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]); HealBot_DebTextColorpick:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..HealBot_Config.btexture[HealBot_Config.Current_Skin]..".tga");
HealBot_SetSkinColours() HealBot_SetSkinColours()
end end
end end
@@ -705,13 +706,13 @@ if not HealBot_IsFighting then
local bar2 = HealBot_Action_HealthBar2(button); local bar2 = HealBot_Action_HealthBar2(button);
bar.txt = getglobal(bar:GetName().."_text"); bar.txt = getglobal(bar:GetName().."_text");
bar:SetHeight(bheight); bar:SetHeight(bheight);
bar:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..btexture); bar:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..btexture..".tga");
bar.txt:SetTextHeight(btextheight); bar.txt:SetTextHeight(btextheight);
local barScale = bar:GetScale(); local barScale = bar:GetScale();
bar:SetScale(barScale + 0.01); bar:SetScale(barScale + 0.01);
bar:SetScale(barScale); bar:SetScale(barScale);
bar2:SetHeight(bheight); bar2:SetHeight(bheight);
bar2:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..btexture); bar2:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..btexture..".tga");
end); end);
if MaxOffsetY<OffsetY then MaxOffsetY = OffsetY; end if MaxOffsetY<OffsetY then MaxOffsetY = OffsetY; end
@@ -728,12 +729,14 @@ if not HealBot_IsFighting then
HealBot_Action_AbortButton:Hide(); HealBot_Action_AbortButton:Hide();
else else
local bar = HealBot_Action_HealthBar(HealBot_Action_AbortButton); local bar = HealBot_Action_HealthBar(HealBot_Action_AbortButton);
local width=(bwidth-12)+(OffsetX/(6-(abortsize/3))); local denom = 6-(abortsize/3)
if denom == 0 then denom = 1 end
local width=(bwidth-12)+(OffsetX/denom);
bar.txt = getglobal(bar:GetName().."_text"); bar.txt = getglobal(bar:GetName().."_text");
bar.txt:SetTextColor(sr,sg,sb,sa); bar.txt:SetTextColor(sr,sg,sb,sa);
bar.txt:SetText(HEALBOT_ACTION_ABORT); bar.txt:SetText(HEALBOT_ACTION_ABORT);
bar:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..btexture); bar:SetStatusBarTexture("Interface\\AddOns\\HealBotBlue\\images\\bar"..btexture..".tga");
bar:SetMinMaxValues(0,100); bar:SetMinMaxValues(0,100);
bar:SetValue(100); bar:SetValue(100);
bar:ClearAllPoints(); bar:ClearAllPoints();
+13 -11
View File
@@ -98,17 +98,17 @@ HEALBOT_MAGIC = "Magie";
HEALBOT_CURSE = "Fluch"; HEALBOT_CURSE = "Fluch";
HEALBOT_POISON = "Gift"; HEALBOT_POISON = "Gift";
HEALBOT_RANK_1 = "(Rang 1)"; HEALBOT_RANK_1 = " (Rang 1)";
HEALBOT_RANK_2 = "(Rang 2)"; HEALBOT_RANK_2 = " (Rang 2)";
HEALBOT_RANK_3 = "(Rang 3)"; HEALBOT_RANK_3 = " (Rang 3)";
HEALBOT_RANK_4 = "(Rang 4)"; HEALBOT_RANK_4 = " (Rang 4)";
HEALBOT_RANK_5 = "(Rang 5)"; HEALBOT_RANK_5 = " (Rang 5)";
HEALBOT_RANK_6 = "(Rang 6)"; HEALBOT_RANK_6 = " (Rang 6)";
HEALBOT_RANK_7 = "(Rang 7)"; HEALBOT_RANK_7 = " (Rang 7)";
HEALBOT_RANK_8 = "(Rang 8)"; HEALBOT_RANK_8 = " (Rang 8)";
HEALBOT_RANK_9 = "(Rang 9)"; HEALBOT_RANK_9 = " (Rang 9)";
HEALBOT_RANK_10 = "(Rang 10)"; HEALBOT_RANK_10 = " (Rang 10)";
HEALBOT_RANK_11 = "(Rang 11)"; HEALBOT_RANK_11 = " (Rang 11)";
HEALBOT_LIBRARY_INCHEAL = "Erh\195\182ht durch Zauber und Effekte verursachte Heilung um bis zu (%d+)%."; HEALBOT_LIBRARY_INCHEAL = "Erh\195\182ht durch Zauber und Effekte verursachte Heilung um bis zu (%d+)%.";
HEALBOT_LIBRARY_INCDAMHEAL = "Erh\195\182ht durch Zauber und magische Effekte zugef\195\188gten Schaden und Heilung um bis zu (%d+)%."; HEALBOT_LIBRARY_INCDAMHEAL = "Erh\195\182ht durch Zauber und magische Effekte zugef\195\188gten Schaden und Heilung um bis zu (%d+)%.";
@@ -149,6 +149,7 @@ HEALBOT_BUFF_POWER_WORD_SHIELD = "Interface\\Icons\\Spell_Holy_PowerWordShield
HEALBOT_BUFF_REJUVENATION = "Interface\\Icons\\Spell_Nature_Rejuvenation"; HEALBOT_BUFF_REJUVENATION = "Interface\\Icons\\Spell_Nature_Rejuvenation";
HEALBOT_BUFF_REGROWTH = "Interface\\Icons\\Spell_Nature_ResistNature"; HEALBOT_BUFF_REGROWTH = "Interface\\Icons\\Spell_Nature_ResistNature";
HEALBOT_BUFF_RENEW = "Interface\\Icons\\Spell_Holy_Renew"; HEALBOT_BUFF_RENEW = "Interface\\Icons\\Spell_Holy_Renew";
HEALBOT_BUFF_FEAR_WARD = "Interface\\Icons\\Spell_Holy_Excorcism";
HEALBOT_DEBUFF_WEAKENED_SOUL = "Interface\\Icons\\Spell_Holy_AshesToAshes"; HEALBOT_DEBUFF_WEAKENED_SOUL = "Interface\\Icons\\Spell_Holy_AshesToAshes";
HEALBOT_DEBUFF_RECENTLY_BANDAGED = "Interface\\Icons\\INV_Misc_Bandage_08"; HEALBOT_DEBUFF_RECENTLY_BANDAGED = "Interface\\Icons\\INV_Misc_Bandage_08";
@@ -349,3 +350,4 @@ end
+14 -12
View File
@@ -1,4 +1,4 @@
HEALBOT_VERSION = "1.0"; HEALBOT_VERSION = "1.1";
------------- -------------
-- ENGLISH -- -- ENGLISH --
@@ -116,17 +116,17 @@ HEALBOT_MAGIC_en = "Magic"; -- Do NOT localize this value.
HEALBOT_CURSE_en = "Curse"; -- Do NOT localize this value. HEALBOT_CURSE_en = "Curse"; -- Do NOT localize this value.
HEALBOT_POISON_en = "Poison"; -- Do NOT localize this value. HEALBOT_POISON_en = "Poison"; -- Do NOT localize this value.
HEALBOT_RANK_1 = "(Rank 1)"; HEALBOT_RANK_1 = " (Rank 1)";
HEALBOT_RANK_2 = "(Rank 2)"; HEALBOT_RANK_2 = " (Rank 2)";
HEALBOT_RANK_3 = "(Rank 3)"; HEALBOT_RANK_3 = " (Rank 3)";
HEALBOT_RANK_4 = "(Rank 4)"; HEALBOT_RANK_4 = " (Rank 4)";
HEALBOT_RANK_5 = "(Rank 5)"; HEALBOT_RANK_5 = " (Rank 5)";
HEALBOT_RANK_6 = "(Rank 6)"; HEALBOT_RANK_6 = " (Rank 6)";
HEALBOT_RANK_7 = "(Rank 7)"; HEALBOT_RANK_7 = " (Rank 7)";
HEALBOT_RANK_8 = "(Rank 8)"; HEALBOT_RANK_8 = " (Rank 8)";
HEALBOT_RANK_9 = "(Rank 9)"; HEALBOT_RANK_9 = " (Rank 9)";
HEALBOT_RANK_10 = "(Rank 10)"; HEALBOT_RANK_10 = " (Rank 10)";
HEALBOT_RANK_11 = "(Rank 11)"; HEALBOT_RANK_11 = " (Rank 11)";
HEALBOT_LIBRARY_INCHEAL = "Increases healing done by spells and effects by up to (%d+)%."; HEALBOT_LIBRARY_INCHEAL = "Increases healing done by spells and effects by up to (%d+)%.";
HEALBOT_LIBRARY_INCDAMHEAL = "Increases damage and healing done by magical spells and effects by up to (%d+)%."; HEALBOT_LIBRARY_INCDAMHEAL = "Increases damage and healing done by magical spells and effects by up to (%d+)%.";
@@ -168,6 +168,7 @@ HEALBOT_BUFF_POWER_WORD_SHIELD = "Interface\\Icons\\Spell_Holy_PowerWordShield
HEALBOT_BUFF_REJUVENATION = "Interface\\Icons\\Spell_Nature_Rejuvenation"; HEALBOT_BUFF_REJUVENATION = "Interface\\Icons\\Spell_Nature_Rejuvenation";
HEALBOT_BUFF_REGROWTH = "Interface\\Icons\\Spell_Nature_ResistNature"; HEALBOT_BUFF_REGROWTH = "Interface\\Icons\\Spell_Nature_ResistNature";
HEALBOT_BUFF_RENEW = "Interface\\Icons\\Spell_Holy_Renew"; HEALBOT_BUFF_RENEW = "Interface\\Icons\\Spell_Holy_Renew";
HEALBOT_BUFF_FEAR_WARD = "Interface\\Icons\\Spell_Holy_Excorcism";
HEALBOT_DEBUFF_WEAKENED_SOUL = "Interface\\Icons\\Spell_Holy_AshesToAshes"; HEALBOT_DEBUFF_WEAKENED_SOUL = "Interface\\Icons\\Spell_Holy_AshesToAshes";
HEALBOT_DEBUFF_RECENTLY_BANDAGED = "Interface\\Icons\\INV_Misc_Bandage_08"; HEALBOT_DEBUFF_RECENTLY_BANDAGED = "Interface\\Icons\\INV_Misc_Bandage_08";
@@ -383,3 +384,4 @@ HEALBOT_WORDS_FOR = "for";
+12 -11
View File
@@ -97,17 +97,17 @@ HEALBOT_MAGIC = "Magie";
HEALBOT_CURSE = "Mal\195\169diction"; HEALBOT_CURSE = "Mal\195\169diction";
HEALBOT_POISON = "Poison"; HEALBOT_POISON = "Poison";
HEALBOT_RANK_1 = "(Rang 1)"; HEALBOT_RANK_1 = " (Rang 1)";
HEALBOT_RANK_2 = "(Rang 2)"; HEALBOT_RANK_2 = " (Rang 2)";
HEALBOT_RANK_3 = "(Rang 3)"; HEALBOT_RANK_3 = " (Rang 3)";
HEALBOT_RANK_4 = "(Rang 4)"; HEALBOT_RANK_4 = " (Rang 4)";
HEALBOT_RANK_5 = "(Rang 5)"; HEALBOT_RANK_5 = " (Rang 5)";
HEALBOT_RANK_6 = "(Rang 6)"; HEALBOT_RANK_6 = " (Rang 6)";
HEALBOT_RANK_7 = "(Rang 7)"; HEALBOT_RANK_7 = " (Rang 7)";
HEALBOT_RANK_8 = "(Rang 8)"; HEALBOT_RANK_8 = " (Rang 8)";
HEALBOT_RANK_9 = "(Rang 9)"; HEALBOT_RANK_9 = " (Rang 9)";
HEALBOT_RANK_10 = "(Rang 10)"; HEALBOT_RANK_10 = " (Rang 10)";
HEALBOT_RANK_11 = "(Rang 11)"; HEALBOT_RANK_11 = " (Rang 11)";
HEALBOT_LIBRARY_INCHEAL = "Increases healing done by spells and effects by up to (%d+)%."; -- *************** needs French translation *************** HEALBOT_LIBRARY_INCHEAL = "Increases healing done by spells and effects by up to (%d+)%."; -- *************** needs French translation ***************
HEALBOT_LIBRARY_INCDAMHEAL = "Increases damage and healing done by magical spells and effects by up to (%d+)%."; -- *************** needs French translation *************** HEALBOT_LIBRARY_INCDAMHEAL = "Increases damage and healing done by magical spells and effects by up to (%d+)%."; -- *************** needs French translation ***************
@@ -331,3 +331,4 @@ end
+12 -11
View File
@@ -82,17 +82,17 @@ HEALBOT_GREATER_BLESSING_OF_SALVATION = "상급 구원의 축복";
HEALBOT_CURSE = "저주"; HEALBOT_CURSE = "저주";
HEALBOT_POISON = ""; HEALBOT_POISON = "";
HEALBOT_RANK_1 = "(1 레벨)"; HEALBOT_RANK_1 = " (1 레벨)";
HEALBOT_RANK_2 = "(2 레벨)"; HEALBOT_RANK_2 = " (2 레벨)";
HEALBOT_RANK_3 = "(3 레벨)"; HEALBOT_RANK_3 = " (3 레벨)";
HEALBOT_RANK_4 = "(4 레벨)"; HEALBOT_RANK_4 = " (4 레벨)";
HEALBOT_RANK_5 = "(5 레벨)"; HEALBOT_RANK_5 = " (5 레벨)";
HEALBOT_RANK_6 = "(6 레벨)"; HEALBOT_RANK_6 = " (6 레벨)";
HEALBOT_RANK_7 = "(7 레벨)"; HEALBOT_RANK_7 = " (7 레벨)";
HEALBOT_RANK_8 = "(8 레벨)"; HEALBOT_RANK_8 = " (8 레벨)";
HEALBOT_RANK_9 = "(9 레벨)"; HEALBOT_RANK_9 = " (9 레벨)";
HEALBOT_RANK_10 = "(10 레벨)"; HEALBOT_RANK_10 = " (10 레벨)";
HEALBOT_RANK_11 = "(11 레벨)"; HEALBOT_RANK_11 = " (11 레벨)";
HEALBOT_LIBRARY_INCHEAL = "모든 주문 및 효과에 의한 치유량이 최대 (%d+)만큼 증가합니다%."; HEALBOT_LIBRARY_INCHEAL = "모든 주문 및 효과에 의한 치유량이 최대 (%d+)만큼 증가합니다%.";
HEALBOT_LIBRARY_INCDAMHEAL = "모든 주문 및 효과에 의한 피해와 치유량이 최대 (%d+)만큼 증가합니다%."; HEALBOT_LIBRARY_INCDAMHEAL = "모든 주문 및 효과에 의한 피해와 치유량이 최대 (%d+)만큼 증가합니다%.";
@@ -326,3 +326,4 @@ end
+11
View File
@@ -342,6 +342,14 @@ function HealBot_Options_PanelSounds_OnClick(this)
HealBot_Config.PanelSounds = this:GetChecked() or 0; HealBot_Config.PanelSounds = this:GetChecked() or 0;
end end
function HealBot_Options_ActionMouseover_OnLoad(this, text)
getglobal(this:GetName().."Text"):SetText(text);
end
function HealBot_Options_ActionMouseover_OnClick(this)
HealBot_Config.ActionMouseover = this:GetChecked() or 0;
end
function HealBot_Options_ActionLocked_OnLoad(this) function HealBot_Options_ActionLocked_OnLoad(this)
getglobal(this:GetName().."Text"):SetText(HEALBOT_OPTIONS_ACTIONLOCKED); getglobal(this:GetName().."Text"):SetText(HEALBOT_OPTIONS_ACTIONLOCKED);
@@ -1380,6 +1388,9 @@ function HealBot_Options_OnShow(this)
HealBot_Options_AlertLevel:SetValue(HealBot_Config.AlertLevel); HealBot_Options_AlertLevel:SetValue(HealBot_Config.AlertLevel);
HealBot_Options_AutoShow:SetChecked(HealBot_Config.AutoClose); HealBot_Options_AutoShow:SetChecked(HealBot_Config.AutoClose);
HealBot_Options_PanelSounds:SetChecked(HealBot_Config.PanelSounds); HealBot_Options_PanelSounds:SetChecked(HealBot_Config.PanelSounds);
if HealBot_Config.ActionMouseover == nil then HealBot_Config.ActionMouseover = 1; end
HealBot_Options_ActionMouseover:SetChecked(HealBot_Config.ActionMouseover);
HealBot_Options_GroupHeals:SetChecked(HealBot_Config.GroupHeals); HealBot_Options_GroupHeals:SetChecked(HealBot_Config.GroupHeals);
if CT_RA_MainTanks then if CT_RA_MainTanks then
HealBot_Options_TankHeals:SetChecked(HealBot_Config.TankHeals); HealBot_Options_TankHeals:SetChecked(HealBot_Config.TankHeals);
+14
View File
@@ -264,10 +264,24 @@
<OnClick>HealBot_Options_PanelSounds_OnClick(this)</OnClick> <OnClick>HealBot_Options_PanelSounds_OnClick(this)</OnClick>
</Scripts> </Scripts>
</CheckButton> </CheckButton>
<CheckButton name="HealBot_Options_ActionMouseover" inherits="OptionsCheckButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_PanelSounds" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="5" />
</Offset>
</Anchor>
</Anchors>
<Scripts>
<OnLoad>HealBot_Options_ActionMouseover_OnLoad(this,"Enable Action Bar Mouseover")</OnLoad>
<OnClick>HealBot_Options_ActionMouseover_OnClick(this)</OnClick>
</Scripts>
</CheckButton>
</Frames> </Frames>
</Frame> </Frame>
<CheckButton name="HealBot_Options_HideOptions" inherits="OptionsCheckButtonTemplate"> <CheckButton name="HealBot_Options_HideOptions" inherits="OptionsCheckButtonTemplate">
<Anchors> <Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowManaBars" relativePoint="BOTTOMLEFT"> <Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowManaBars" relativePoint="BOTTOMLEFT">
+31 -42
View File
@@ -1,48 +1,37 @@
HealBotBlue by Bluewhale. **HealBotBlue**
By Bluewhale.
This addon is built on top of Strife's HealBot Continues which was built on original Healbot, however a lot of code got refactored and changed, with more flexibilty and functions. > **NOTE:** For HealBot to work correctly, the **Selfcast** feature in WoW options needs to be disabled.
-------------------------------------------- ### Reporting Errors
NOTE: For HealBot to work correctly, the Selfcast feature in wow options needs to be disabled. Major errors will pop up a frame with error information. Take a screenshot and post comments.
--------------------------------------------
Reporting ERRORS: ### Installation
================ Unpack the zipped file and place the `HealBotBlue` folder under `Interface/AddOns` in your World of Warcraft directory.
Major error will popup a frame with error information. Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\HealBotBlue`
Take a screenshot and post comments.
### Chat Commands
* `/hb` - Toggles the main HealBot panel on and off
* `/hb options` - Toggles the HealBot options panel on and off
* `/hb reset` - Resets the contents of the main HealBot panel
### Option Changes from the original HealBot Continues
### Change Log
**v1.1**
* **Native Hovercasting:** Added a native Action Bar Hovercasting (Mouseover) engine. You can now cast spells on hovered targets using action bar keybinds without losing your current target. Togglable in Options -> General.
* **Fear Ward Tracking:** Added Fear Ward to the global HoT tracker, which will display the icon directly on the unit frame.
* **Bug Fix:** Fixed Shaman weapon buff tracking (e.g., Rockbiter) failing due to spell ranks in tooltips.
* **Bug Fix:** Fixed missing health bar skin textures by ensuring `.tga` paths are explicitly resolved.
* **Bug Fix:** Fixed division-by-zero math errors during UI scaling that caused the addon to crash.
**v1.0**
* **Buff tracking** - Added submenu for tracking buffs on element
* ***Hot tracking with icons** - Hots and DoTs display on player bars
* **Incoming heals use newer protocol**
* **Chat functionalities** - modified chat functionalities for spellcast announcements
* **Mana Bars** - Mana bars for healers in the grid added togglable from options menu.
Change log:
v1.0.0
This addon is built on top of HealBot Continues by Strife. Majority of code got refactored, removed and moved around.
New functionality implemented:
-Buff tracking
-Hot tracking with icons
-Incoming heals use newer protocol
-Chat functionalities
-Might not work on servers other than TurtleWow clones. It uses Turtle based api for some calls
-Mana bars for healers in grid.
TODO:
- Mouseover casting
- Updating bonus values according to TurtleWoW and it's clones talent values.
Installation :
Unpack the zipped file and place the HealBot folder under Interface/AddOns
in your World of Warcraft directory. Path with default installation:
C:\Program Files\World of Warcraft\Interface\AddOns\HealBot
Chat commands :
/hb - toggles the main HealBot panel on and off
/hb options - toggles the HealBot options panel on and off
/hb reset - resets the contents of the main HealBot panel