Go to Page... |
Updated: | 08-10-09 11:52 AM |
Created: | 01-05-09 08:38 PM |
Downloads: | 5,664 |
Favorites: | 24 |
MD5: |
oUF_DruidHots is an oUF extension that adds a set of colored box "indicators" to the top of enabled frames to show you all of your current Druid heal-over-time spells.
As a healer I missed the indicators I used to use in Grid. Since I now use a custom oUF layout instead of Grid or Pitbull, I decided to hack something together. What started out as a quick little lifebloom timer quickly blossomed into a full blown Druid HOT timer.
The image shows how it looks and what they each mean. It attaches the indicators to the top left of the Health bar.
There are a few things I still want to implement:
* Some kind of indication when the Hot is about to expire. I’m going to play with blinking, fades, borders, etc. to see what works best.
* Better configuration for layout authors. Right now everything (indicator size, color, offset, spacing, ordering) are all hard-coded. I’ll put the config in a table an oUF layout author can embed in his layout code.
As with all oUF extensions, it requires that you have oUF (the base frame framework) and an oUF layout (the definition of how you want your player/party/raid frames to look) installed.
Comment Options |
04-30-10, 08:31 PM | |
A Cyclonian
Forum posts: 40
File comments: 195
Uploads: 0
|
No Duration for the hots? please can someone explain how to enable duration if there is anyway to do it
|
|
strickland |
View Public Profile |
Send a private message to strickland |
Find More Posts by strickland |
Add strickland to Your Buddy List |
04-28-10, 09:34 PM | ||
A Cyclonian
Forum posts: 40
File comments: 195
Uploads: 0
|
Hi to you mate, will you be kind enough to show us how to add abolish poison too? thanks =)
|
|
|
strickland |
View Public Profile |
Send a private message to strickland |
Find More Posts by strickland |
Add strickland to Your Buddy List |
01-15-10, 11:25 AM | ||
A Kobold Labourer
Forum posts: 0
File comments: 2
Uploads: 0
|
here the entire code now: --[[ Name: oUF_DruidHots Description: Provides Druid HoT indicators across the top of the unit frame To disable the indicators for a given frame, set ignoreDruidHots to any non-nil value, e.g.: frame.ignoreDruidHots = true Copyright 2008 Quaiche Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ]] local parent = debugstack():match[[\AddOns\(.-)\]] local global = GetAddOnMetadata(parent, 'X-oUF') local oUF = _G[global] or oUF local UnitBuff = _G.UnitBuff local GetTime = _G.GetTime assert(oUF, 'oUF not loaded') if select(2,UnitClass("player")) ~= "DRUID" then return end local debugf = tekDebug and tekDebug:GetFrame("oUF_DruidHots") local function Debug(...) if debugf then debugf:AddMessage(string.join(", ", tostringall(...))) end end -- Icon textures for local-neutral identification of buffs local LIFEBLOOM = "Interface\\Icons\\INV_Misc_Herb_Felblossom" local REGROWTH = "Interface\\Icons\\Spell_Nature_ResistNature" local REJUVENATION = "Interface\\Icons\\Spell_Nature_Rejuvenation" local WILDGROWTH = "Interface\\Icons\\Ability_Druid_Flourish" local THORNS = "Interface\\Icons\\Spell_Nature_Thorns" local MARK = "Interface\\Icons\\Spell_Nature_Regeneration" local GIFT = "Interface\\Icons\\Spell_Nature_GiftoftheWild" -- Configuration local width, height = 4, 3 local offsetX, offsetY = 5, -2 local spacing = 2 local order = {WILDGROWTH , REGROWTH, REJUVENATION , LIFEBLOOM, THORNS, MARK, GIFT } local hots = { [LIFEBLOOM] = { count = 3, color = { r=0, g=1.0, b=0 }, }, [REGROWTH] = { count = 1, color = { r=0, g=0, b=1 }, }, [REJUVENATION] = { count = 1, color = { r=1, g=1, b=0 }, }, [WILDGROWTH] = { count = 1, color = { r=1, g=0.5, b=0 }, }, [THORNS] = { count = 1, color = { r=.1, g=1, b=.1 }, }, [MARK] = { count = 1, color = { r=1, g=0, b=1 }, }, [GIFT] = { count = 1, color = { r=1, g=0, b=1 }, }, } local function SetStatus(object, texture, count, remaining) for i=1,hots[texture].count do if hots[texture].count > 1 and count >= i then object.druidHotsIndicators[texture][i]:Show() else object.druidHotsIndicators[texture][i]:Hide() end end end local state = {} -- Temp table to avoid memory thrashing local function Update(object, event, unit) if object.unit ~= unit then return end local i = 1 state[LIFEBLOOM] = 0 state[REGROWTH] = 0 state[REJUVENATION] = 0 state[WILDGROWTH] = 0 state[THORNS] = 0 state[MARK] = 0 state[GIFT] = 0 while true do local name, _, texture, count, _, _, expirationTime, caster = UnitBuff(unit, i, true) local isMine = (caster == "player") if not name then break end if isMine and hots[texture] then local timeleft = expirationTime - GetTime() if texture == LIFEBLOOM then state[texture] = count else state[texture] = 1 end end i = i + 1 end for k,v in pairs(state) do for i=1,hots[k].count do if i <= state[k] then object.druidHotsIndicators[k][i]:Show() else object.druidHotsIndicators[k][i]:Hide() end end end end local function initialize(object) if object.ignoreDruidHots or object.druidHotsIndicators then return end local i,j,k local tex local anchor, anchorPoint, x, y = object.Health, "TOPLEFT", offsetX, offsetY object.druidHotsIndicators = {} for j = 1,#order do k = order[j] object.druidHotsIndicators[k] = {} for i = 1,hots[k].count do tex = object.Health:CreateTexture(nil, "OVERLAY") tex:SetPoint("TOPLEFT", anchor, anchorPoint, x, y) tex:SetTexture(hots[k].color.r, hots[k].color.g, hots[k].color.b) tex:SetHeight(height) tex:SetWidth(width) tex:Hide() if j==3 then anchor, anchorPoint, x, y = object.Health, "TOPLEFT", offsetX, offsetY-5 else anchor, anchorPoint, x, y = tex, "TOPRIGHT", spacing, 0 end table.insert(object.druidHotsIndicators[k],tex) end end object:RegisterEvent("UNIT_AURA", Update) end -- Initialize the extension for existing frames and register for subsequent frames for k, object in ipairs(oUF.objects) do initialize(object) end oUF:RegisterInitCallback(initialize) |
|
|
mandaji |
View Public Profile |
Send a private message to mandaji |
Find More Posts by mandaji |
Add mandaji to Your Buddy List |
mandaji |
View Public Profile |
Send a private message to mandaji |
Find More Posts by mandaji |
Add mandaji to Your Buddy List |
11-16-09, 06:55 PM | ||
|
On line 48 you will see a variable called order that lets you control that. To make multiple rows, you could introduce a symbol into orders (something like "BREAK") that could tell some code in the initialize method to start a new row. Yes, you'd be hacking the extension code, but it would let you have that now. |
|
|
PProvost |
View Public Profile |
Send a private message to PProvost |
Visit PProvost's homepage! |
Find More Posts by PProvost |
Add PProvost to Your Buddy List |
11-12-09, 10:58 AM | |
|
Hi. Love this addon, but i have some requests. I dono if you're still working on this even but here goes.
would be nice if the order of the indicators could be defined in the layout. would be nice to be able to have multiple rows for the indicators and define how many indicators per row. also, if you could specify the position in the layout. for example, look at oUF_WTF, the indicators are covered by the health %. what i'm trying to do is make it like this: rejouv = 1, regrowth = 2, wild growth = 3, lifebloom = 4 1 2 3 4 4 4 in the bottom left of the portrait frame. Thanks. |
|
Aerials |
View Public Profile |
Send a private message to Aerials |
Visit Aerials's homepage! |
Find More Posts by Aerials |
Add Aerials to Your Buddy List |
05-09-09, 08:23 AM | |
A Kobold Labourer
Forum posts: 0
File comments: 13
Uploads: 0
|
I just thought of something,would it be possible to add a dot for abolish poison aswell?
|
|
lodarn |
View Public Profile |
Send a private message to lodarn |
Visit lodarn's homepage! |
Find More Posts by lodarn |
Add lodarn to Your Buddy List |
05-06-09, 02:36 PM | ||
|
|
|
|
PProvost |
View Public Profile |
Send a private message to PProvost |
Visit PProvost's homepage! |
Find More Posts by PProvost |
Add PProvost to Your Buddy List |
05-06-09, 12:37 PM | |
A Kobold Labourer
Forum posts: 0
File comments: 13
Uploads: 0
|
seems to be fixed now!thank you very much! can't really manage without it. :^)
|
|
lodarn |
View Public Profile |
Send a private message to lodarn |
Visit lodarn's homepage! |
Find More Posts by lodarn |
Add lodarn to Your Buddy List |
05-05-09, 03:46 PM | |
A Kobold Labourer
Forum posts: 0
File comments: 13
Uploads: 0
|
thanks for trying to fix it mate.hopefully i will get to test it properly in ulduar 25 tomorrow.ill get back with a answer then.
|
|
lodarn |
View Public Profile |
Send a private message to lodarn |
Visit lodarn's homepage! |
Find More Posts by lodarn |
Add lodarn to Your Buddy List |
05-04-09, 06:28 PM | |
|
I just uploaded v1.4-Release which I hope will fix the lag bug you guys were seeing. Please let me know. Thanks.
|
|
PProvost |
View Public Profile |
Send a private message to PProvost |
Visit PProvost's homepage! |
Find More Posts by PProvost |
Add PProvost to Your Buddy List |
05-04-09, 01:34 PM | ||
|
|
|
|
PProvost |
View Public Profile |
Send a private message to PProvost |
Visit PProvost's homepage! |
Find More Posts by PProvost |
Add PProvost to Your Buddy List |
05-04-09, 11:31 AM | |
A Kobold Labourer
Forum posts: 0
File comments: 13
Uploads: 0
|
I got the same problem,just tried and disabled the ouf_hots and now i have 30isch instead och 10isch fps.
im using this addonpack http://www.wowinterface.com/download...o=&page=2#info would be nice if you could come up with some idea. :^) |
|
lodarn |
View Public Profile |
Send a private message to lodarn |
Visit lodarn's homepage! |
Find More Posts by lodarn |
Add lodarn to Your Buddy List |
04-21-09, 01:29 PM | ||
|
Also, can you tell me exactly which oUF addons you are using? Which layout? Which other plugins? Thanks! |
|
|
PProvost |
View Public Profile |
Send a private message to PProvost |
Visit PProvost's homepage! |
Find More Posts by PProvost |
Add PProvost to Your Buddy List |
04-20-09, 05:29 PM | |
|
Ok - a little bit information
Last week I entered Ulduar25 - still with the old version - and recognized that when I entered combat my fps dropped from 40 to 5. I disabled MSBT, Filger, Recount and every other addon that I suspect to cause the framelag. But nothing worked. On Friday/Saturday/Sunday I raided Ulduar10 - still with the old version - and had no lags at all. Due to having a second tree in the raid on Sat I change Code:
if isMine and hots[texture] then Code:
if isMine == "player" and hots[texture] then Today on 25 it lagged again. Then I saw your new version and updated to it, because I thought maybe it's my fault of "ugly" coding. But with no success. With activated oUF_DruidHots I have 2-7 fps, deactivated 35+ EDIT: To verify I just tested it in Alterac and Warsong. Alterac Valley unplayable, Warsong no problems.
Last edited by Maneut : 04-20-09 at 05:53 PM.
|
|
Maneut |
View Public Profile |
Send a private message to Maneut |
Visit Maneut's homepage! |
Find More Posts by Maneut |
Add Maneut to Your Buddy List |