From bc193c24bc06ca8e8225690712a50d4513e327d4 Mon Sep 17 00:00:00 2001 From: Jrc13245 Date: Sat, 21 Feb 2026 11:39:27 -0500 Subject: [PATCH] update overflow frame to disable default, rename frame for clarity, update readme for information --- Core.lua | 24 ++++++++++++++ Extensions/OverflowBuffFrame.lua | 18 +++++++++-- README.md | 55 ++++++++++++++++++++++++++------ 3 files changed, 86 insertions(+), 11 deletions(-) diff --git a/Core.lua b/Core.lua index 2232d9f..82a0dee 100644 --- a/Core.lua +++ b/Core.lua @@ -5960,6 +5960,7 @@ SlashCmdList["CLEVEROID"] = function(msg) DEFAULT_CHAT_FRAME:AddMessage("|cffffaa00All-Caster Aura Tracking:|r") DEFAULT_CHAT_FRAME:AddMessage('/cleveroid auradebug - Debug buff/debuff time tracking from all casters') DEFAULT_CHAT_FRAME:AddMessage("|cffffaa00Overflow Buff Frame:|r") + DEFAULT_CHAT_FRAME:AddMessage('/cleveroid overflowframe [on|off] - Enable/disable player overflow buff frame (default: off)') DEFAULT_CHAT_FRAME:AddMessage('/cleveroid overflowtest - Toggle overflow buff frame test mode') return end @@ -6713,6 +6714,29 @@ SlashCmdList["CLEVEROID"] = function(msg) return end + -- overflowframe (enable/disable player overflow buff frame) + if cmd == "overflowframe" then + CleveRoidMacros = CleveRoidMacros or {} + if val == "on" or val == "1" then + CleveRoidMacros.overflowPlayerEnabled = true + CleveRoids.Print("Player overflow buff frame |cff00ff00enabled|r") + elseif val == "off" or val == "0" then + CleveRoidMacros.overflowPlayerEnabled = false + CleveRoids.Print("Player overflow buff frame |cffff0000disabled|r") + else + CleveRoidMacros.overflowPlayerEnabled = not CleveRoidMacros.overflowPlayerEnabled + if CleveRoidMacros.overflowPlayerEnabled then + CleveRoids.Print("Player overflow buff frame |cff00ff00enabled|r") + else + CleveRoids.Print("Player overflow buff frame |cffff0000disabled|r") + end + end + if CleveRoids.RebuildOverflowFrame then + CleveRoids.RebuildOverflowFrame() + end + return + end + -- overflowtest (toggle overflow buff frame test mode) if cmd == "overflowtest" then if CleveRoids.ToggleOverflowTest then diff --git a/Extensions/OverflowBuffFrame.lua b/Extensions/OverflowBuffFrame.lua index e921c92..bae3b72 100644 --- a/Extensions/OverflowBuffFrame.lua +++ b/Extensions/OverflowBuffFrame.lua @@ -342,8 +342,21 @@ end RebuildFrame = function() if not playerFrame then return end - local pBuffs = GetPlayerOverflowBuffs() - lastPlayerCount = PopulateFrame(playerFrame, playerLabelFs, "Overflow (You)", playerIcons, pBuffs) + if CleveRoidMacros and CleveRoidMacros.overflowPlayerEnabled then + local pBuffs = GetPlayerOverflowBuffs() + lastPlayerCount = PopulateFrame(playerFrame, playerLabelFs, + "SuperCleveRoid Overflow Buffs (You) *hold shift to move*", playerIcons, pBuffs) + else + playerFrame:Hide() + playerFrame:EnableMouse(false) + playerLabelFs:SetText("") + for i = 1, ICONS_PER_FRAME do + if playerIcons[i] then + playerIcons[i].button:Hide() + end + end + lastPlayerCount = 0 + end local tBuffs = GetTargetOverflowBuffs() local targetName = UnitExists("target") and UnitName("target") or "Target" @@ -548,6 +561,7 @@ local function ToggleTestMode() end CleveRoids.ToggleOverflowTest = ToggleTestMode +CleveRoids.RebuildOverflowFrame = function() RebuildFrame() end -- ============================================================================ -- OnUpdate Handler diff --git a/README.md b/README.md index 6effe24..304d8f4 100644 --- a/README.md +++ b/README.md @@ -368,6 +368,41 @@ Automatically adjusts tracked durations for talents (Imp. Gouge, Taste for Blood --- +## Overflow Buff Frame + +WoW 1.12 only shows 32 buffs client-side. When a player already has 32 buffs, any additional buffs exist on the server but have no visible aura slot. This frame displays those invisible overflow buffs so you know they are active. + +**Requirements:** Nampower (for `AURA_CAST_ON_SELF` events). Disabled by default. + +**Enable/disable:** +``` +/cleveroid overflowframe on -- Enable the player overflow frame +/cleveroid overflowframe off -- Disable it +/cleveroid overflowframe -- Toggle +``` + +### Player Frame + +Shows your own overflow buffs — buffs cast on you that exceeded the 32-slot cap. Displays up to 16 icons (2 rows of 8) with countdown timers. + +- **Shift+drag** to reposition +- **Right-click** an icon to cancel that buff (uses Nampower `CancelPlayerAuraSpellId`) +- **Hover** for spell name, time remaining, and cancel hint + +### Target Frame + +Shows overflow buffs on your current target (party and raid members only). Data sourced from `AllCasterAuraTracking` filtered against currently visible buff textures. Same 16-slot layout. Read-only (no cancel). + +### Testing + +``` +/cleveroid overflowtest -- Toggle test mode (fills both frames with dummy buffs) +``` + +Test mode populates both frames with sample data and respawn timers so you can reposition and inspect the layout without needing to actually be buff-capped. + +--- + ## Immunity Tracking Auto-learns NPC immunities from combat. When a spell fails with "immune", the addon remembers it for that NPC. @@ -403,15 +438,17 @@ Auto-learns NPC immunities from combat. When a spell fails with "immune", the ad ## Settings ```lua -/cleveroid -- View settings -/cleveroid realtime 0|1 -- Instant tooltip updates (more CPU) -/cleveroid refresh 1-10 -- Tooltip update rate in Hz -/cleveroid debug 0|1 -- Debug messages -/cleveroid learn -- Manually set spell duration -/cleveroid forget -- Forget learned duration(s) -/cleveroid debuffdebug [spell] -- Debug debuff tracking on target -/cleveroid tankdebug -- Debug pfUI tank conditionals -/combotrack show|clear|debug -- Combo point tracking +/cleveroid -- View settings +/cleveroid realtime 0|1 -- Instant tooltip updates (more CPU) +/cleveroid refresh 1-10 -- Tooltip update rate in Hz +/cleveroid debug 0|1 -- Debug messages +/cleveroid learn -- Manually set spell duration +/cleveroid forget -- Forget learned duration(s) +/cleveroid debuffdebug [spell] -- Debug debuff tracking on target +/cleveroid tankdebug -- Debug pfUI tank conditionals +/cleveroid overflowframe [on|off] -- Enable/disable player overflow buff frame (default: off) +/cleveroid overflowtest -- Toggle overflow buff frame test mode +/combotrack show|clear|debug -- Combo point tracking ``` ---