Download
(4Kb)
Download
Updated: 12-03-11 02:26 PM
Pictures
File Info
Updated:12-03-11 02:26 PM
Created:07-26-11 06:53 PM
Downloads:1,653
Favorites:5
MD5:

AvMiCheck

Version: 1.3.1
by: e42randy [More]

Avoidance/Mitigation Check (AvMiCheck) is a small AddOn designed to display updated information regarding defensive stats. Besides a standard frame for non-tanks, each tanking class/spec (as well as some others!) have their own custom design, including vital mitigation CD status updates.

The armor display is in percentages, and displays white if its your unbuffed Armor value, green if your Armor is buffed, and red if its debuffed. The other avoidance/mitigation stats - Avoidance and Block (and CTC for pallies/wars) act slightly differently. Their default values (in white) are recorded at the time combat begins, and increases or decreases in the fight are reflected by their change in value and color.

The purpose of this AddOn is to allow a user to have access to this information in a minimalistic manner, using the least amount of screen real estate and resources, and without having to switch UIs or use additional broker addons.

This AddOn came to be due to my own personal desire for it on my Prot Paladin. As such, it is tailored to my original needs, and edited as input is given. I'm open to any suggestions for alterations. Especially helpful would be feedback from non-Prot Paladin tanks, as I do not frequently play those character types.

Custom frames:

  • Protection Paladin (see picture)
  • Protection Warrior (see picture)
  • Blood Deathknight (see picture)
  • Druid in Bear Form (see picture)
  • Mage - adds Armor notification
  • Warlock - adds Armor notification
  • Rogue - Evasion and Combat Readiness notifications
  • Generic shield and non-shield wielders (see picture)

To access ingame settings: Type '/avmi' in your chat frame for a full, current listing of commands.

Please leave a comment if a change has broken something, or if you dislike a change.

v1.3.1
  • Updated TOC file to reflect the new game number. Now the addon will run without having to allow outdated addons. Nothing else has changed. Sorry, taking a break from WoW atm.

v1.3.0
  • CPU usage drastically reduced. Took some searching, but finally found the event for armor changes (armor is apparently resistance now), so I was able to convert the whole thing to event-based instead of auto-updating. Idle and dummy testing show drastic reduction in CPU time. Otherwise, should work the same as before.

v1.2.0
Shelved for 1.3.0 to be pushed out. Will rework into another update.

v1.1.0
  • Fixed a bug which cut CTC output at 102.4% The correct amount should now display. Thanks Ruak for pointing that out.
  • Added a layout for Rogues. Evasive and Combat Readiness are now tracked.
  • Night elves now correctly get their +2% miss added to their avoidance amount. If NEs could be pallies...

v1.0.0
  • Added programming to allow for calculation of crit block for a Prot Warrior using Shield Block, should he/she reach/pass the CTC cap of 102.4. I cannot personally test this, as my warrior is nowhere near ready to try that. Please leave feedback should you notice problems or if it works correctly.
  • Added custom layouts for Warlocks and Mages. They now get a status message for the status of their armors.
  • Added Avoidance/Block/CTC fight tracking. This locks in initial values from the start of the fight, and will tell you if your values are buffed/debuffed throughout a fight. For instance, if your Prot Paladin gets a Windwalk buff during the fight, her CTC and avoidance values will increase and be displayed in green (along with the change in value).
  • Compacted/changed some of the code. Its the same size as before (~14KB unpacked), just with more features.
Post A Reply Comment Options
Unread 09-08-11, 12:55 PM  
e42randy
A Kobold Labourer
 
e42randy's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 9
Uploads: 4
First, sorry for the late response. I check my addons on my phone constantly (obsessively?), but my actual "at a computer" time this weekend was brief. Apparently my fingers are too fat/clumsy to do the amount of typing required for a reply.

I have only done a cursory read up on implementing a feed, and it does look relatively simple. I mentioned I'd look into an option feed; I guess I should have flatly said that means being able to do either a frame or a feed, as you have recommended in the last comment. Right now, there are only 3 things stopping me from jumping on this:
1) It doubles the size of the addon to just add the required files (let alone writing in feed code to the main file). Not a big problem, I know, seeing as its only like 16KB at the moment, but for some reason I'm apprehensive about doing that for a feature not initially intended. I'll probably get over this though.
2) There are some features that were intended (or at least core to what I had planned) that I want to work on first. There were a few in the works that I had almost finished when I set them aside to fix the CPU issue. These can probably be put in with little hassle, and then its off to the ones I hadn't started. But the big one:
3) I find myself playing the game when I'm at a computer I can access WoW on. Even if I like dabbling in addons, its hard to stay on target.

Originally posted by Zidomo
When you are tracking cooldowns/expiries/etc. of something in-game continually--via using OnUpdate or anything else--it will use CPU time to some degree. When the frame (or upcoming LDB feed) for the alerts is hidden, there is no reason for the mod to still be tracking those cooldowns. So hopefully the current version is using 0 CPU when the frame is hidden.
Well, the reason I was using an OnUpdate loop was, as I amateurishly tried to describe earlier, was because I couldn't find all the Events needed to track certain things. The big hurdle was Armor, which I recently finally found an Event for (its part of the Resistance event for some reason). The addon now only updates when a corresponding event is triggered, instead of constantly.

One of the things I've already implemented that will be in the next update is code to ignore some stuff when the frame is hidden (calculations and display updates). This should lower the CPU usage to miniscule amounts when the frame is hidden, but it won't be 0. I'll look more into it, but as far as I can tell, even if I block out all corresponding code for an Event trigger, there will still be some CPU usage when the Event happens (it'll still fire the Event function, where it will see not to do anything else). To try to make more sense: in order to use 0 CPU without disabling the AddOn in the manager, I think would have to unregister Events to avoid the (minimal) CPU usage on just checking triggers. I'll look more into it to see if that's something you can do on the fly, as opposed to when you load the AddOn. edit: Alright, found a source on how to do this. I'll work it into the next update.

Lunch break is over. Sorry if this all seemed rushed. It kind of was.
Last edited by e42randy : 09-08-11 at 05:43 PM.
Report comment to moderator  
Reply With Quote
Unread 09-03-11, 02:46 AM  
Zidomo
A Cliff Giant
 
Zidomo's Avatar

Forum posts: 76
File comments: 1046
Uploads: 0
Thanks for the responses .

Originally posted by e42randy
2) I wanted it to work on its own. I know there are a lot of fine addons out there that augment other addons, and allow feeds and the like. I didn't really want to make something that required something else. I know it may be weird of me to think like that, but sometimes dependencies don't make sense to me.

I'll look into adding a feed option to it. In the least its a good learning exercise, and it may persuade me into allowing dependencies in my addons in general.
A LDB feed is not necessarily a dependency. You don't need to use it for everything if you don't want to.

You can have an addon that presents all its info on its own (in a separate frame if you like as it is now), while still providing an option for a LDB feed of the info instead. With the ability for a user to turn off the separate frame and go solely with the LDB feed.

In addition, implementing a LDB feed is quite simple. Here is the main page for it, with links to the data specifications & API documentation at the bottom.

A third option you can combine with that is a minimap icon substitute for the feed those who don't run a LDB display. Can be implemented via the LibDBIcon-1.0 library.
Originally posted by e42randy
As posted in the description of this addon, I wrote it for my original desires, and one of them was to track my Holy Shield. The other class cooldowns I added so it wasn't such a Paladin-centered addon. One of the things I was planning on doing at some point was to make options to toggle tracking cooldowns. I just fell for the old programmer folly of pushing something out before I probably should have. Even amateurs can make those kinds of mistakes, I guess.
No problem at all, really. Better to have made the effort than to have skipped it entirely.

The massive CPU being used was the key to making the suggestion for separating the cooldown alerts. Not necessarily into a different addon (but that would be cool), but something that can be turned off entirely by users that only want the stat info.

When you are tracking cooldowns/expiries/etc. of something in-game continually--via using OnUpdate or anything else--it will use CPU time to some degree. When the frame (or upcoming LDB feed) for the alerts is hidden, there is no reason for the mod to still be tracking those cooldowns. So hopefully the current version is using 0 CPU when the frame is hidden.
Last edited by Zidomo : 09-03-11 at 03:19 AM.
Report comment to moderator  
Reply With Quote
Unread 08-30-11, 06:15 PM  
e42randy
A Kobold Labourer
 
e42randy's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 9
Uploads: 4
Note: the CPU issues have been fixed in v1.3.0. The rest of this post (as of v.1.3.0) is still in play.

Originally posted by Zidomo
AvMiCheck v1.1.0 has good info provided; one of only three such mods I've tested offering accurate mitigation totals for WoW 4.2 (other ones being Broker TankInfo & Broker_Unhittable). Not a fan of AvMiCheck's separate frame, though; wish it offered a LDB (Broker) alternative feed.
First, thanks for the feedback. Always nice to hear someone try out something of yours.

I didn't make it into a feed (and subsequently why I put it into a frame) for two reasons:
1) It was the first addon I wrote, so its very simple. All (two) of my addons are still simple. I need to work on them and my skill with addons and Lua in general, I know.
2) I wanted it to work on its own. I know there are a lot of fine addons out there that augment other addons, and allow feeds and the like. I didn't really want to make something that required something else. I know it may be weird of me to think like that, but sometimes dependencies don't make sense to me.

I'll look into adding a feed option to it. In the least its a good learning exercise, and it may persuade me into allowing dependencies in my addons in general.

Originally posted by Zidomo
But one serious problem with it. So serious that its unusable here and can be a major contributor to in-game lag for others. It oddly uses an extremely high amount of CPU time.
Wow, I didn't know that it was that bad. When I was reading up on how to get continual updates without hanging the system, the only option I saw is the one I implemented. Its a while loop, which I thought might still be intensive. When I tested it, I experienced no performance degradation on both my main rig and my 3 year old laptop, so I left it at that. I didn't use any CPU monitoring though, so I'll take your word for it.

I'll look into this, and see if there's a way to rework it without that while loop. I originally wanted to use only event triggers (like I did in my 2nd addon We Know!), but I couldn't find all of the ones I would need. I'll have to take a closer (longer) look at the list and plan it out as best I can.

Originally posted by Zidomo
If you are really set on including "mitigation cooldown updates/alerts" (I believe they are better left to cooldown timer mods, not stat mods such as this with a non-resizable frame)
As posted in the description of this addon, I wrote it for my original desires, and one of them was to track my Holy Shield. The other class cooldowns I added so it wasn't such a Paladin-centered addon. One of the things I was planning on doing at some point was to make options to toggle tracking cooldowns. I just fell for the old programmer folly of pushing something out before I probably should have. Even amateurs can make those kinds of mistakes, I guess.

Thanks again for the feedback (I really do appreciate it), and sorry for this wall of text.
Last edited by e42randy : 08-31-11 at 01:05 AM.
Report comment to moderator  
Reply With Quote
Unread 08-29-11, 02:07 PM  
Zidomo
A Cliff Giant
 
Zidomo's Avatar

Forum posts: 76
File comments: 1046
Uploads: 0
AvMiCheck v1.1.0 has good info provided; one of only three such mods I've tested offering accurate mitigation totals for WoW 4.2 (other ones being Broker TankInfo & Broker_Unhittable). Not a fan of AvMiCheck's separate frame, though; wish it offered a LDB (Broker) alternative feed.

But one serious problem with it. So serious that its unusable here and can be a major contributor to in-game lag for others. It oddly uses an extremely high amount of CPU time.

Mod version as noted above, USEnglish client/server, WoW 4.2.0a live. Tested with OptionHouse with CPU profiling enabled, no other mods active. On idle, AvMiCheck consumes 11.1-11.4 CPU/second. In combat (with the frame hidden), it increases to an even more outrageous 14.9-15.5 CPU/second.

It really should use 0 CPU/second on idle or in combat when the frame is hidden. As well as much (much) less than it does now when the frame is showing & providing those unexpected cooldown alerts. The other two mentioned mitigation info mods use 0 CPU/second all the time.

If you are really set on including "mitigation cooldown updates/alerts" (I believe they are better left to cooldown timer mods, not stat mods such as this with a non-resizable frame), work still needs to be done to reduce the CPU consumption.
Last edited by Zidomo : 08-29-11 at 02:18 PM.
Report comment to moderator  
Reply With Quote
Unread 08-10-11, 08:12 AM  
e42randy
A Kobold Labourer
 
e42randy's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 9
Uploads: 4
Originally posted by Ruak
Quite handy addon, I actually didn't find better alternatives with the same purpose. But I have 1 critique - being a paladin myself, when out of combat, the CTC % just stops at 102.4%, even if you're way above it.
Thanks for liking it!

I had it originally so that it would display CTC above 102.4%. Looking at it, it appears I cut it off so Warrior Shield Block would compute correctly, but at the wrong point. I'll fix this and have the update posted tonight when I get a chance to test it after work.
Report comment to moderator  
Reply With Quote
Unread 08-09-11, 03:57 PM  
Ruak
A Kobold Labourer

Forum posts: 0
File comments: 24
Uploads: 0
Quite handy addon, I actually didn't find better alternatives with the same purpose. But I have 1 critique - being a paladin myself, when out of combat, the CTC % just stops at 102.4%, even if you're way above it. I usually test some numbers while idling in Org, by buffing myself with kings and standing next to a shaman friend for +str buff, while switching foods/elixirs around. I do wanna see how much exactly above the CTC number I am with full raid buffs so I can adjust gemming to the smallest detail, but with the current mechanism of the addon, I can't do it outside of raid environment. Is there a way to fix that? Or is there an online CORRECT (as all the ones I've seen have wrong formulas) spreadsheet where I can put raw values, add buffs, etc, and get a correct number, so I can make my own calculations outside of a raid? Thanks!
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: