mirror of
https://github.com/Bluewhale1337/HealBotBlue.git
synced 2026-09-12 10:10:45 +00:00
Compare commits
17 Commits
d36ad994ea
..
v1.6.2
| Author | SHA1 | Date | |
|---|---|---|---|
| ad302f299e | |||
| 327cd7a08c | |||
| 2f01ca3f1b | |||
| 45ce2a024f | |||
| 2ab7a93a6e | |||
| 7cf0956a84 | |||
| 6c4297c126 | |||
| 4f7a06ad6f | |||
| 178d1184a3 | |||
| f1b7e3950f | |||
| faf040997e | |||
| 4c9f50770a | |||
| ed11046eda | |||
| caa3a03bc3 | |||
| 5340eb253a | |||
| 5f015c89e5 | |||
| e20c5baf74 |
+1
-1
@@ -1,6 +1,6 @@
|
||||
## Interface: 11200
|
||||
## Title: HealBotBlue
|
||||
## Version: 1.6.0
|
||||
## Version: 1.6.2
|
||||
## Author: Bluewhale
|
||||
## Notes: Adds panel with skinable bars for healing and decursive
|
||||
## SavedVariablesPerCharacter: HealBot_Config
|
||||
|
||||
@@ -33,9 +33,32 @@ end
|
||||
|
||||
function HealBot_CheckShamanWeaponBuff(spellName)
|
||||
local hasMainHandEnchant, _, _, hasOffHandEnchant = GetWeaponEnchantInfo()
|
||||
if hasMainHandEnchant or hasOffHandEnchant then
|
||||
return true
|
||||
if not (hasMainHandEnchant or hasOffHandEnchant) then return false end
|
||||
|
||||
local firstWord = string.match(spellName, "^(%w+)")
|
||||
if not firstWord then return false end
|
||||
|
||||
HealBot_ScanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
|
||||
local slots = {}
|
||||
if hasMainHandEnchant then table.insert(slots, 16) end
|
||||
if hasOffHandEnchant then table.insert(slots, 17) end
|
||||
|
||||
for _, slot in ipairs(slots) do
|
||||
HealBot_ScanTooltip:ClearLines()
|
||||
HealBot_ScanTooltip:SetInventoryItem("player", slot)
|
||||
for i = 1, HealBot_ScanTooltip:NumLines() do
|
||||
local textObj = getglobal("HealBot_ScanTooltipTextLeft" .. i)
|
||||
if textObj then
|
||||
local text = textObj:GetText()
|
||||
if text and string.find(text, firstWord) then
|
||||
HealBot_ScanTooltip:Hide()
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
HealBot_ScanTooltip:Hide()
|
||||
return false
|
||||
end
|
||||
|
||||
@@ -104,7 +127,7 @@ function HealBot_CheckBuffs(unit)
|
||||
end
|
||||
|
||||
if not hasIt then
|
||||
if myClass == "SHAMAN" and UnitIsUnit(unit, "player") and string.find(spellName, " Weapon") then
|
||||
if myClass == HEALBOT_SHAMAN and UnitIsUnit(unit, "player") and string.find(spellName, " Weapon") then
|
||||
hasIt = HealBot_CheckShamanWeaponBuff(spellName)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -608,47 +608,47 @@ function HealBot_InitGetSpellData(spell, id, class)
|
||||
|
||||
HealBot_ScanTooltip:SetOwner(HealBot_ScanTooltip, "ANCHOR_NONE")
|
||||
HealBot_ScanTooltip:SetSpell(id, BOOKTYPE_SPELL);
|
||||
tmpText = getglobal("HealBot_ScanTooltipTextLeft2");
|
||||
if (tmpText:GetText()) then
|
||||
line = tmpText:GetText();
|
||||
tmpTest, tmpTest, _mana = string.find(line, HEALBOT_TOOLTIP_MANA);
|
||||
else
|
||||
HealBot_Report_Error("================================");
|
||||
HealBot_Report_Error("ERROR: HealBot_ScanTooltip is lost");
|
||||
HealBot_Report_Error("ERROR: If BonusScanner is used, try disabling BonusScanner");
|
||||
_mana = 0;
|
||||
_range = 40;
|
||||
_cast = 0;
|
||||
line = nil;
|
||||
|
||||
for lineNum = 2, 6 do
|
||||
local lText = getglobal("HealBot_ScanTooltipTextLeft"..lineNum);
|
||||
if lText and lText:IsVisible() and lText:GetText() then
|
||||
local txt = lText:GetText();
|
||||
local t1, t2, match;
|
||||
t1, t2, match = string.find(txt, HEALBOT_TOOLTIP_MANA);
|
||||
if match then _mana = match; end
|
||||
|
||||
if txt == HEALBOT_TOOLTIP_INSTANT_CAST or txt == "Instant" then
|
||||
_cast = 0;
|
||||
elseif txt == HEALBOT_TOOLTIP_CHANNELED then
|
||||
_cast = 0;
|
||||
else
|
||||
t1, t2, match = string.find(txt, HEALBOT_TOOLTIP_CAST_TIME);
|
||||
if match then _cast = match; end
|
||||
end
|
||||
|
||||
t1, t2, match = string.find(txt, HEALBOT_TOOLTIP_RANGE);
|
||||
if match then _range = match; end
|
||||
|
||||
if not string.find(txt, HEALBOT_TOOLTIP_MANA) and txt ~= HEALBOT_TOOLTIP_INSTANT_CAST and txt ~= "Instant" and txt ~= HEALBOT_TOOLTIP_CHANNELED and not string.find(txt, HEALBOT_TOOLTIP_CAST_TIME) and not string.find(txt, HEALBOT_TOOLTIP_RANGE) then
|
||||
if not line then line = txt; end
|
||||
end
|
||||
end
|
||||
|
||||
local rText = getglobal("HealBot_ScanTooltipTextRight"..lineNum);
|
||||
if rText and rText:IsVisible() and rText:GetText() then
|
||||
local txt = rText:GetText();
|
||||
local t1, t2, match;
|
||||
t1, t2, match = string.find(txt, HEALBOT_TOOLTIP_RANGE);
|
||||
if match then _range = match; end
|
||||
end
|
||||
end
|
||||
|
||||
tmpText = getglobal("HealBot_ScanTooltipTextRight2");
|
||||
if (tmpText:GetText()) then
|
||||
line = tmpText:GetText();
|
||||
tmpTest, tmpTest, _range = string.find(line, HEALBOT_TOOLTIP_RANGE);
|
||||
else
|
||||
HealBot_Report_Error("================================");
|
||||
HealBot_Report_Error("ERROR: HealBot_ScanTooltip is lost");
|
||||
HealBot_Report_Error("ERROR: If BonusScanner is used, try disabling BonusScanner");
|
||||
end
|
||||
|
||||
tmpText = getglobal("HealBot_ScanTooltipTextLeft3");
|
||||
_cast = nil;
|
||||
if (tmpText:GetText()) then
|
||||
line = tmpText:GetText();
|
||||
if (line == HEALBOT_TOOLTIP_INSTANT_CAST) then
|
||||
_cast = 0;
|
||||
elseif line == HEALBOT_TOOLTIP_CHANNELED then
|
||||
_cast = 0;
|
||||
elseif (tmpText) then
|
||||
tmpTest, tmpTest, _cast = string.find(line, HEALBOT_TOOLTIP_CAST_TIME);
|
||||
end
|
||||
else
|
||||
HealBot_Report_Error("================================");
|
||||
HealBot_Report_Error("ERROR: HealBot_ScanTooltip is lost");
|
||||
HealBot_Report_Error("ERROR: If BonusScanner is used, try disabling BonusScanner");
|
||||
end
|
||||
|
||||
tmpText = getglobal("HealBot_ScanTooltipTextLeft4");
|
||||
tmpTest = nil;
|
||||
if (tmpText:GetText()) then
|
||||
line = tmpText:GetText();
|
||||
if line then
|
||||
if class == "PRIEST" then
|
||||
if string.sub(spell, 1, 14) == string.sub(HEALBOT_POWER_WORD_SHIELD, 1, 14) then
|
||||
tmpTest, tmpTest, _HealsMin, _shield = string.find(line, HEALBOT_SPELL_PATTERN_SHIELD);
|
||||
|
||||
@@ -320,13 +320,14 @@ HEALBOT_OPTIONS_SOUND2 = "Sound 2"
|
||||
HEALBOT_OPTIONS_SOUND3 = "Sound 3"
|
||||
|
||||
HEALBOT_OPTIONS_HEAL_BUTTONS = "Healing bars";
|
||||
HEALBOT_OPTIONS_EMERGFILTER = "Show extra bars for";
|
||||
HEALBOT_OPTIONS_EMERGFILTER = "Show raid bars for";
|
||||
|
||||
HEALBOT_OPTIONS_GROUPHEALS = "Group";
|
||||
HEALBOT_OPTIONS_GROUPHEALS_LABEL = "Group Only";
|
||||
HEALBOT_OPTIONS_TANKHEALS = "Main tanks";
|
||||
HEALBOT_OPTIONS_TARGETHEALS = "Targets";
|
||||
HEALBOT_OPTIONS_EMERGENCYHEALS= "Raid / Extra";
|
||||
HEALBOT_OPTIONS_EMERGENCYHEALS= "Raid";
|
||||
HEALBOT_OPTIONS_PETHEALS = "Pets";
|
||||
HEALBOT_OPTIONS_HEALLEVEL = "Healing Level";
|
||||
HEALBOT_OPTIONS_ALERTLEVEL = "Alert Level";
|
||||
HEALBOT_OPTIONS_OVERHEAL = "Show Abort button when overhealing"
|
||||
|
||||
@@ -7,18 +7,7 @@ HealBot_Options_CurrentPanel = 0;
|
||||
HealBot_ColourObjWaiting = nil
|
||||
|
||||
HealBot_Options_EmergencyFilter_List = {
|
||||
HEALBOT_OPTIONS_MONITORNO,
|
||||
HEALBOT_OPTIONS_MONITORALL,
|
||||
HEALBOT_DRUID,
|
||||
HEALBOT_HUNTER,
|
||||
HEALBOT_MAGE,
|
||||
HEALBOT_PALADIN,
|
||||
HEALBOT_PRIEST,
|
||||
HEALBOT_ROGUE,
|
||||
HEALBOT_SHAMAN,
|
||||
HEALBOT_WARLOCK,
|
||||
HEALBOT_WARRIOR,
|
||||
HEALBOT_OPTIONS_PETS,
|
||||
HEALBOT_OPTIONS_MONITORMELEE,
|
||||
HEALBOT_OPTIONS_MONITORRANGE,
|
||||
HEALBOT_OPTIONS_MONITORHEALERS,
|
||||
|
||||
+13
-25
@@ -33,6 +33,14 @@ function HealBot_Options_EmergencyHeals_OnClick(this)
|
||||
HealBot_Config.EmergencyHeals = this:GetChecked() or 0;
|
||||
HealBot_RecalcParty();
|
||||
end
|
||||
function HealBot_Options_PetHeals_OnLoad(this,text)
|
||||
this.text = text
|
||||
getglobal(this:GetName().."Text"):SetText(text);
|
||||
end
|
||||
function HealBot_Options_PetHeals_OnClick(this)
|
||||
HealBot_Config.PetHeals = this:GetChecked() or 0;
|
||||
HealBot_RecalcParty();
|
||||
end
|
||||
function HealBot_Options_OverHeal_OnValueChanged(this)
|
||||
HealBot_Config.OverHeal = HealBot_Options_Pct_OnValueChanged(this);
|
||||
end
|
||||
@@ -279,7 +287,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
||||
HealBot_EmergInc[HEALBOT_SHAMAN] = 0;
|
||||
HealBot_EmergInc[HEALBOT_WARLOCK] = 0;
|
||||
HealBot_EmergInc[HEALBOT_WARRIOR] = 0;
|
||||
if HealBot_Config.EmergIncMonitor==2 then
|
||||
if HealBot_Config.EmergIncMonitor==1 then
|
||||
HealBot_EmergInc[HEALBOT_DRUID] = 1;
|
||||
HealBot_EmergInc[HEALBOT_HUNTER] = 1;
|
||||
HealBot_EmergInc[HEALBOT_MAGE] = 1;
|
||||
@@ -289,27 +297,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
||||
HealBot_EmergInc[HEALBOT_SHAMAN] = 1;
|
||||
HealBot_EmergInc[HEALBOT_WARLOCK] = 1;
|
||||
HealBot_EmergInc[HEALBOT_WARRIOR] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==3 then
|
||||
HealBot_EmergInc[HEALBOT_DRUID] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==4 then
|
||||
HealBot_EmergInc[HEALBOT_HUNTER] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==5 then
|
||||
HealBot_EmergInc[HEALBOT_MAGE] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==6 then
|
||||
HealBot_EmergInc[HEALBOT_PALADIN] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==7 then
|
||||
HealBot_EmergInc[HEALBOT_PRIEST] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==8 then
|
||||
HealBot_EmergInc[HEALBOT_ROGUE] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==9 then
|
||||
HealBot_EmergInc[HEALBOT_SHAMAN] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==10 then
|
||||
HealBot_EmergInc[HEALBOT_WARLOCK] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==11 then
|
||||
HealBot_EmergInc[HEALBOT_WARRIOR] = 1;
|
||||
elseif HealBot_Config.EmergIncMonitor==12 then
|
||||
-- Pets: no player classes enabled (handled separately in layout)
|
||||
elseif HealBot_Config.EmergIncMonitor==13 then
|
||||
elseif HealBot_Config.EmergIncMonitor==2 then
|
||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncMelee[HEALBOT_DRUID];
|
||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncMelee[HEALBOT_HUNTER];
|
||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncMelee[HEALBOT_MAGE];
|
||||
@@ -319,7 +307,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
||||
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncMelee[HEALBOT_SHAMAN];
|
||||
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncMelee[HEALBOT_WARLOCK];
|
||||
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncMelee[HEALBOT_WARRIOR];
|
||||
elseif HealBot_Config.EmergIncMonitor==14 then
|
||||
elseif HealBot_Config.EmergIncMonitor==3 then
|
||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncRange[HEALBOT_DRUID];
|
||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncRange[HEALBOT_HUNTER];
|
||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncRange[HEALBOT_MAGE];
|
||||
@@ -329,7 +317,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
||||
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncRange[HEALBOT_SHAMAN];
|
||||
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncRange[HEALBOT_WARLOCK];
|
||||
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncRange[HEALBOT_WARRIOR];
|
||||
elseif HealBot_Config.EmergIncMonitor==15 then
|
||||
elseif HealBot_Config.EmergIncMonitor==4 then
|
||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncHealers[HEALBOT_DRUID];
|
||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncHealers[HEALBOT_HUNTER];
|
||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncHealers[HEALBOT_MAGE];
|
||||
@@ -339,7 +327,7 @@ function HealBot_Options_EmergencyFilter_Reset()
|
||||
HealBot_EmergInc[HEALBOT_SHAMAN] = HealBot_Config.EmergIncHealers[HEALBOT_SHAMAN];
|
||||
HealBot_EmergInc[HEALBOT_WARLOCK] = HealBot_Config.EmergIncHealers[HEALBOT_WARLOCK];
|
||||
HealBot_EmergInc[HEALBOT_WARRIOR] = HealBot_Config.EmergIncHealers[HEALBOT_WARRIOR];
|
||||
elseif HealBot_Config.EmergIncMonitor==16 then
|
||||
elseif HealBot_Config.EmergIncMonitor==5 then
|
||||
HealBot_EmergInc[HEALBOT_DRUID] = HealBot_Config.EmergIncCustom[HEALBOT_DRUID];
|
||||
HealBot_EmergInc[HEALBOT_HUNTER] = HealBot_Config.EmergIncCustom[HEALBOT_HUNTER];
|
||||
HealBot_EmergInc[HEALBOT_MAGE] = HealBot_Config.EmergIncCustom[HEALBOT_MAGE];
|
||||
|
||||
@@ -95,6 +95,19 @@
|
||||
<OnClick>HealBot_Options_EmergencyHeals_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
<CheckButton name="HealBot_Options_PetHeals" inherits="OptionsCheckButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_GroupHeals" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="244" y="5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>HealBot_Options_PetHeals_OnLoad(this,HEALBOT_OPTIONS_PETHEALS)</OnLoad>
|
||||
<OnClick>HealBot_Options_PetHeals_OnClick(this)</OnClick>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
+76
-68
@@ -602,7 +602,7 @@ function HealBot_Action_PartyChanged()
|
||||
numBars = numBars + 1;
|
||||
numHeaders = numHeaders + 1;
|
||||
end
|
||||
if HealBot_Config.EmergIncMonitor == 2 then
|
||||
if HealBot_Config.EmergIncMonitor == 1 then
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
local PossibleEmerg = 1;
|
||||
@@ -635,6 +635,9 @@ function HealBot_Action_PartyChanged()
|
||||
else
|
||||
for _, unit in ipairs(HealBot_Action_HealGroup) do
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
local name = UnitName(unit) or "not known"
|
||||
local class = UnitClass(unit) or "not known"
|
||||
local subgroup = 1
|
||||
if HealBot_Config.ExtraOrder == 1 then
|
||||
order[unit] = name;
|
||||
elseif HealBot_Config.ExtraOrder == 2 then
|
||||
@@ -650,50 +653,7 @@ function HealBot_Action_PartyChanged()
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif HealBot_Config.EmergIncMonitor == 12 then
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
local unit = "raidpet" .. j;
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
local ownerIndex = j;
|
||||
local name = UnitName(unit) or "Pet";
|
||||
local _, _, subgroup = GetRaidRosterInfo(ownerIndex);
|
||||
subgroup = subgroup or 1;
|
||||
|
||||
if HealBot_Config.ExtraOrder == 1 then
|
||||
order[unit] = name;
|
||||
elseif HealBot_Config.ExtraOrder == 2 then
|
||||
order[unit] = HEALBOT_OPTIONS_PETS;
|
||||
elseif HealBot_Config.ExtraOrder == 3 then
|
||||
order[unit] = subgroup;
|
||||
else
|
||||
order[unit] = 0 - UnitHealthMax(unit);
|
||||
if UnitHealthMax(unit) > TempMaxH then TempMaxH = UnitHealthMax(unit); end
|
||||
end
|
||||
table.insert(units, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
end
|
||||
else
|
||||
local petUnits = { "pet", "partypet1", "partypet2", "partypet3", "partypet4" };
|
||||
for _, unit in ipairs(petUnits) do
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
local name = UnitName(unit) or "Pet";
|
||||
if HealBot_Config.ExtraOrder == 1 then
|
||||
order[unit] = name;
|
||||
elseif HealBot_Config.ExtraOrder == 2 then
|
||||
order[unit] = HEALBOT_OPTIONS_PETS;
|
||||
elseif HealBot_Config.ExtraOrder == 3 then
|
||||
order[unit] = 1;
|
||||
else
|
||||
order[unit] = 0 - UnitHealthMax(unit);
|
||||
if UnitHealthMax(unit) > TempMaxH then TempMaxH = UnitHealthMax(unit); end
|
||||
end
|
||||
table.insert(units, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
@@ -733,6 +693,9 @@ function HealBot_Action_PartyChanged()
|
||||
else
|
||||
for _, unit in ipairs(HealBot_Action_HealGroup) do
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
local name = UnitName(unit) or "not known"
|
||||
local class = UnitClass(unit) or "not known"
|
||||
local subgroup = 1
|
||||
if HealBot_Config.ExtraOrder == 1 then
|
||||
order[unit] = name;
|
||||
elseif HealBot_Config.ExtraOrder == 2 then
|
||||
@@ -757,25 +720,29 @@ function HealBot_Action_PartyChanged()
|
||||
local TempSort = "init"
|
||||
TempMaxH = math.ceil(TempMaxH / 1000) * 1000;
|
||||
|
||||
if GetNumRaidMembers() > 0 or HealBot_Config.EmergIncMonitor == 12 then
|
||||
for j = 1, 40 do
|
||||
if not units[j] then break end
|
||||
local name, rank, subgroup, level, class, fileName, zone, online, isDead;
|
||||
local ownerIndex = nil;
|
||||
if string.sub(units[j], 1, 7) == "raidpet" then
|
||||
ownerIndex = tonumber(string.sub(units[j], 8));
|
||||
elseif string.sub(units[j], 1, 4) == "raid" then
|
||||
ownerIndex = tonumber(string.sub(units[j], 5));
|
||||
end
|
||||
if ownerIndex then
|
||||
name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(ownerIndex);
|
||||
end
|
||||
|
||||
if string.sub(units[j], 1, 7) == "raidpet" or string.sub(units[j], 1, 8) == "partypet" or units[j] == "pet" then
|
||||
name = UnitName(units[j]) or "Pet";
|
||||
class = HEALBOT_OPTIONS_PETS;
|
||||
subgroup = subgroup or 1;
|
||||
end
|
||||
for j = 1, 40 do
|
||||
if not units[j] then break end
|
||||
local name, rank, subgroup, level, class, fileName, zone, online, isDead;
|
||||
local ownerIndex = nil;
|
||||
if string.sub(units[j], 1, 7) == "raidpet" then
|
||||
ownerIndex = tonumber(string.sub(units[j], 8));
|
||||
elseif string.sub(units[j], 1, 4) == "raid" then
|
||||
ownerIndex = tonumber(string.sub(units[j], 5));
|
||||
end
|
||||
|
||||
if ownerIndex then
|
||||
name, rank, subgroup, level, class, fileName, zone, online, isDead = GetRaidRosterInfo(ownerIndex);
|
||||
else
|
||||
name = UnitName(units[j]) or "not known";
|
||||
class = UnitClass(units[j]) or "not known";
|
||||
subgroup = 1;
|
||||
end
|
||||
|
||||
if string.sub(units[j], 1, 7) == "raidpet" or string.sub(units[j], 1, 8) == "partypet" or units[j] == "pet" then
|
||||
name = UnitName(units[j]) or "Pet";
|
||||
class = HEALBOT_OPTIONS_PETS;
|
||||
subgroup = subgroup or 1;
|
||||
end
|
||||
|
||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 and HealBot_Config.ExtraOrder == 2 and TempSort ~= class then
|
||||
TempSort = class
|
||||
@@ -799,12 +766,47 @@ function HealBot_Action_PartyChanged()
|
||||
HealBot_Action_SetHealButton(i, units[j]);
|
||||
if i == last then break end
|
||||
end
|
||||
end
|
||||
end
|
||||
if numBars == ExtraValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[i + 1] = nil;
|
||||
numBars = numBars - 1;
|
||||
end
|
||||
|
||||
last = last + 40
|
||||
local PetsValid = numBars;
|
||||
if HealBot_Config.PetHeals == 1 then
|
||||
if HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[i + 1] = HEALBOT_OPTIONS_PETHEALS
|
||||
numBars = numBars + 1;
|
||||
numHeaders = numHeaders + 1;
|
||||
end
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
local unit = "raidpet" .. j;
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
i = i + 1;
|
||||
HealBot_Action_SetHealButton(i, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
if i == last then break end
|
||||
end
|
||||
else
|
||||
local petUnits = { "pet", "partypet1", "partypet2", "partypet3", "partypet4" };
|
||||
for _, unit in ipairs(petUnits) do
|
||||
if not HealBot_Action_UnitButtons[unit] and HealBot_MayHeal(unit) then
|
||||
i = i + 1;
|
||||
HealBot_Action_SetHealButton(i, unit);
|
||||
numBars = numBars + 1;
|
||||
end
|
||||
if i == last then break end
|
||||
end
|
||||
end
|
||||
end
|
||||
if numBars == PetsValid + 1 and HealBot_Config.ShowHeader[HealBot_Config.Current_Skin] == 1 then
|
||||
HeaderPos[PetsValid + 1] = nil;
|
||||
numBars = numBars - 1;
|
||||
numHeaders = numHeaders - 1;
|
||||
end
|
||||
|
||||
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
|
||||
local OffsetY = bpadding;
|
||||
@@ -962,7 +964,6 @@ function HealBot_Action_PartyChanged()
|
||||
if HealBot_Config.HideParty == 1 and HidePartyFrame then
|
||||
HidePartyFrame();
|
||||
end
|
||||
end
|
||||
HealBot_Action_RefreshButtons();
|
||||
HealBot_Action_ShowFrame();
|
||||
end
|
||||
@@ -1091,7 +1092,11 @@ function HealBot_Action_AppendNewUnits()
|
||||
if CT_RA_MainTanks[j] then
|
||||
for k = 1, GetNumRaidMembers() do
|
||||
local unit = "raid" .. k
|
||||
if UnitName(unit) == CT_RA_MainTanks[j] then
|
||||
local skip = false
|
||||
if UnitInParty(unit) and HealBot_Config.GroupHeals == 1 and not UnitIsUnit(unit, "player") then
|
||||
skip = true
|
||||
end
|
||||
if not skip and UnitName(unit) == CT_RA_MainTanks[j] then
|
||||
table.insert(unitsToCheck, unit)
|
||||
end
|
||||
end
|
||||
@@ -1109,7 +1114,10 @@ function HealBot_Action_AppendNewUnits()
|
||||
if HealBot_Config.EmergencyHeals == 1 then
|
||||
if GetNumRaidMembers() > 0 then
|
||||
for j = 1, 40 do
|
||||
table.insert(unitsToCheck, "raid" .. j)
|
||||
local unit = "raid" .. j
|
||||
if not (UnitInParty(unit) and HealBot_Config.GroupHeals == 1) then
|
||||
table.insert(unitsToCheck, unit)
|
||||
end
|
||||
end
|
||||
else
|
||||
for j = 1, 4 do
|
||||
|
||||
@@ -7,6 +7,9 @@ Original HealBot, while being a staple healing addon in Wrath and later expansio
|
||||
|
||||
> **Performance First:** The raidframe is not library reliant - unlike popular raidframe replacement addons it doesn't rely at all on external frameworks. While this makes my work a bit harder this allows complete control over garbage collection and CPU use which makes it multiple times more stable and lightweight.
|
||||
|
||||
### Development version
|
||||
There is dev branch available, it might be slightly more unstabl but most of time it does have more features present. It's only merged into main when major feature set is implemented and stabilised.
|
||||
|
||||
### Reporting Errors
|
||||
Major errors will pop up a frame with error information. Take a screenshot and post comments.
|
||||
|
||||
@@ -46,6 +49,10 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
|
||||
|
||||
### Change Log
|
||||
|
||||
**v1.6.2**
|
||||
* **Hotfix - raid and party frames** - if getNumRaidMembers() > 0 wrapper around extra bars stopped from displaying all frames blocked from displaying Extras\Raid.
|
||||
* **UI Update - Raid & Pets Split** - Split the "Raid / Extra" toggle into separate "Raid" and "Pets" toggles. Simplified the raid bars filter dropdown to core options (All, Melee, Ranged, Heals, Custom).
|
||||
|
||||
**v1.6.1**
|
||||
* **Hotfix - pet frames** - With class colours toggled extra frames for player pets were given some classy mint colour.
|
||||
* **Hotfi - raidframes in combat** - Modfied how frames behave when player leaves during combat.
|
||||
|
||||
Binary file not shown.
@@ -1,23 +0,0 @@
|
||||
import re
|
||||
|
||||
with open('HealBot_Action.xml', 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
buttons_42_50 = '\n'.join([f' <Button name=\"HealBot_Action_HealUnit{i}\" inherits=\"HealingButtonTemplate\" text=\"Unit not set\"/>' for i in range(42, 51)])
|
||||
buttons_61_100 = '\n'.join([f' <Button name=\"HealBot_Action_HealUnit{i}\" inherits=\"HealingButtonTemplate2\" text=\"Unit not set\"/>' for i in range(61, 101)])
|
||||
|
||||
content = re.sub(
|
||||
r'(<Button name=\"HealBot_Action_HealUnit41\" [^\>]+>\n)',
|
||||
r'\g<1>' + buttons_42_50 + '\n',
|
||||
content
|
||||
)
|
||||
|
||||
content = re.sub(
|
||||
r'(<Button name=\"HealBot_Action_HealUnit60\" [^\>]+>\n)',
|
||||
r'\g<1>' + buttons_61_100 + '\n',
|
||||
content
|
||||
)
|
||||
|
||||
with open('HealBot_Action.xml', 'w') as f:
|
||||
f.write(content)
|
||||
print('Updated HealBot_Action.xml')
|
||||
Reference in New Issue
Block a user