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,767
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 11-17-10, 12:36 PM  
Ravendwyr
A Flamescale Wyrmkin
 
Ravendwyr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 139
File comments: 156
Uploads: 13
I'm having a problem on my Shaman character.

I have a Venerable Mass of McGowan and a Balanced Heartseeker equipped. The Mass is enchanted with Windfury and the Heartseeker is enchanted with Flametoungue.

My problem is, while the button icons and timers are correct, the tooltip for the Heartseeker is the same as the tooltip for the Mass and right-clicking to cancel the Heartseeker's Flametongue cancels the Mass' Windfury instead.

Looking at your code doesn't give me any immediate reasons as to why so I'm going to blame Blizzard's half-finished code and hope it goes away instead.
__________________
Twitter | GitHub
Report comment to moderator  
Reply With Quote
Unread 11-17-10, 12:32 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
Originally posted by Luzzifus
I've uploaded your fix for the memory usage issue (it really seems to help, goes slightly up to about 35-40kb and seems to stay there).

Also, due to patch 4.0.3, the following things now work:
  • Removing weapon enchants by right clicking them
  • Sorting without randomly misplaced auras
  • Disabling the "separateOwn" attribute of the headers

Now I'll look into the third weapon enchant and consolidation.
For the first one: Could somebody tell me what I have to do to apply poisons to my ranged weapon? My lvl 34 rogue can't do that and I don't know why.
Excellent!
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 11-17-10, 11:34 AM  
Luzzifus
A Warpwood Thunder Caller
 
Luzzifus's Avatar
AddOn Author - Click to view AddOns

Forum posts: 94
File comments: 237
Uploads: 6
I've uploaded your fix for the memory usage issue (it really seems to help, goes slightly up to about 35-40kb and seems to stay there).

Also, due to patch 4.0.3, the following things now work:
  • Removing weapon enchants by right clicking them
  • Sorting without randomly misplaced auras
  • Disabling the "separateOwn" attribute of the headers

Now I'll look into the third weapon enchant and consolidation.
For the first one: Could somebody tell me what I have to do to apply poisons to my ranged weapon? My lvl 34 rogue can't do that and I don't know why.
Report comment to moderator  
Reply With Quote
Unread 11-17-10, 02:04 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 shUI
That is absolutely right, from a coding standpoint...yes, its very inefficient. Like the author said, it doesn't really matter when you have lots of memory, however, it's best to fix that. I took out those issues from the constantly updated functions and just made them local to the addon and not created in memory each time it updates the aura buttons and styles. So far it made a huge difference. Check it out Luzz.
I will.

And at this point, I also want to thank all of you who always have nice hints, suggestions, help and moreover so much patience with me!
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 09:19 PM  
Wylder
A Defias Bandit

Forum posts: 2
File comments: 6
Uploads: 0
Thank you very much for the quick fix to the BF issue, and all the time you've put into this addon!
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 07:29 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
Originally posted by Ailae
I should start though by saying that I'm in no great at writing addons nor do I claim to know the best way to optimize or to have any particular knowledge about the inner workings of lua.

But I've found that if an addon is creating a lot of garbage, it's useful to check what kinda stuff is getting created. If you look at your updateAuraButtonStyle function for example, which gets called a lot, I see that you create a table 'c' every time it's called. Maybe this table could be created outside the function and then you just reuse the one table each time.

Same thing with createAuraButton, while it doesn't called nearly as often you could probably create the backdrop-table once outside the function and then just reuse it.

Hope I'm not stepping on any toes or anything, but I've found that moving table creation out of frequently called functions can potentially reduce memory usage.
That is absolutely right, from a coding standpoint...yes, its very inefficient. Like the author said, it doesn't really matter when you have lots of memory, however, it's best to fix that. I took out those issues from the constantly updated functions and just made them local to the addon and not created in memory each time it updates the aura buttons and styles. So far it made a huge difference. Check it out Luzz.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 06:38 PM  
Ailae
A Rage Talon Dragon Guard
 
Ailae's Avatar
AddOn Author - Click to view AddOns

Forum posts: 318
File comments: 75
Uploads: 9
I should start though by saying that I'm in no great at writing addons nor do I claim to know the best way to optimize or to have any particular knowledge about the inner workings of lua.

