Download
(7Kb)
Download
Updated: 12-01-10 12:47 PM
Pictures
File Info
Updated:12-01-10 12:47 PM
Created:10-22-10 02:59 PM
Downloads:14,810
Favorites:97
MD5:

nivBuffs  Popular! (More than 5000 hits)

Version: r24
by: Luzzifus [More]

News

I don't play WoW anymore (at least currently) and do not have an active subscription. So I cannot and will not work on my addons anymore. Sorry.

However, Calebzor has done awesome work in updating and improving this addon, including an ingame config. Check it out here!




About

nivBuffs is a replacement for blizzards default buff frames. It shows your buffs, debuffs and temporary weapon enchants.


Features

  • Using SecureAuraHeaders, so you can cancel buffs via rightclick!
  • Remaining duration can be displayed as spiral texture, bar and/or text.
  • Shows stack count for buffs/debuffs with 2 or more stacks.
  • Blinking icons for buffs/debuffs that will expire soon.
  • Sorted by time, name or spell ID.
  • Custom icon border (change the texture if you don't like it).
  • Support for custom styling with ButtonFacade.
  • Differently colored borders for temporary weapon enchants and debuffs.
  • Debuff highlighting by debuff type.

Config

There is no ingame config (at least not yet), but you can adjust appearance and behaviour in "config.lua" using a text editor.


Known Issues
  • You can cancel weapon enchants by now, but the second one still references to the first.
  • Third weapon enchant doesn't work (because of broken Blizzard code).

FAQ

Because some people still have problems with correctly setting up the anchoring and grow direction stuff, here are some examples (r14+). These are only the settings for buffs, but changing the debuffs works the same way.
lua Code:
  1. -- Anchored to topleft corner of the UI,
  2. -- growing horizontally to the right in rows of 20 icons,
  3. -- next row exactly below the previous
  4. buffAnchor = { "TOPLEFT", "UIParent", "TOPLEFT", 15, -15 },
  5. buffXoffset = 35,
  6. buffYoffset = 0,
  7. buffIconsPerRow = 20,
  8. buffMaxWraps = 10,
  9. buffWrapXoffset = 0,
  10. buffWrapYoffset = -55,
  11.  
  12. -- Anchored to topright corner of the UI,
  13. -- growing horizontally to the left in rows of 20 icons,
  14. -- next row exactly below the previous
  15. buffAnchor = { "TOPRIGHT", "UIParent", "TOPRIGHT", -15, -15 },
  16. buffXoffset = -35,
  17. buffYoffset = 0,
  18. buffIconsPerRow = 20,
  19. buffMaxWraps = 10,
  20. buffWrapXoffset = 0,
  21. buffWrapYoffset = -55,
  22.  
  23. -- Anchored to topleft corner of the UI,
  24. -- growing vertically down in rows of 15 icons,
  25. -- next row to the right of the previous
  26. buffAnchor = { "TOPLEFT", "UIParent", "TOPLEFT", 15, -15 },
  27. buffXoffset = 0,
  28. buffYoffset = -35,
  29. buffIconsPerRow = 15,
  30. buffMaxWraps = 10,
  31. buffWrapXoffset = 35,
  32. buffWrapYoffset = 0,
  33.  
  34. -- Anchored to bottomleft corner of the UI,
  35. -- growing vertically up in rows of 15 icons,
  36. -- next row to the right of the previous
  37. buffAnchor = { "BOTTOMLEFT", "UIParent", "BOTTOMLEFT", 15, 250 },
  38. buffXoffset = 0,
  39. buffYoffset = 35,
  40. buffIconsPerRow = 15,
  41. buffMaxWraps = 10,
  42. buffWrapXoffset = 35,
  43. buffWrapYoffset = 0,
  44.  
  45. -- Anchored to the topleft corner of the minimap,
  46. -- growing vertically down in rows of 15 icons,
  47. -- next row to the left of the previous
  48. buffAnchor = { "TOPRIGHT", "Minimap", "TOPLEFT", -25, 0 },
  49. buffXoffset = 0,
  50. buffYoffset = -35,
  51. buffIconsPerRow = 15,
  52. buffMaxWraps = 10,
  53. buffWrapXoffset = -35,
  54. buffWrapYoffset = 0,
If you need in-depth info about anchoring, read this and this.


TODO
  • Add third weapon enchant (as soon as Blizzard fixes their code base).
  • Consolidation (as soon as Blizzard fixes their code base).

Credits

A big "Thank You!" goes to sigg, as he posted this nice tutorial on SecureAuraHeaders in the forums.

r24
- Debuff border coloring now also works with ButtonFacade.

r23
- Removed experimental code that caused more taint errors.
- Added position offset settings for duration text.

r21
- Fixed taint errors with enabled ButtonFacade.
- Added separate font color settings for duration text and stack counter.
- Added position settings for stack counter.

r20
- Fixed that garbage thingy -> mem usage should stay low now.
- Due to patch 4.0.3 the following things now properly work (at least): canceling weapon enchants, sorting and disabling "separateOwn" attribute.

r19
- Added ButtonFacade support (disabled by default, requires ButtonFacade r344+).
- Added options to adjust font, font size and font style.

r17
- The duration spiral doesn't overlap the border anymore.
- Added duration bars inside of the icons.
- Added option to toggle duration bars.
- Added option to toggle duration text timers.

r15
- Added some options which allow vertical growth and more.
- Duration text now can also be placed to the left or right of the icon.
- Removed "(de)buffGrowDir" options (you can still change it).
- If you have problems setting it up as you wish, check out the example configs on the description page!

r12
- Fixed duration spirals (again).
- Set "separateOwn" header attribute. So whenever blizz fixes their wonderful code, this will actually make your own buffs not be separated from the others.. *cough*
- Fixed buffs/debuffs not hiding when the whole interface is hidden (ALT+Z).
- Random code improvements.

r10
- Added debuff border coloring by debuff type.
- Added separate scale option for debuffs.
- Nicer border via SetBackdrop.
- Border doesn't look awkward anymore when the icon is blinking.
- Stack counter stays opaque when the icon is blinking.
- Increased maximum number of rows to 10.

r9
- Duration spiral can be turned off again.
- Added option for brightness of the default non-colored icon border.
- Remaining time text matches the tooltip time now.

r8
- Even further reduced CPU usage.
- New blinking algorithm.
- Added option to adjust blinking speed.
- Fixed border color error of second weapon enchant (correct icons, tooltip still broken, blame Blizzard).

r7
- Added different border coloring for temporary weapon enchants (item quality) and debuffs (darkred).
- Added option to disable these colored borders.
- Added cooldown spiral for temporary weapon enchants.
- New border texture.
- Reduced CPU usage.
- Removed updateDelay option (not longer neccessary).

r6
- Removed experimental code that caused an error in the SecureAuraHeader code.
- Fixed bug that hides stack count when the cooldown spiral is disabled.

r4
- Growth direction for Dummies.
- Added option to hide cooldown spirals.

r3
- Fixed cooldown spiral overlaying the stack count.
- Fixed cooldown spiral disappearing.
- Added more detailed positioning/anchoring options.
- Added options for font color, update interval and temporary weapon enchants.
Post A Reply Comment Options
Unread 10-29-10, 03:19 PM  
bastArt77
A Kobold Labourer
 
bastArt77's Avatar

Forum posts: 0
File comments: 7
Uploads: 0
hello,

maybe someone wants to sort buffs/debuffs vertical instead. i use to show buffs horizontal, debuffs vertical. the code is simple...
I added in config.lua two extra lines at

-- horizontal distance between icons
buffXoffset = -35,
debuffXoffset = 0,
so it looks like this

-- horizontal distance between icons
buffXoffset = -35,
buffYoffset = 0,
debuffXoffset = 0,
debuffYoffset = -45,
Y of debuff is negative to grow downwards when growdir = 0. just experiment on your own risk

second change in nivBuffs.lua at

header:SetAttribute("xOffset", isBuff and nivBuffDB.buffXoffset or nivBuffDB.debuffXoffset)
header:SetAttribute("yOffset", 0)
that it looks like the following

header:SetAttribute("xOffset", isBuff and nivBuffDB.buffXoffset or nivBuffDB.debuffXoffset)
header:SetAttribute("yOffset", isBuff and nivBuffDB.buffYoffset or nivBuffDB.debuffYoffset)
maybe you want to add this little feature into your next release
Last edited by bastArt77 : 10-29-10 at 03:20 PM.
Report comment to moderator  
Reply With Quote
Unread 10-29-10, 10:57 AM  
Luzzifus
A Warpwood Thunder Caller
 
Luzzifus's Avatar
AddOn Author - Click to view AddOns

Forum posts: 94
File comments: 237
Uploads: 6
Originally posted by kbc8090
Did you mean to use btn.overlay:SetVertexColor ? Unless you're updating the mod to use SetBackdrop instead?! :P
Actually I'm doing exactly that.

Even though it was a pain in the to get the spell icon borderless AND not overlapping the border to make it look nice while blinking. Well, at least it works for now (r10). First I wanted to use the background of the backdrop for the icon. That worked great until I tried to find a way to crop the blizzard border. So it's a texture now and a backdrop with only the border. If someone knows a more elegant way to do this (code wise), I'd appreciate the input.
Last edited by Luzzifus : 10-29-10 at 11:01 AM.
Report comment to moderator  
Reply With Quote
Unread 10-29-10, 10:36 AM  
kbc8090
A Murloc Raider

Forum posts: 6
File comments: 73
Uploads: 0
Did you mean to use btn.overlay:SetVertexColor ? Unless you're updating the mod to use SetBackdrop instead?! :P

Originally posted by Luzzifus
@kbc8090:
In terms of efficiency I think it doesn't matter much since the updateStyle-functions only will be called on UNIT_AURA events, which is basically only once or twice per buff / stack (when it's applied and when it fades). Sorry I didn't have time to write it myself. ^^

Can't test it right now because I'm at work, but it might be easier using the global DebuffTypeColor table, like this:
lua Code:
  1. local cond = (filter == "HARMFUL") and nivBuffDB.coloredBorder
  2. local c = {}
  3. c.r, c.g, c.b = cond and 0.6 or grey, cond and 0 or grey, cond and 0 or grey
  4. if dType and cond then c = DebuffTypeColor[dType] end
  5. btn.icon:SetBackdropBorderColor(c.r, c.g, c.b, 1)

@Flarin:
I'll add the separate debuff scaling as an option too.

That "slight" problem you got is caused by blizzard code and has to be fixed by them.

@Ael:
In the setHeaderAttributes-function, there is an attribute called "maxWraps". Did you try increasing this from 2 to 3 or higher? I'm not totally sure but this might help. If it does, I'll change it too.
Report comment to moderator  
Reply With Quote
Unread 10-29-10, 05:28 AM  
kit0123
A Kobold Labourer

Forum posts: 0
File comments: 6
Uploads: 0
Originally posted by Luzzifus
The buffs / debuffs are updated as soon as UNIT_AURA fires. Only the timers are updated only once a second because they basically only change once a second..
thank you very much for your quick reply.
As I found that the debuff doesn't shown up immediately.

Um...may be I try again
thank you ^^
Report comment to moderator  
Reply With Quote
Unread 10-29-10, 05:20 AM  
Luzzifus
A Warpwood Thunder Caller
 
Luzzifus's Avatar
AddOn Author - Click to view AddOns

Forum posts: 94
File comments: 237
Uploads: 6
Originally posted by kit0123
I found the buff / debuff are not updated frequently and thus it's very hard to aware and take the response at once.
The buffs / debuffs are updated as soon as UNIT_AURA fires. Only the timers are updated only once a second because they basically only change once a second..
Report comment to moderator  
Reply With Quote
Unread 10-29-10, 05:06 AM  
kit0123
A Kobold Labourer

Forum posts: 0
File comments: 6
Uploads: 0
For those who wanna to add more rows,
may be I share my simple stupid way for modification.

First of all , change the numbers in this line as you want
iconsPerRow = 11, -- maximum number of icons in one row before a new row starts
Secondly, in the following line
header:SetAttribute("maxWraps", 3)
3 is the numbers of rows and you can changes to whatever numbers as you desire
finally, the offset of Y should be adjusted to appropriate value
debuffAnchor = { "TOPRIGHT", "UIParent", "TOPRIGHT", -205, -160 },

and that is~!

However , I have got a problem,
I found the buff / debuff are not updated frequently and thus it's very hard to aware of new debuff and take the response at once.

Anything I can changed in the .lua file in order to reduce the updated time interval?

thank you very m,uch
Last edited by kit0123 : 10-29-10 at 05:22 AM.
Report comment to moderator  
Reply With Quote
Unread 10-29-10, 12:50 AM  
Luzzifus
A Warpwood Thunder Caller
 
Luzzifus's Avatar
AddOn Author - Click to view AddOns

Forum posts: 94
File comments: 237
Uploads: 6
@kbc8090:
In terms of efficiency I think it doesn't matter much since the updateStyle-functions only will be called on UNIT_AURA events, which is basically only once or twice per buff / stack (when it's applied and when it fades). Sorry I didn't have time to write it myself. ^^

Can't test it right now because I'm at work, but it might be easier using the global DebuffTypeColor table, like this:
lua Code:
  1. local cond = (filter == "HARMFUL") and nivBuffDB.coloredBorder
  2. local c = {}
  3. c.r, c.g, c.b = cond and 0.6 or grey, cond and 0 or grey, cond and 0 or grey
  4. if dType and cond then c = DebuffTypeColor[dType] end
  5. btn.icon:SetBackdropBorderColor(c.r, c.g, c.b, 1)

@Flarin:
I'll add the separate debuff scaling as an option too.

That "slight" problem you got is caused by blizzard code and has to be fixed by them.

@Ael:
In the setHeaderAttributes-function, there is an attribute called "maxWraps". Did you try increasing this from 2 to 3 or higher? I'm not totally sure but this might help. If it does, I'll change it too.
Last edited by Luzzifus : 10-29-10 at 05:17 AM.
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 11:07 PM  
kbc8090
A Murloc Raider

Forum posts: 6
File comments: 73
Uploads: 0
Added this to the updateAuraButtonStyle function to get debuff border coloring:

Code:
        local cond = (filter == "HARMFUL") and nivBuffDB.coloredBorder
        local r, g, b = cond and 0.8 or grey, cond and 0 or grey, cond and 0 or grey
	if (dType == "Curse" and filter == "HARMFUL") then
		btn.overlay:SetVertexColor(0.6, 0, 1)
	elseif (dType == "Disease" and filter == "HARMFUL") then
		btn.overlay:SetVertexColor(0.6, 0.4, 0)
	elseif (dType == "Magic" and filter == "HARMFUL") then
		btn.overlay:SetVertexColor(0.2, 0.6, 1)
	elseif (dType == "Poison" and filter == "HARMFUL") then
		btn.overlay:SetVertexColor(0, 0.6, 0)
	else
		btn.overlay:SetVertexColor(r, g, b, 1)
	end
Seems to work fine, whether or not that's the most cpu efficient way, probably not, but I really dont know
Last edited by kbc8090 : 10-29-10 at 12:11 AM.
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 02:47 PM  
Ael
A Kobold Labourer

Forum posts: 0
File comments: 9
Uploads: 0
Originally posted by Maxen
I don't know then... Based on the comment, it will start a new row every 12 buffs .. so if you had 25 or more buffs and only 2 rows, then it is a bug I guess....
Yes, this is what's happening.
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 02:39 PM  
Maxen
A Fallenroot Satyr

Forum posts: 23
File comments: 235
Uploads: 0
Originally posted by Ael
Yes, I've set it to 12 buffs per row, however I want 3 rows. I only get two
I don't know then... Based on the comment, it will start a new row every 12 buffs .. so if you had 25 or more buffs and only 2 rows, then it is a bug I guess....
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 02:31 PM  
Ael
A Kobold Labourer

Forum posts: 0
File comments: 9
Uploads: 0
Yes, I've set it to 12 buffs per row, however I want 3 rows. I only get two
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 02:19 PM  
Maxen
A Fallenroot Satyr

Forum posts: 23
File comments: 235
Uploads: 0
Originally posted by Ael
Is there any way to have buffs appear on more than two rows?
Hmm did you try to lower the number of buffs per row?

Code:
iconsPerRow = 20,    -- maximum number of icons in one row before a new row starts
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 01:33 PM  
Ael
A Kobold Labourer

Forum posts: 0
File comments: 9
Uploads: 0
Is there any way to have buffs appear on more than two rows?
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 12:19 PM  
Flarin
A Frostmaul Preserver
 
Flarin's Avatar
AddOn Author - Click to view AddOns

Forum posts: 290
File comments: 212
Uploads: 1
Great mod, thanks. I have mad a slight change - I REALLY like the defbuffs to be a bit larger. You have set up your mod so wonderfully that this was VERY easy for me to add - edit nifBuffs.lua:

Code:
       

         header:SetScale(nivBuffDB.scale) -- move this line to HERE from below

         if buff and nivBuffDB.showWeaponEnch then
            header:SetAttribute("includeWeapons", 1)
            header:SetAttribute("weaponTemplate", "nivBuffButtonTemplate")
        end
        
        if not buff then                                          -- add this line
                header:SetScale(nivBuffDB.scale+.5)  -- add this line
        end                                                          -- add this line

        header:SetScale(nivBuffDB.scale)              -- remove this line from here and move it as indicated above
There is a "slight" problem - I believe it is your mod, but I am not sure. The tooltip is a little wrong for my weapon enchants - as an Enhanc Shammy I have 2 different weapon buffs - they for some reason always show the first weapon's buff every time, even though when I tooltip over my weapon in the character screen it is correct.

Also - I am seeing the "essence of wintergrasp" buff not be modified at all by this mod - is this by design, is it a bug or has my modification messed something? *edit* turned off "consolodate buffs" works now
__________________

"I will crush and destroy and...ooo...shiny..."

[SIGPIC][/SIGPIC]
Last edited by Flarin : 10-28-10 at 01:28 PM.
Report comment to moderator  
Reply With Quote
Unread 10-28-10, 08:32 AM  
Maxen
A Fallenroot Satyr

Forum posts: 23
File comments: 235
Uploads: 0
Originally posted by kbc8090
Care to share your code to make make times look like this ?

Btw, thanks for this addon
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: