OmniCC is an addon that adds text to items/spells/abilities that are on cooldown to indicate when they'll be ready for use. OmniCC should be compatible with any addon that uses a cooldown model.
A configuration GUI is included, and can be shown via /omnicc or /occ
Change Log - OmniCC
2.2.5
* Updated Chinese translation
2.2.4
* Added Korean translation.
2.2.3
* Pulses will now only happen for cooldowns that have a duration > 30 seconds
2.2.2
* Added a check before calling GetTexture to prevent redbox issues.
2.2.1
* Updated options menu code for the new Wrath build. This will probably break people on the PTR
* Added Russian translation
2.1.1
* Rethrottled the updates
* Tweaked the no cooldown count flag to hide active timers.
2.1.0
* Updated a setting to make LSM3 work properly.
* Fixed a bug with embeds.xml
* Switched to using noCooldownCount to signify that cooldown count should not display on an object, instead of noomnicc
2.0.9
* Updated to LSM 3
* Unthrottled the updates for cooldowns with durations > 1 minute. This is to (hopefully) prevent an issue with the rogue ability Preparation.
* Reimplemented the slash commands
Optional Files - OmniCC
Sorry, there are currently no optional files available.
Originally posted by Tuller I have no control over cooldowns beyond giving them a text display.
Maybe you can then inform Blizzard about this annoying bug?
I'm playing on a EU Realm and the possibilities to inform the developers about a bug in the EU forums (especially Interface bugs) are really non existent
Originally posted by cremor I'm seeing that DK problems too. Rune cooldowns seem to overwrite ability cooldowns and even other Rune cooldowns.
A fix would be great!
I have no control over cooldowns beyond giving them a text display.
It seems as if OmniCC bugs out with Death Knights. I'm not sure exactly under what conditions this occurs, but it happens quite frequently. When I originally press a button, the correct cooldown appears to start. But at some point it get's changed and it will show the ability as being ready, yet there is still a cooldown remaining.
I've been using this addon for a very long time and I've never had a problem on my warrior. I'm assuming it has something to do with the new rune system that might be messing it up.
Originally posted by Tuller A is the reason I actually removed the blacklist functionality from OmniCC when I wrote the modern version. Pitbull, for example, does not contain frames with names. Neither did my own Sage, for a while. I'm not sure if oUF does or not. I know the Perl variants contain named frames, as do the Blizzard frames.
I think the best approach to the matter would be a whitelist/plugin system, something like what you have for ButtonFacade. That way, that way, addons could register themselves with the cooldown count thingy, and one could provide a better interface for disabling cooldown count on a per addon basis. If someone wants to take OmniCC's code and create such an addon, you have my blessing.
That being said, OmniCC is meant to be a universal cooldown count addon, and I want to avoid adding in addon specific code as much as possible.
for some reason all of these addons together dont mix very well, i mean i just have one problem. For some reason on my death knight whenever i activate Unbreakable Armor, (which has a 60 sec could down) then i activate something like Death and Decay (30 sec), it shows the time going down, the spell cools down but since Unbreakable armor costs 1 frost rune, and Death and Decay costs one of each, my frost abilities go on Cooldown for 8 sec each, and when they're on cooldown my MSBT says my Unbreakable armor is ready even though it still has a 30 sec+ cooldown. This always messes me up in instances and such. Also sometimes on both of those ablilities the cooldown number dissapears on the action button and i cant see what the cooldown is. PLEASE HELP. (btw i have the most recent download for each one)
Originally posted by Lonny I'm not quite sure to what you meant here, so I'll try to go through on few points.
a) If you meant it will block them literally, that's incorrect, the condition will never met, since these frames don't have a name, nor I can add them to the black list.
b) The find method can throw an error, due to the :GetName() resulting a nil on nameless frames, but you can always check for it and avoid the error. (The example was just for demonstration purpose.)
if self and self:GetName() and self:GetName():find(v) then return end
c) This method obviously won't catch namesless frames, but it's still good to have, you can still keep the flag in conjunction to this approach.
A is the reason I actually removed the blacklist functionality from OmniCC when I wrote the modern version. Pitbull, for example, does not contain frames with names. Neither did my own Sage, for a while. I'm not sure if oUF does or not. I know the Perl variants contain named frames, as do the Blizzard frames.
I think the best approach to the matter would be a whitelist/plugin system, something like what you have for ButtonFacade. That way, that way, addons could register themselves with the cooldown count thingy, and one could provide a better interface for disabling cooldown count on a per addon basis. If someone wants to take OmniCC's code and create such an addon, you have my blessing.
That being said, OmniCC is meant to be a universal cooldown count addon, and I want to avoid adding in addon specific code as much as possible.
Originally posted by Tuller Now, using that method: block nameless frames
I'm not quite sure to what you meant here, so I'll try to go through on few points.
a) If you meant it will block them literally, that's incorrect, the condition will never met, since these frames don't have a name, nor I can add them to the black list.
b) The find method can throw an error, due to the :GetName() resulting a nil on nameless frames, but you can always check for it and avoid the error. (The example was just for demonstration purpose.)
if self and self:GetName() and self:GetName():find(v) then return end
c) This method obviously won't catch namesless frames, but it's still good to have, you can still keep the flag in conjunction to this approach.
Originally posted by Lonny I was wondering if you can add a blacklist table to prevent certain frames to be shown.
Here is a complete example.
Code:
local blacklist = {
"LonnyPetBuffs",
"TotemFrameTotem",
}
And inside the hook 'hooksecurefunc(methods, 'SetCooldown', function(self, start, duration)'
Code:
if type(blacklist) == "table" and #blacklist > 0 then
for i, v in ipairs(blacklist) do
if self and self:GetName():find(v) then return end
end
end
I do know about the 'noCooldownCount' flag but you wouldn't expect one to go through all the addons (or their frames, specifically buttons) and modify the frames to have this flag would you ? :P
Just a thought, I hope you will take it into consideration, except that, awesome work, keep it up!
I was wondering if you can add a blacklist table to prevent certain frames to be shown.
Here is a complete example.
Code:
local blacklist = {
"LonnyPetBuffs",
"TotemFrameTotem",
}
And inside the hook 'hooksecurefunc(methods, 'SetCooldown', function(self, start, duration)'
Code:
if type(blacklist) == "table" and #blacklist > 0 then
for i, v in ipairs(blacklist) do
if self and self:GetName():find(v) then return end
end
end
I do know about the 'noCooldownCount' flag but you wouldn't expect one to go through all the addons (or their frames, specifically buttons) and modify the frames to have this flag would you ? :P
Just a thought, I hope you will take it into consideration, except that, awesome work, keep it up!
I'm having a problem where, for whatever reason, my cooldowns aren't showing up on my bars on my Hunter; however, they are showing up for all my other characters. I use Bartender4 for the bars. Oddly enough it does show the cooldown on items in my character sheet and in my spellbook so I'm not sure why it isn't working on my bars.
EDIT: Just read the comment before mine and fiddled with the 'Minimum Scale'; I had it at 60% and once I moved it down to 55% or lower it showed up again .
Last edited by heritikyl : 11-16-2008 at 01:44 PM.
Originally posted by Tuller I think one key issue people are having is this: OmniCC does not have any clue about what it is displaying cooldown text on. It could be buffs, action buttons, casting time, items...whatever. This is the key to why OmniCC is able to work on everything.
OmniCC knows the following, though:
The duration of the timer its showing text for. This, along with the minimum duration option is used to determine if OmniCC should show text or not. This is also used to determine if the item should pulse when complete.
How big the thing is that its showing text for. This, along with some magic math and the minimum scale option, is used to determine if OmniCC should show text or not.
A guess at the icon of the thing it is showing text for. This is used for the pulse, obviously.
If CooldownModel.noCooldownCount is set or not. If so, then OmniCC won't show text for that particular frame.
Nowhere on that list is the name of the frame OmniCC is showing things for (which I can know, but don't because not all frames have names, aka pitbull buffs). Play around with the minimum scale option until the text on your buffs is gone, but the text on your bars remain.
Thank you for this note Tuller. This is what I needed to know.
Originally posted by blackpandemic [12:16:29] Interface\FrameXML\UIPanelTemplates.lua:230: attempt to index local 'self' (a number value)
[C]: ?
Interface\FrameXML\UIPanelTemplates.lua:230: in function <Interface\FrameXML\UIPanelTemplates.lua:229>
Interface\AddOns\OmniCC_Options\menu.lua:265: in function <Interface\AddOns\OmniCC_Options\menu.lua:264>
[C]: in function `SetVerticalScroll'
[string "*:OnValueChanged"]:1: in function <[string "*:OnValueChanged"]:1>
[C]: in function `SetValue'
Interface\FrameXML\UIPanelTemplates.lua:156: in function `ScrollFrameTemplate_OnMouseWheel'
[string "*:OnMouseWheel"]:1: in function <[string "*:OnMouseWheel"]:1>
When I try to scroll down my list of fonts, it won't go down further than what the list originally shows.
I'll try and remember to take a look at this today.
I use Xperl and Bartender4 - whether that information is necessary or not, I don't know.
Anyway, I'd like to make it so OmniCC shows the cd countdown on my personal abilities, but I don't want to see the number on the buffs of my target/party. I can barely see the buff because of the number in the way. Other people in my guild say they don't have this problem, so I've reverted to as early as version 2.2 or so but nothing It's definitely OmniCC that does this, I'm sure of it.
All I want is a number on my buttons counting down the CD. Please help.
[12:16:29] Interface\FrameXML\UIPanelTemplates.lua:230: attempt to index local 'self' (a number value)
[C]: ?
Interface\FrameXML\UIPanelTemplates.lua:230: in function <Interface\FrameXML\UIPanelTemplates.lua:229>
Interface\AddOns\OmniCC_Options\menu.lua:265: in function <Interface\AddOns\OmniCC_Options\menu.lua:264>
[C]: in function `SetVerticalScroll'
[string "*:OnValueChanged"]:1: in function <[string "*:OnValueChanged"]:1>
[C]: in function `SetValue'
Interface\FrameXML\UIPanelTemplates.lua:156: in function `ScrollFrameTemplate_OnMouseWheel'
[string "*:OnMouseWheel"]:1: in function <[string "*:OnMouseWheel"]:1>
When I try to scroll down my list of fonts, it won't go down further than what the list originally shows.
__________________
"All power tends to corrupt and absolute power corrupts absolutely." "Advice to Persons About to Write History — Don't." -John Dalberg-Acton