But I've found that if an addon is creating a lot of garbage, it's useful to check what kinda stuff is getting created. If you look at your updateAuraButtonStyle function for example, which gets called a lot, I see that you create a table 'c' every time it's called. Maybe this table could be created outside the function and then you just reuse the one table each time.

Same thing with createAuraButton, while it doesn't called nearly as often you could probably create the backdrop-table once outside the function and then just reuse it.

Hope I'm not stepping on any toes or anything, but I've found that moving table creation out of frequently called functions can potentially reduce memory usage.
__________________
Oh, the simulated horror!
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 05:49 PM  
Talisia
A Deviate Faerie Dragon

Forum posts: 15
File comments: 21
Uploads: 0
Thank you!

Just wanted to say a massive ty for the time and effort you put into adding button facade support, I was keeping my eye on your progress through these comments I have been waiting to use your addon and am downloading now =)
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 04:52 PM  
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 shUI
I love this addon, I just really feel that the abnormal amount of garbage collection and mem/cpu usage needs to be addressed...what do you think? What do you think is causing this? It went from 20kb out of combat to over 2MB and 200cpu cycles/second in a strand of the ancients fight.
With r18/19, I cannot get the addon to go over 4-5 cycles per seconds, no matter what I try. And that's really only peaks, most of the time it's below 2 cycles per sec. In a whole zerg-like alterac game the top peak was 6.89 cycles per second for me (with all bars and timers and BF enabled).

As for the mem usage: You can add a collectgarbage("collect") to the updateStyle function, which infact keeps the memory at about 25kb all the time. But that WILL let the cpu usage skyrocket, because carbage collection really seems to be expensive. Btw. that's the only way I got the cpu cycles per second significantly higher than 5 (200-400).

Really, since you're not playing with like 512MB RAM, it's totally insignificant if it uses 20kb or 2MB over a fight, no? But I'll think about a way to do a manual garbage collection maybe like every 15-30 seconds or so. Not sure how I would do that though, I don't think another OnUpdate will be nice and on each UNIT_AURA event it's definitly to often.

Also please double check if that cpu cycle issue you have is really caused by the addon itself, since I can't reproduce those numbers with any configuration (using Addon Profiler).
Last edited by Luzzifus : 11-16-10 at 04:57 PM.
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 04:04 PM  
shUI
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 8
File comments: 340
Uploads: 5
I love this addon, I just really feel that the abnormal amount of garbage collection and mem/cpu usage needs to be addressed...what do you think? What do you think is causing this? It went from 20kb out of combat to over 2MB and 200cpu cycles/second in a strand of the ancients fight.
__________________
shPerformance: Data Broker memory/latency/fps usage display utility
shNameplates: Lightweight, simple, and sexy nameplates
shClock: Lightweight and simple data broker clock
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 03:55 PM  
Luzzifus
A Warpwood Thunder Caller
 
Luzzifus's Avatar
AddOn Author - Click to view AddOns

Forum posts: 94
File comments: 237
Uploads: 6
Fixed..

Sorry, there's always something I forget to test.
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 02:20 PM  
brotherhobbes
A Rage Talon Dragon Guard
AddOn Author - Click to view AddOns

Forum posts: 313
File comments: 41
Uploads: 2
Same issue as Valik and Wylder. Using ButtonFacade r344.
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 01:48 PM  
Valik
A Defias Bandit

Forum posts: 2
File comments: 12
Uploads: 0
Originally posted by Wylder
Setting Buttonfacade to "true" in the config breaks the ability for me to right click off buffs.
I think this is because the mouse no longer interacts with buffs. I do not get a tooltip when I hover over them, either. I'm not sure what is causing this, my local hacked version with ButtonFacade support worked just fine. Not sure if it's a mistake in the code or of the newest ButtonFacade broke this somehow.
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 01:02 PM  
Wylder
A Defias Bandit

Forum posts: 2
File comments: 6
Uploads: 0
Setting Buttonfacade to "true" in the config breaks the ability for me to right click off buffs.
Last edited by Wylder : 11-16-10 at 01:03 PM.
Report comment to moderator  
Reply With Quote
Unread 11-16-10, 12:59 PM  
Yussut
A Kobold Labourer

Forum posts: 0
File comments: 6
Uploads: 0
Thank you for this simple and useful addon.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: