Download
(59Kb)
Download
Updated: 05-29-09 07:16 AM
Pictures
File Info
Updated:05-29-09 07:16 AM
Created:10-27-08 06:48 AM
Downloads:56,888
Favorites:251
MD5:

CooldownWatch  Popular! (More than 5000 hits)

Version: 1.16a
by: Tifi [More]

Bad news, everyone: I quit WoW, my account expires on August 11th. So tick that "Load out of date AddOns" check box and hope for the best!
I just wanted to say thanks for using my AddOns and for all the support, feedback, bug reports, and kind words. Very much appreciated. Bye!


Description
Displays cooldowns of your spells, items or equipment slots. Every cooldown has an icon, the time left, an optional bar, and an optional, user-defined label ("trinket 1" for example).
I wrote this AddOn because I wanted to get rid of all those action buttons, taking up a big part of my screen. I use hotkeys for almost every spell I have, so I don't need buttons. After I hid all those buttons, I was missing two things: Range detection and cooldowns. This AddOn takes care of the cooldown part.

Features
- Speed: I have a slow computer, and I like optimizing code, so I designed the addon to be as fast as possible.
- Watches cooldowns of spells, items or equipment slots
- Fixed, user-defined order: I don't want my cooldowns sorted by time. If I need to know the cooldown of Taunt, I don't want to spend time looking for it, I need it to always be in the same place.
- Disable the bars: If you don't like bars (or want to make the addon run even faster), you can disable them. CooldownWatch will only display the icon and the time left.
- Auto-hide (optional): Hides the cooldown frame if the ability or item is off cooldown to save screen real estate.
- Customizable layout: You can change the bar texture, bar colors, the text color, and the font. Some of these features require SharedMediaLib/SharedMedia-1.0 (not included). Try the addon SharedMedia if you're interested.
You can also change the list layout, i.e. the order of the cooldowns in the list. The default is top to bottom, available options are bottom->top, left->right, right->left.
- Drag-and-drop interface: See below. Or just try it out.

Usage
Enter /cooldownwatch or /cw to toggle the config mode. A small anchor frame is visible if you're in config mode. CooldownWatch automatically activates the config mode if it runs for the first time on a toon. In config mode you can do the following:
Move the cooldown frames: Drag the anchor.
Add a cooldown: Drag and drop a spell or item to the anchor frame to add it at the end of the list.
Or drop it on another cooldown to insert it at that position, and use that cooldown's settings.
Note: If you drag an item from your bags, the item itself will be added as the cooldown. If you drag an item from your character frame, the equipment slot it came from will be watched. That way, you can watch for example the cooldowns of the trinkets you're currently wearing.
Remove a cooldown: Middle click the cooldown frame.
Reorder cooldowns: Drag the cooldown frame.
Access cooldown specific options: Right-click the cooldown frame.
Access global options: Right-click the anchor frame.

IMPORTANT: While you're in config mode, cooldowns won't get updated. You have to leave config mode in order to make cooldowns work.

Things you might be missing (ToDo list)
- Currently there's only one list of cooldowns. Maybe I will add multiple lists someday.

Features CooldownWatch doesn't have, and never will (NoDo list)
- Cooldowns of other players or mobs.
- Automatically add cooldowns.
- Automatic sorting.
- You can't change the format or graining of the time displayed. For example if the cooldown is 2h34m11s, CooldownWatch will display 3h (which means 3h or less) until it's less than 120m. At that point of time it will switch to minutes, and at less than 120s it will display seconds. It's unlikely that I'm going to change this.
- Localization of the config menus. I don't see a real need.

Bugs/Issues
- Drag and drop doesn't work for pet spells, not sure why they disabled this in WoW. Pet spells are not supported at the moment.
- If one spell triggers multiple cooldowns, the results may be unexpected, because CooldownWatch tries to avoid scanning all watched spell cooldowns. Let's say you're watching Shield Bash and Pummel: If you use Pummel, only the cooldown frame of Pummel will be updated. However, if you hide and show the interface (Alt-Z), or reload the UI, or exit config mode, CooldownWatch has to scan all watched cooldowns, and will detect that Shield Bash is on cooldown, too. There's no way for CooldownWatch to know that multiple spells share the same cooldown, unless I add all those combinations manually. Which I'm not going to do.

Notes
The main feature of CooldownWatch is speed. Cooldowns have to use OnUpdate code, which is executed in every frame, i.e. every time WoW redraws the screen.
Most timer addons update the text that displays the time left in every frame. The default interface also does this if you enable the display of buff/debuff duration. Let's say a cooldown has 15 minutes left, so for the next few minutes, the text will only change once per minute. Let's say you have a frame rate of 15fps, that's 900 frames per minute. That means 899 out of 900 times, updating the text is just wasting CPU, because the text won't change anyways. CooldownWatch, on the other hand, only updates the text when it's needed.
Another example: Let's say the cooldown bar has a width of 90 pixels. Again, other cooldown addons would update this bar every frame. For longer cooldowns, most of these updates won't actually change the bar, just waste CPU. It's 90 pixels, so the bar only needs 90 updates, which is exactly what CooldownWatch will do.
One more example: There's an option in CooldownWatch to disable the bar of a cooldown. Most addons would work like this: In every frame they would check if the cooldown has a bar, and update it if there is one. Checking for that bar is CPU overhead; the addon (and your frame rate) becomes a little slower, just because hiding the bar is optional. Most addons look up options in their database, which requires multiple table lookups. Now image you're a programmer. You would know beforehand if you want a bar or not. Since you're a programmer, you can write the code accordingly; you don't need to check if there's a bar or not, you just write the code to update the bar if there is one, or leave that code out, if there is no bar. CooldownWatch works exactly like this, it actually writes the code itself. That way, CooldownWatch can have optional features, without spending time on these checks.

As a small test, I compared CooldownWatch to the addons "Cooldown Timer Bars" and "Cooldown Bars 2.0" from curse. I configured them all to have bars of size 90x18. Then I triggered four cooldowns, and measured the CPU times for each addon with WoW's CPU profiling feature for 30s while all four cooldowns were still running.
CooldownBars 257.6ms
CooldownTimers2 99.2ms
CooldownWatch 15.4ms

1.16a
Bugfix: Item and equipment slot cooldowns cannot be unlearned anymore (e.g. Managems).
Bugfix: CooldownWatchConfig is not always loaded, only when entering config mode.
Bugfix: After learning a tracked cooldown talent, the frame is now initialized properly (auto-hide).

1.16
Added setting to adjust the spacing between bars.
Bugfix: The icon height equals the frame's height now.

1.15
Learning/unlearning talents will now show/hide the corresponding cooldown frames.
Bugfix: Unlearned spells are now initialized properly as collapsed.
TOC interface version bump to 3.1.

1.14b
New: Added option to toggle the Blizzard default icon border.

1.14a
Bugfix: If an ability comes off cooldown earlier (Readiness, Sword&Board, etc), the corresponding frame now resets properly.

1.14
New: The layout being mirrored (icons left, bars shrink from left to right)
is now optional, but still the default.

1.13
Bugfix: If the computer was running for more than 10 days, the addon would
stop working.

1.12
New slash command options:
/cw debug <level>: Sets the debug level, 3 is a good start.
/cw debug: Disables debugging.
/cw log: Shows an ugly frame to copy the debug output.
Ignore cooldowns that are triggered but not started (like Feign Death, Inner Focus, etc).

1.11
If the texture or font was not found (for example because the addon providing
it was deleted), revert do default.
Bugfix: If a cooldown started before the computer was booted, the remaining
time displayed was wrong. (Untested on Mac and Linux).
Bugfix: Faerie Fire (Feral) should work now.

1.10
Bugfix: Spells with a cooldown that doesn't start immediately should work
correctly now (like Inner Focus, but also potions in combat).

