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,879
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 11-01-10, 07:48 AM  
boomboo
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 40
Uploads: 7
I've uploaded a fixed/patched version to http://www.wowinterface.com/download...wnWatchct.html
Report comment to moderator  
Reply With Quote
Unread 10-22-10, 01:42 PM  
Tahina
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Hello
I did all the changes for the libs and now the menu for config works fine, but I still can't drop any spell in the button. Any help?
Thanks for help
Tahina - Kael'Thas (EU)
Report comment to moderator  
Reply With Quote
Unread 10-21-10, 01:35 PM  
Sugarrnspice
A Kobold Labourer

Forum posts: 0
File comments: 7
Uploads: 0
YO TOOSICK!!

It worked!! just replaced those 5 files, didnt work the first time i tried so i did it again, mustve done something wrong the first time :P TYVM for the help!
Report comment to moderator  
Reply With Quote
Unread 10-21-10, 11:31 AM  
Myam
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
The problem is the libs. I got the same error when using this addon alone. It wasn't grid which contained the newer libs since it's updated to Ace3, it was oRA2.

After I replaced the libs with the lastest from wowace everything is working as it should I think. You can't just unzip the libfiles, you need to find and replace the following 5 files with the correct ones from the zipfiles:

CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua
CooldownWatchConfig\libs\AceLibrary\AceLibrary.toc
CooldownWatchConfig\libs\AceOO-2.0\AceOO-2.0.lua
CooldownWatchConfig\libs\AceOO-2.0\AceOO-2.0.toc
CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua

You don't have to be registered at wowace, the latest will do. I saw it said it is for an old version but that can't be true since they are updated 2010.

If I find out how to upload a new version of this addon I will.
Last edited by Myam : 10-21-10 at 11:51 AM.
Report comment to moderator  
Reply With Quote
Unread 10-20-10, 05:11 PM  
Sugarrnspice
A Kobold Labourer

Forum posts: 0
File comments: 7
Uploads: 0
Originally posted by Myam
I have been using this addon to monitor Tree of life and Tranquility since I got it working after 4.0.1 but maybe this is working for me because I still use Grid 1 which contain newer versions of the libraries and these might be used instead of the ones with Cooldownwatch.

One thing worth trying might be to replace the libraries with the latest. I believe the lastest can be found in DewdropLib-r324.zip and Ace2-r1101.zip on wowace.

I will see if I can reproduce this error myself by using this addon alone.
Ok ill take a look at those files. Just to clarify though, i can use the addon to monitor the cooldowns of said spells, i just cant configure them via the menu's, namely the autohide function is what im after




-EDIT- googled both those files and downloaded from wowace, although i only saw versions that were made for previous versions of wow. Unfortunately, they didnt seem to help. Not sure if i have to make a wowace account to be able to see the newest version or something
Last edited by Sugarrnspice : 10-20-10 at 05:20 PM.
Report comment to moderator  
Reply With Quote
Unread 10-20-10, 04:09 PM  
Myam
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
I have been using this addon to monitor Tree of life and Tranquility since I got it working after 4.0.1 but maybe this is working for me because I still use Grid 1 which contain newer versions of the libraries and these might be used instead of the ones with Cooldownwatch.

One thing worth trying might be to replace the libraries with the latest. I believe the lastest can be found in DewdropLib-r324.zip and Ace2-r1101.zip on wowace.

I will see if I can reproduce this error myself by using this addon alone.
Report comment to moderator  
Reply With Quote
Unread 10-20-10, 02:14 PM  
Sugarrnspice
A Kobold Labourer

Forum posts: 0
File comments: 7
Uploads: 0
Originally posted by Myam
I assume you have 1.16a with the patches for 3.3, 3.3.3 and mine for 4.0.1 applied in this order.

Which spells?
Please post the lua error.
Well i had full functionality up until the 4.0 patch so im assuming i had the 3.3 and 3.3.3 updates already, not entirely sure on that though and im not sure how i would check. i did the changes which you suggested to get the addon to function, which, just to double check, ive posted below.

CooldownWatch.lua line 526 from:
if event == 'ADDON_LOADED' and arg1 == 'CooldownWatch' then
to:
if event == 'ADDON_LOADED' then

modules.lua line 91 from:
local name = GetSpellName(index, spelltype)
to:
local name = GetSpellBookItemName(index, spelltype)
modules.lua line 660 from:
watchtype, watchname = 'spell', (GetSpellName(info1, BOOKTYPE_SPELL))
to:
watchtype, watchname = 'spell', (GetSpellBookItemName(info1, BOOKTYPE_SPELL))

When i open the cw config mode and right click the dot, i get :

Message: ...CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:610: attempt to index global 'this' (a nil value)
Time: 10/20/10 16:09:44
Count: 24
Stack: ...CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:610: in function <...CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:603>

Locals: (*temporary) = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2997
(*temporary) = <table> {
Unregister = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2944
Register = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2895
AddSeparator = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:3040
OnTooltipHide = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:3365
KEY_BUTTON2 = "Right Mouse"
hookedTooltip = true
argCheck = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua:129
AddLine = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:3053
onceRegistered = <table> {
}
registry = <table> {
}
pcall = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua:167
GetLibraryVersion = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua:585
IsOpen = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2718
GetOpenedParent = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2723
error = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua:75
IsRegistered = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2890
Refresh = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:1890
InjectAceOptionsTable = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:3301
KEY_BUTTON1 = "Left Mouse"
FeedTable = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:1773
Close = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2997
Open = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2949
frame = <unnamed> {
}
EncodeKeybinding = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2658
FeedAceOptionsTable = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:1272
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index global 'this' (a nil value)"
sliderFrame = nil
editBoxFrame = nil
Refresh = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:1832
self = <table> {
Unregister = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2944
Register = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:2895
AddSeparator = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:3040
OnTooltipHide = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:3365
KEY_BUTTON2 = "Right Mouse"
hookedTooltip = true
argCheck = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua:129
AddLine = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\Dewdrop-2.0\Dewdrop-2.0.lua:3053
onceRegistered = <table> {
}
registry = <table> {
}
pcall = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua:167
GetLibraryVersion = <function> defined @Interface\AddOns\CooldownWatchConfig\libs\AceLibrary\AceLibrary.lua:585
IsOpen = <function> defined @Interface\AddOns\Cool


The cooldowns i am wanting to change with the menu settings are the new tree of life, Tranquility, and the new thorns. If you need the errors i get when right clicking each individual spell in the config mode, lemme know
Report comment to moderator  
Reply With Quote
Unread 10-20-10, 10:49 AM  
Myam
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
Originally posted by Sugarrnspice
Anyone know how to get the options menu to work again? Ive made the lua changes to get the basic functionality back up but i have new cooldowns to monitor since the 4.0.1 release and i cant make the bars autohide due to lua errors with the rightclick menus. I really love this addon and i hate to see it so buggy
I assume you have 1.16a with the patches for 3.3, 3.3.3 and mine for 4.0.1 applied in this order.

Which spells?
Please post the lua error.
Report comment to moderator  
Reply With Quote
Unread 10-19-10, 02:36 PM  
Sugarrnspice
A Kobold Labourer

Forum posts: 0
File comments: 7
Uploads: 0
Anyone know how to get the options menu to work again? Ive made the lua changes to get the basic functionality back up but i have new cooldowns to monitor since the 4.0.1 release and i cant make the bars autohide due to lua errors with the rightclick menus. I really love this addon and i hate to see it so buggy
Report comment to moderator  
Reply With Quote
Unread 10-14-10, 01:10 PM  
Myam
A Kobold Labourer

Forum posts: 0
File comments: 5
Uploads: 0
My CooldownWatch stopped working after 4.0.1. I have done some changes and now it monitors my already configured cooldowns without lua errors, more changes might be needed though.

CooldownWatch.lua line 526:
if event == 'ADDON_LOADED' and arg1 == 'CooldownWatch' then
add the following before the if:
local arg1 = ...

modules.lua line 91 from:
local name = GetSpellName(index, spelltype)
to:
local name = GetSpellBookItemName(index, spelltype)
modules.lua line 660 from:
watchtype, watchname = 'spell', (GetSpellName(info1, BOOKTYPE_SPELL))
to:
watchtype, watchname = 'spell', (GetSpellBookItemName(info1, BOOKTYPE_SPELL))

Edit:
boomboo ponited out in http://www.wowinterface.com/downloads/info16127-CooldownWatch2.html#comments that my original fix had a flaw so I have corrected this post.
Last edited by Myam : 10-21-10 at 01:37 PM.
Report comment to moderator  
Reply With Quote
Unread 04-14-10, 10:59 AM  
vognar
A Defias Bandit

Forum posts: 3
File comments: 18
Uploads: 0
Hi guys, thanks for addon its the best! but i have 1 problem when i play my priest everything is always fine but when i log into my alt rogue and i set all cooldown bars they work only until i log off. if i login again i need to set everything from the beginning ;(( what should i do?
Report comment to moderator  
Reply With Quote
Unread 03-25-10, 11:01 PM  
macbuz
A Murloc Raider

Forum posts: 5
File comments: 7
Uploads: 0
Originally posted by boomboo
A fix for 3.3.3 change to the following in modules.lua:
line 43: t:SetPoint("RIGHT",self,"RIGHT",0,0)
line 68: --t:SetTexCoordModifiesRect(true)
didn't fix my CDW.
Report comment to moderator  
Reply With Quote
Unread 03-24-10, 12:06 PM  
Aîm
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
fixed
Last edited by Aîm : 03-24-10 at 12:56 PM.
Report comment to moderator  
Reply With Quote
Unread 03-24-10, 10:00 AM  
boomboo
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 4
File comments: 40
Uploads: 7
A fix for 3.3.3 change to the following in modules.lua:
line 43: t:SetPoint("RIGHT",self,"RIGHT",0,0)
line 68: --t:SetTexCoordModifiesRect(true)
Report comment to moderator  
Reply With Quote
Unread 03-23-10, 06:13 PM  
Fizbyn
A Kobold Labourer

Forum posts: 0
File comments: 24
Uploads: 0
I 100% agree with Ascension it rocked totally customizable, drag and drop functionality could watch the cooldown on any spell ability or item. if anyone know lua please see about repairing this addon hes right also there is nothing else like this anywhere that i have found
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: