PitBull Unit Frames 4.0
PitBull Unit Frames 4.0
Woof. Arf. Yip.
Getting Started:
You can help translate PitBull for your language with the localization tool.
Classic
PitBull works with WoW Classic! Classic Era/Vanilla is supported in
v4.3.x-vanilla releases. Other Classic versions are supported in v4.2.x releases
(the same releases retail use).
Download
CurseForge: https://www.curseforge.com/wow/addons/pitbull-unit-frames-4-0
Wago: https://addons.wago.io/addons/pitbull4
WoWInterface: https://www.wowinterface.com/downloads/info20021
-
View User Profile
-
Send Message
Posted Jul 25, 2016On my Warlock, only 4 Soul Shard icons are displayed, instead of the correct 5.
Everything else seems to be functioning correctly.
-
View User Profile
-
Send Message
Posted Jul 25, 2016Actually, just fixed this myself. Here's the code for SoulShards.lua
if select(5, GetAddOnInfo("PitBull4_" .. (debugstack():match("[o%.][d%.][u%.]les\\(.-)\\") or ""))) ~= "MISSING" then return end if select(2, UnitClass("player")) ~= "WARLOCK" then return end local PitBull4 = _G.PitBull4 if not PitBull4 then error("PitBull4_SoulShards requires PitBull4") end -- CONSTANTS ---------------------------------------------------------------- local STANDARD_SIZE = 15 local BORDER_SIZE = 3 local SPACING = 3 local HALF_STANDARD_SIZE = STANDARD_SIZE / 2 local CONTAINER_HEIGHT = STANDARD_SIZE + BORDER_SIZE * 2 ----------------------------------------------------------------------------- local L = PitBull4.L local PitBull4_SoulShards = PitBull4:NewModule("SoulShards", "AceEvent-3.0") PitBull4_SoulShards:SetModuleType("indicator") PitBull4_SoulShards:SetName(L["Soul shards"]) PitBull4_SoulShards:SetDescription(L["Show Warlock Soul shards."]) PitBull4_SoulShards:SetDefaults({ attach_to = "root", location = "out_top", position = 1, vertical = false, click_through = false, size = 1.5, background_color = { 0, 0, 0, 0.5 } }) function PitBull4_SoulShards:OnEnable() self:RegisterEvent("UNIT_POWER_FREQUENT") self:RegisterEvent("UNIT_DISPLAYPOWER") self:RegisterEvent("PLAYER_ENTERING_WORLD") end local function update_player(self) for frame in PitBull4:IterateFramesForUnitID("player") do self:Update(frame) end end function PitBull4_SoulShards:UNIT_POWER_FREQUENT(event, unit, power_type) if unit ~= "player" or power_type ~= "SOUL_SHARDS" then return end update_player(self) end function PitBull4_SoulShards:UNIT_DISPLAYPOWER(event, unit) if unit ~= "player" then return end update_player(self) end function PitBull4_SoulShards:PLAYER_ENTERING_WORLD(event) update_player(self) end function PitBull4_SoulShards:ClearFrame(frame) local container = frame.SoulShards if not container then return false end for i = 1, 5 do container[i] = container[i]:Delete() end container.bg = container.bg:Delete() frame.SoulShards = container:Delete() return true end local function update_container_size(container, vertical, max_shards) local width = STANDARD_SIZE * max_shards + BORDER_SIZE * 2 + SPACING * (max_shards - 1) if not vertical then container:SetWidth(width) container:SetHeight(CONTAINER_HEIGHT) container.height = 1 else container:SetWidth(CONTAINER_HEIGHT) container:SetHeight(width) container.height = width / CONTAINER_HEIGHT end container.max_shards = max_shards end function PitBull4_SoulShards:UpdateFrame(frame) if frame.unit ~= "player" then return self:ClearFrame(frame) end local db = self:GetLayoutDB(frame) local vertical = db.vertical local container = frame.SoulShards if not container then container = PitBull4.Controls.MakeFrame(frame) frame.SoulShards = container container:SetFrameLevel(frame:GetFrameLevel() + 13) for i = 1, 5 do local soul_shard = PitBull4.Controls.MakeSoulShard(container, i) container[i] = soul_shard soul_shard:UpdateTexture() soul_shard:ClearAllPoints() soul_shard:EnableMouse(not db.click_through) if not vertical then soul_shard:SetPoint("CENTER", container, "LEFT", BORDER_SIZE + (i - 1) * (SPACING + STANDARD_SIZE) + HALF_STANDARD_SIZE, 0) else soul_shard:SetPoint("CENTER", container, "BOTTOM", 0, BORDER_SIZE + (i - 1) * (SPACING + STANDARD_SIZE) + HALF_STANDARD_SIZE) end end update_container_size(container, vertical, 5) local bg = PitBull4.Controls.MakeTexture(container, "BACKGROUND") container.bg = bg bg:SetColorTexture(unpack(db.background_color)) bg:SetAllPoints(container) end local num_soul_shards = UnitPower("player", SPELL_POWER_SOUL_SHARDS) local max_shards = UnitPowerMax("player", SPELL_POWER_SOUL_SHARDS) if max_shards ~= container.max_shards then update_container_size(container, vertical, max_shards) end for i = 1, 5 do local soul_shard = container[i] if i > max_shards then soul_shard:Hide() elseif i <= num_soul_shards then soul_shard:Show() soul_shard:Activate() else soul_shard:Show() soul_shard:Deactivate() end end container:Show() return true end PitBull4_SoulShards:SetLayoutOptionsFunction(function(self) return 'vertical', { type = 'toggle', name = L["Vertical"], desc = L["Show the icons stacked vertically instead of horizontally."], get = function(info) return PitBull4.Options.GetLayoutDB(self).vertical end, set = function(info, value) PitBull4.Options.GetLayoutDB(self).vertical = value for frame in PitBull4:IterateFramesForUnitID("player") do self:Clear(frame) self:Update(frame) end end, order = 100, }, 'click_through', { type = 'toggle', name = L["Click-through"], desc = L["Disable capturing clicks on icons, allowing the click to fall through to the window underneath the icon."], get = function(info) return PitBull4.Options.GetLayoutDB(self).click_through end, set = function(info, value) PitBull4.Options.GetLayoutDB(self).click_through = value for frame in PitBull4:IterateFramesForUnitID("player") do self:Clear(frame) self:Update(frame) end end, order = 101, }, 'background_color', { type = 'color', hasAlpha = true, name = L["Background color"], desc = L["The background color behind the icons."], get = function(info) return unpack(PitBull4.Options.GetLayoutDB(self).background_color) end, set = function(info, r, g, b, a) local color = PitBull4.Options.GetLayoutDB(self).background_color color[1], color[2], color[3], color[4] = r, g, b, a for frame in PitBull4:IterateFramesForUnitID("player") do self:Clear(frame) self:Update(frame) end end, order = 103, } end)-
View User Profile
-
Send Message
Posted Jul 25, 2016You need to fix the rune display for DK asap, It's not showing and I get lag spikes if I have it on and use a rune using ability. (Besides that it also seems to make my fps drop to 20)
-
View User Profile
-
Send Message
Posted Jul 24, 2016I am having trouble with this addon ever since the update, but Only for DK. All other classes are fine, but for some reason the DK is broken. This is what it should look like. This is what it looks like on DK. Any idea what is going on here?
-
View User Profile
-
Send Message
Posted Jul 24, 2016I'm also having problems on my DK only. The player unit frames aren't working properly with no text showing.
-
View User Profile
-
Send Message
Posted Jul 25, 2016This is because the Rune Module is currently broken, In the PitBull options go to Layout editor > Indicators > Runes and untick the Enable box, this will fix the healthbar text etc but you'll have to find another way to display your runes until this issue is fixed.
-
View User Profile
-
Send Message
Posted Jul 26, 2016You are the best, I use magic runes anyways so its perfect for me, thank you so much!
-
View User Profile
-
Send Message
Posted Jul 27, 2016Disabling the runes worked for me a few days ago; after updating 2 days ago, however, the DK is back to having blank unit frames on all her units, and disabling the runes via the in-game config or before fully logging in does nothing anymore. Any ideas? She's my main, and it makes it really hard to play with blank unit frames; I don't want to have to stop using Pitbull. Trying to copy another toon's profile does not work either, and in fact, I can't log into any other toon and save their individual profile under their name-I have to choose "default" to get each toon's setup to work.
-
View User Profile
-
Send Message
Posted Jul 27, 2016Also, it is working correctly on my DK on another server. It is ONLY my main, of my many toons on many servers, that is having this issue. IDK if this has anything to do with it, but there are no options in the text selection dropdown under the layout editor for this toon:
http://imgur.com/a/CDYNU
-
View User Profile
-
Send Message
Posted Jul 27, 2016Well, problem solved-I had to enable every single Pitbull dependency to show text on my unit frames, which I don't have to do on any other toon. I don't load warlock shards on my hunter, for example, but I had to on my DK main. W/E!
FYI!
-
View User Profile
-
Send Message
Posted Jul 24, 2016hmm, i'm trying to figure out the portrait option, before the patch i had it enabled and now even though it's enabled, it still doesn't display a portrait.
anyone know if i'm missing something? in one of the setting?
-
View User Profile
-
Send Message
Posted Jul 24, 2016Not sure if this is a Pitbull bug or some change Blizzard made that I need to turn off somewhere (couldn't find an option though). Besides dungeon bosses showing up as my target unit frame, I get default WoW unit frames for bosses along the right side of the screen since 7.x. I'm running the latest version of Pitbull.
-
View User Profile
-
Send Message
Posted Jul 24, 2016Go into the hide blizzard frames module and check next to boss
-
View User Profile
-
Send Message
Posted Jul 25, 2016-
View User Profile
-
Send Message
Posted Jul 23, 2016Target-selected opacity fader is not working lately. I have one layout assigned to player/target/focus frames, with faders set to not show unless hurt, in combat or targeting something. My player and focus frames show when I target, but the target frame does not.
-
View User Profile
-
Send Message
Posted Jul 24, 2016This is also happening to me, about 50% of hte time when I click a target its frame will appear, sometimes it won't. usually have to click another target or 2 then it finally appears.
-
View User Profile
-
Send Message
Posted Jul 23, 2016How's the status of arena/pvp frames coming. I know before they were sort of iffy to show but I tried them today and they sort of were working with the one small issue of the default frames still showing (is there a need to have a hide blizzard check for pvp?). I don't want to put in a ticket if they are going to be worked on or are being worked on or are working and I am not doing something right.
What I mean:
-
View User Profile
-
Send Message
Posted Jul 23, 2016In WoD my monk would never have any text show up on the player frame health bar or resource bar even though I had it enabled, it worked fine on every other character of mine. Now with the Legion pre-patch, the text is not showing up on the player frame for my warlock, but is working for every other character. If I go into the editor and change the lua code from Name: Standard to Name: Long, it shows up. If I change it back to Name: Standard then join a group or go to a different zone, it disappears again. Any thoughts?
*Found the fix for my warlock, i was logging in as destro and pitbull was still loading the module for burning embers. Did a fresh install and now it seems to be working. The DK runes still aren't working for me though with the latest version
-
View User Profile
-
Send Message
Posted Jul 23, 2016Hey, many many thanks for your hard work keeping this addon updated. Really don't know what I would do without...
Everything works like a charm. Though, on my DK I am getting this LUA Error:
Message: Interface\AddOns\PitBull4_Runes\Controls.lua:56: attempt to call global 'GetRuneType' (a nil value)
Time: 07/23/16 17:26:54
Count: 1
Stack: Interface\AddOns\PitBull4_Runes\Controls.lua:56: in function `UpdateTexture'
Interface\AddOns\PitBull4_Runes\Runes.lua:143: in function `UpdateFrame'
Interface\AddOns\PitBull4\ModuleHandling\Module.lua:319: in function `Update'
Interface\AddOns\PitBull4\UnitFrame.lua:597: in function `Update'
Interface\AddOns\PitBull4\UnitFrame.lua:518: in function `RecheckConfigMode'
Interface\AddOns\PitBull4\Options\ConfigMode.lua:58: in function `RecheckConfigMode'
Interface\AddOns\PitBull4\Main.lua:1300: in function `OnProfileChanged'
Interface\AddOns\PitBull4\Main.lua:1365: in function <Interface\AddOns\PitBull4\Main.lua:1335>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:558: in function `EnableAddon'
...\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:651: in function <...\AddOns\DataStore\libs\AceAddon-3.0\AceAddon-3.0.lua:636>
[C]: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:391: in function `UIParentLoadAddOn'
Interface\FrameXML\UIParent.lua:414: in function `CombatLog_LoadUI'
Interface\FrameXML\UIParent.lua:995: in function <Interface\FrameXML\UIParent.lua:891>
Locals: <none>
Hope you find some time to look into that... Thanks in advance!
Have a great weekend!
-
View User Profile
-
Send Message
Posted Jul 23, 2016When I set the background to display the 3D model of the unit, it seems like there is a padding on the model? I can't get it to align with the edges, as I'm trying to make frames without unnecessary spacing or padding. Any way to fix this?