1.9
Fixed stuff for 3.0.
.toc version bump.
Added LibSharedMedia-3.0 as an optional dependency.
Removed Dongle.
Bugfix: If the addon was disabled, the anchor's position was reset.
Optional Files (0)


Post A Reply Comment Options
Unread 10-27-08, 05:47 PM  
Toran
A Nerdscale Dorkin
 
Toran's Avatar
Premium Member

Forum posts: 143
File comments: 433
Uploads: 0
This looks great - I like being able to determine the spells/cooldowns visible instead of having to go through and uncheck 100 different items. Does this also work for potions, etc?

Will give it a try.
Report comment to moderator  
Reply With Quote
Unread 10-27-08, 08:21 PM  
Tifi
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 94
Uploads: 4
Originally posted by Toran
Does this also work for potions, etc?
Interesting. I just tried, and potions didn't work correctly in combat because the cooldown doesn't start immediately. Same goes for spells like Inner Focus. Fixed in 1.10, thanks for the hint.
Report comment to moderator  
Reply With Quote
Unread 11-01-08, 07:50 AM  
Tifi
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 94
Uploads: 4
Today I came across an odd bug. Blizzard's Get*Cooldown() functions behaved unexpectedly when the cooldown started before the computer was rebooted. This is due to a limitation of the Windows API function GetTickCount(), which cannot return negative values. I fixed this in 1.11, and it's working here on Windows 2000.

I would very much like to get some feedback from users of OSs other than Windows. The cooldown of course needs to be longer than the time it takes you to reboot and start up WoW, so the Hearthstone should do the trick. To test it, you need to add the Hearthstone in CooldownWatch, start the cooldown, then reboot your computer.

If the addon still doesn't work correctly, I would like to know your OS, and the output of the following script
Code:
/run DEFAULT_CHAT_FRAME:AddMessage(strjoin("; ",GetTime(), GetItemCooldown(6948)))
I would also need the correct cooldown (time remaining) when you executed that script (from the tooltip).
Last edited by Tifi : 11-01-08 at 07:58 AM.
Report comment to moderator  
Reply With Quote
Unread 11-02-08, 09:08 AM  
sonix
A Defias Bandit
 
sonix's Avatar

Forum posts: 2
File comments: 22
Uploads: 0
great addon , exactly what i needed!
but it doesnt work with faerie fire (feral)
i pull it there and a frame appears with no icon
any fix for that?
Report comment to moderator  
Reply With Quote
Unread 11-03-08, 07:17 AM  
Tifi
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 94
Uploads: 4
Ok, Blizzard's functions don't work with "Faerie Fire (Feral)", but "Faerie Fire (Feral)()" works. Fixed in 1.11b, please tell me if it works for you.
Last edited by Tifi : 11-03-08 at 08:06 AM.
Report comment to moderator  
Reply With Quote
Unread 11-04-08, 11:49 AM  
sonix
A Defias Bandit
 
sonix's Avatar

Forum posts: 2
File comments: 22
Uploads: 0
okay almost everything's working fine now, 2 problems left:
when i go into stealth (prowl for druids) a full bar without timer appears, and when i leave stealth then the countdown starts.
other problem: survival instincts (feral talent) gets bugged and stays there with full bar, even when its not on cooldown.
Report comment to moderator  
Reply With Quote
Unread 11-04-08, 11:55 AM  
sonix
A Defias Bandit
 
sonix's Avatar

Forum posts: 2
File comments: 22
Uploads: 0
same for shadowmeld, i guess thats how it works. but the SI bug bothers me a little
Report comment to moderator  
Reply With Quote
Unread 11-04-08, 04:52 PM  
Tifi
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 94
Uploads: 4
I believe both Shadowmelt and Stealth are working correctly. The bar appears as soon as the cooldown is triggered, even though it's not yet started. The same happens with potions, Inner Focus, Feign Death etc. I have to change some stuff for those spells anyways, and I guess it'd be ok if the addon only tracked cooldowns that are actually cooling down.

This SI bug is strange though, it's basically the same spell as Last Stand, and that one works fine. When exactly does this happen? Is the bar always filled, i.e. not initialized properly? Or does the bug only occur after you used it for the first time? And what exactly does or doesn't work? Is it only a problem with the bar not being animated correctly?

BTW thanks for your reports. I only play a Priest and a Warrior, so I can't test the addon with other classes.
Report comment to moderator  
Reply With Quote
Unread 11-05-08, 10:52 PM  
pelf
Sentient Plasmoid
 
pelf's Avatar
Premium Member

Forum posts: 133
File comments: 75
Uploads: 0
I'm feeling a bit stupid about this, but I'm not able to get this working. I drag a spell out onto the anchor. It shows up. I close the spellbook. I exit config mode. I use the spell. OmniCC shows the cooldown, this doesn't.

I tried disabling OmniCC to see if it was conflicting -- no dice. Is it possible some other addon is blocking yours from hooking the cooldown events? Is there a way to find out?

Thanks :\.
Report comment to moderator  
Reply With Quote
Unread 11-06-08, 06:47 PM  
Tifi
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 94
Uploads: 4
Frankly I have no idea. It sounds like you did everything correctly. I assume you used spells with a noteworthy cooldown, the addon ignores cooldowns <=1.6s because of the GCD. You could disable all other addons to see if that helps at all. You could also try to hide/show the UI after using a spell (Alt-Y or Alt-Z, not sure). That's not a solution of course, but it could help me find out what's going wrong.
Report comment to moderator  
Reply With Quote
Unread 11-07-08, 02:41 PM  
pelf
Sentient Plasmoid
 
pelf's Avatar
Premium Member

Forum posts: 133
File comments: 75
Uploads: 0
Originally posted by Tifi
I assume you used spells with a noteworthy cooldown, [...] You could disable all other addons to see if that helps at all. You could also try to hide/show the UI after using a spell (Alt-Y or Alt-Z, not sure).
Yeah, I tried quite a few. Specifically: Consecrate, Holy Shield, Hand of Protection. I'll try running it solo -- though, I'm pretty sure it will work just fine, then :\.

Is there some way in Lua I can trace the cooldown events as they bubble up through all the things that hook them?
Report comment to moderator  
Reply With Quote
Unread 11-07-08, 08:04 PM  
twofeather
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
same problem

I am having the same problem. Can config everything just fine, but no cooldowns are tracked. I added three to it, with varying options. Nothing happens when I do any of the spells.

Addon looks cool, hope I can get it working. Just let me know what I need to do.
Report comment to moderator  
Reply With Quote
Unread 11-08-08, 01:26 PM  
Tifi
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 94
Uploads: 4
Originally posted by nazrhyn
Is there some way in Lua I can trace the cooldown events as they bubble up through all the things that hook them?
No, not really. Registering for events can't be the problem, addons do that independently of each other. It's more likely that I made a mistake. I'll try to get a release ready for tomorrow where I'll include some debugging options.
BTW what's your locale?
Last edited by Tifi : 11-08-08 at 01:36 PM.
Report comment to moderator  
Reply With Quote
Unread 11-09-08, 06:11 AM  
sonix
A Defias Bandit
 
sonix's Avatar

Forum posts: 2
File comments: 22
Uploads: 0
it seems the SI bug was just my own stupidity..i forgot to check autohide frame on that 8)
everythings working fine now, thanks for the great addon
Report comment to moderator  
Reply With Quote
Unread 11-10-08, 09:32 AM  
pelf
Sentient Plasmoid
 
pelf's Avatar
Premium Member

Forum posts: 133
File comments: 75
Uploads: 0
Originally posted by Tifi
No, not really. Registering for events can't be the problem, addons do that independently of each other. It's more likely that I made a mistake. I'll try to get a release ready for tomorrow where I'll include some debugging options.
BTW what's your locale?
en-us ... I'll hold off additional debugging til then. CooldownTimers is definitely a bit of overkill for what I'd like to track -- would much prefer to use yours .
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: