 |
03/30/07, 10:22 PM
|
#1 (permalink)
|
|
Bloodsail 4 Life
|
SpellWatch
I've noticed a lot of people use mods to time dot durations, or are searching for cooldown timers, or want to know when a proc is capable of coming up again. After being dissatisfied with several of the existing mods' lack of customizability, I decided to write SpellWatch. It's been around for a while, but with the latest version I also put it into the Ace SVN, so now seems as good a time as any to point it out to people.
In comparison to other timer mods it has a few important differences; first, you have complete control over the timer bars - what spawns them, where they appear, what color they are, what icon they use, and how long they run. You can set up as many timers as you like for whatever you like, but this leads to the second difference: no presets. SpellWatch comes with no preconfiguration, so anything you want a timer for, you'll have to make a bar for. There's so many ways to use the mod that it's impractical to try to cover every timer configuration someone would want - and that's against the spirit of the mod anyway.
Essentially, every timer is configured with a number of attributes: - Name - This is just that, a name for the timer. Only affects where it shows up in the timer list.
- Spell - The name of the spell or ability that triggers the timer; either when it's used, or when it's gained as a buff or debuff.
- Label - The text that will appear on the timer when it is displayed. You can use $n and $t as wildcards for the spell name and spell target respectively.
- Duration - Timer duration in seconds. Use the syntax "x+y" for an ability that has a base duration of x and gains y seconds per extra combo point spent. Timers with 0 or less seconds won't actually be displayed.
- Type - Either Spell/Ability (timer triggers on use) or self/target buff/debuff (timer triggers on aura gain)
- Group - Spells which should cancel each other when used either globally or on the same target should share the same group; i.e. All a warlock's curses, all a hunter's stings, all a shaman's same-element totems should be in the same group.
- Anchor - What anchor the timer should attach to; currently there are three independently positionable anchors.
- Color - Simply, what color the bar should be. You can type the hex code into the text box or click on the color swatch to get the Blizzard color picker.
- Icon - Allows you to choose any of the icons listed in the macro frame, or type in a texture path to choose an arbitrary texture.
- Targeted - Whether the spell is targeted
- Unique - Only one instance of this timer may exist (Banish, Polymorph, Hunter's Mark, etc)
- Announce - Announces the timer's label in the UI error frame when the timer spawns (useful for proc alerts)
- No Autocancel - Protect the timer from being auto-canceled by the death/fade/resist options.
Most of the commands are pretty intuitive and can be accessed through /spellwatch or /sw. The ultimate goal was to create "one timer mod to rule them all" so to speak. Let me know of any feedback or bugs you run across.
|
|
|
|
|
03/31/07, 8:50 AM
|
#2 (permalink)
|
|
Foobar
Troll Priest
Azjol-Nerub (EU)
|
For the lazy ones, download is here:
http://files.wowace.com/SpellWatch/
Looks good at first looks. This error appears when first used, looks like uninitialized var:
Error occured in: Global
Count: 1
Message: [string "SpellWatchMenuFrameTitle:OnLoad"] line 12:
table index is nil
Debug:
[C]: ?
[string "SpellWatchMenuFrameTitle:OnLoad"]:12: save()
[string "SpellWatchMenuFrameTitleEditBox:OnEditFocus..."]:4:
[string "SpellWatchMenuFrameTitleEditBox:OnEditFocus..."]:1
|
* Bla
|
|
|
|
03/31/07, 11:55 AM
|
#3 (permalink)
|
|
Hero of the Horde
|
Can we get some screenshots?
|
|
|
|
|
|
03/31/07, 1:20 PM
|
#4 (permalink)
|
|
Rudy will await your foundation.
Night Elf Warrior
Khadgar
|

Originally Posted by Slake
I've noticed a lot of people use mods to time dot durations, or are searching for cooldown timers, or want to know when a proc is capable of coming up again. After being dissatisfied with several of the existing mods' lack of customizability, I decided to write SpellWatch. It's been around for a while, but with the latest version I also put it into the Ace SVN, so now seems as good a time as any to point it out to people.
In comparison to other timer mods it has a few important differences; first, you have complete control over the timer bars - what spawns them, where they appear, what color they are, what icon they use, and how long they run. You can set up as many timers as you like for whatever you like, but this leads to the second difference: no presets. SpellWatch comes with no preconfiguration, so anything you want a timer for, you'll have to make a bar for. There's so many ways to use the mod that it's impractical to try to cover every timer configuration someone would want - and that's against the spirit of the mod anyway.
Essentially, every timer is configured with a number of attributes: - Name - This is just that, a name for the timer. Only affects where it shows up in the timer list.
- Spell - The name of the spell or ability that triggers the timer; either when it's used, or when it's gained as a buff or debuff.
- Label - The text that will appear on the timer when it is displayed. You can use $n and $t as wildcards for the spell name and spell target respectively.
- Duration - Timer duration in seconds. Use the syntax "x+y" for an ability that has a base duration of x and gains y seconds per extra combo point spent. Timers with 0 or less seconds won't actually be displayed.
- Type - Either Spell/Ability (timer triggers on use) or self/target buff/debuff (timer triggers on aura gain)
- Group - Spells which should cancel each other when used either globally or on the same target should share the same group; i.e. All a warlock's curses, all a hunter's stings, all a shaman's same-element totems should be in the same group.
- Anchor - What anchor the timer should attach to; currently there are three independently positionable anchors.
- Color - Simply, what color the bar should be. You can type the hex code into the text box or click on the color swatch to get the Blizzard color picker.
- Icon - Allows you to choose any of the icons listed in the macro frame, or type in a texture path to choose an arbitrary texture.
- Targeted - Whether the spell is targeted
- Unique - Only one instance of this timer may exist (Banish, Polymorph, Hunter's Mark, etc)
- Announce - Announces the timer's label in the UI error frame when the timer spawns (useful for proc alerts)
- No Autocancel - Protect the timer from being auto-canceled by the death/fade/resist options.
Most of the commands are pretty intuitive and can be accessed through /spellwatch or /sw. The ultimate goal was to create "one timer mod to rule them all" so to speak. Let me know of any feedback or bugs you run across.
|
You should cut and paste that onto the wowace wiki for SpellWatch. I can never figure out why so few authors use it.
|
See you, auntie.
"lol" is not a period lol
You don't need a machine to make a rainbow. For rainbows are made of happy thoughts, and dreams, and chocolate unicorns, and gumdrops, and licorice sunsets, and fuzzy gumdrop bears, and sugar-coated chocolate gumdrop land.
Originally Posted by DeeNogger
I am coming for you Apate.
|
|
|
|
|
03/31/07, 2:36 PM
|
#5 (permalink)
|
|
Von Kaiser
|
|
No Autocancel - Protect the timer from being auto-canceled by the death/fade/resist options.
|
After I spent 3 hours hacking this into Chronometer, it's nice to see it builtin. How's your multi-mob support?
|
You should cut and paste that onto the wowace wiki for SpellWatch. I can never figure out why so few authors use it.
|
It's one more step in the great sea of steps a developer has to take to get their addon published. Create some screenshots, write some catchy text, create thread on WoWAce forums, zip up the apporopriate files (deleting the .svn one at a time over the spread ofr however many Ace libs used), upload to WoWI/CG, update to the SVN. Sure it's just a copy and paste job, but it's just one more step! 
|
|
|
|
|
|
03/31/07, 3:10 PM
|
#6 (permalink)
|
|
Glass Joe
Night Elf Priest
Burning Blade
|
Two questions:
1) Are there any sorting functions?
2) Does it track the "owner" of the spell. For example, 2 priests in a raid both casting shadow word: pain. If the other priests dot expires is my bar going to disappear?
|
|
|
|
|
|
03/31/07, 3:35 PM
|
#7 (permalink)
|
|
Bloodsail 4 Life
|
Polleke:
I'll look into that error a bit later when I get some time; shouldn't be too hard to fix.
Edit: Duh, I forgot that I've run into that before; the config menu tries to load the selected spell on the list when you open it, and the first item is selected by default, but when you -have- no items, it gets angry because there's nothing to load.
Diospadre:
The menu shot is a little old, but not that off.
Apate:
Yeah, this is the first addon I've posted to the Ace SVN, so I'm still figuring out everything that I can do. So far I've just been using curse/wowinterface/ui.worldofwar.net to host my addons.
chuckg:
At the moment targeted spells are just tracked by name; I'm planning to add sex/level support as well, but that would only prevent you from replacing bars on different mobs with the same name; it doesn't (and can't) really help for options to remove the timer when a spell fades from a mob or a mob dies, as those are combat log messages and only give you the name.
Feldia:
Not sure what you mean by sorting. It doesn't sort by name or time or mob, if that's what you're asking, but you can sort manually by selecting which anchor a timer should attach to; for example I have one anchor for self-buff procs and personal cooldowns, and another for dots / spells on mobs. As for the other point, it's not possible to track the owner of a spell the way you describe; if this is undesired behavior I'd reccomend turning off the 'fade' option (I don't have it on myself) so that when another priest's SW:P fades from the mob it won't autocancel your timer.
Last edited by Slake : 03/31/07 at 3:37 PM.
Reason: Duh.
|
|
|
|
|
03/31/07, 3:47 PM
|
#8 (permalink)
|
|
Von Kaiser
|
Don't forget, you can differentiate targets by raid icon as well (I believe DoTimer does this)
I like the way it looks, though. If multitarget support is good, I'll likely give it a shot.
|
|
|
|
|
|
03/31/07, 4:31 PM
|
#9 (permalink)
|
|
Bloodsail 4 Life
|
3.1.1
- Fixed a bug with the menu when no spells exist yet
- New timers now default to anchor 1
- Targets are differentiated by sex, level, and icon as well as by name now (support for target, focus, and mouseover units as targets)
Oh yeah, something else I forgot to mention, you can manually cancel timers by right-clicking on them.
|
|
|
|
|
03/31/07, 4:51 PM
|
#10 (permalink)
|
|
Von Kaiser
|
I forgot to ask about this, but it's also something I had to manually add to Chronometer. Is there support for conflagerate? Or functionality like it, ie: if this spell is cast and is successful, consume this debuff/buff.
|
|
|
|
|
|
03/31/07, 5:11 PM
|
#11 (permalink)
|
|
Semi-Professional Windmill Tilter
|
This looks interesting; I'll download it today and play around with it.
For warlocks it's 100% about what gives the best multi-target support. Dotimer has some quirks/bugs I've never been able to track down well enough to post as bug reports, but that's sort of the minimum performance level for multi-mob tracking right now. I'm not sure how it does it, but it's pretty accurate and you might want to glance over the code for ideas on how to handle mob death, uniqueness, etc. (I have no clue why Blizzard doesn't expose the unique identifiers for units like EQ did; there's no reason using dots should be *that* much harder than heals/nukes/melee beyond the basic micromanagement of maintaining 9-10 spells on various targets.)
Also: one feature dotimer added recently that I love is having tenths of a second display as an option. It's easier for me to time a re-cast via numbers than the arbitrary length of a bar (since I want to recast between seconds one and two.)
|
|
|
|
|
|
03/31/07, 5:57 PM
|
#12 (permalink)
|
|
Bloodsail 4 Life
|
Originally Posted by chuckg
I forgot to ask about this, but it's also something I had to manually add to Chronometer. Is there support for conflagerate? Or functionality like it, ie: if this spell is cast and is successful, consume this debuff/buff.
|
Ah, I should have posted this earlier, but you can actually do some neat tricks by setting up the group field in a certain way. To elaborate, when you put timers in the same "group" you are telling SpellWatch that those timers are mutually exclusive in some way; the examples given were warlock curses, hunter stings, shaman totems of the same element, etc. However, you can also set up a zero-length timer to just provide cancellation functionality (zero length timers aren't shown) by putting it in the same group as something else; the way I have conflagrate set up on my warlock is that Immolate and Conflagrate are in the same group, and Conflagrate's duration is zero; both spells are targeted, so when I cast Conflagrate on a target that matches an existing immolate timer, SpellWatch sees that I'm starting a new timer in the same group as that Immolate timer and cancels it; then never shows a new timer for Conflagrate because it has no duration.
You can achieve the same thing with Rejuv and Regrowth and Swiftmend, but you'll need to put the two hots in their own groups and set up two timers that trigger on Swiftmend cast; one in the Rejuv group and one in the Regrowth group.
Kyth:
SpellWatch uses CandyBars for it's timers, which automatically switch to appropriate resolution based on time left; over one minute they show mm:ss, over 10 seconds shows just seconds, under 10 seconds shows tenths of a second.
|
|
|
|
|
03/31/07, 6:54 PM
|
#13 (permalink)
|
|
Von Kaiser
|
Sorry to keep using this thread as a support, but is typing in your own texture working? Can't get Blood Fury icon (Racial_Orc_BerserkerStrength) to work and if I set the texture on another spell, it sets the texture to blood fury the same. Also, it would be nice to be able to set "Bar Width" aside from the scale. It's also useful to perhaps modify the way in which "No Autocancel" works. It's currently a blanket for resists and fades, but in my case, I'd like the bar to be cancelled if it's resisted by not if there's a detected spell fade of the same spell. This is especially useful in raids where there may be 5 other spells w/ the same name.
Last edited by chuckg : 03/31/07 at 7:07 PM.
|
|
|
|
|
|
03/31/07, 7:03 PM
|
#14 (permalink)
|
|
Bloodsail 4 Life
|
It works for me, keep in mind you have to type in the full path of the texture, so: "Interface\Icons\Racial_Orc_BerserkerStrength"
Edit: Feel free to keep asking questions, that's half the reason I posted the thread here. (the other half being exposure in general)
|
|
|
|
|
03/31/07, 7:26 PM
|
#15 (permalink)
|
|
Everyone licks chicken.
Blood Elf Paladin
Azjol-Nerub (EU)
|
Would it be possible to make a timer that refreshes on melee swings? I've been looking for a good mod on tracking Judgement up times for a while now, but there's very little that supports it properly.
Edit:
Actually I think this mod would be close to supporting pretty much all detectable sources of debuff renewal if you added the above suggestion for melee swings being able to refresh timers, and if you add the charges on a weapon buff going down as another way of refreshing a timer (For Rogue's poisons)
Last edited by Chicken : 03/31/07 at 7:41 PM.
|
buff /bʌf/ Pronunciation[buhf]
–verb (used with object)
- to reduce or deaden the force of
|
|
|
|
03/31/07, 7:51 PM
|
#16 (permalink)
|
|
Bloodsail 4 Life
|
chuckg:
I'll just remove resists from the no-autocancel option, since it doesn't really make sense for them to be in there anyway. re: bar width, this is a limitation of CandyBars, there is no width option, just scale. I'll look the api over again to see if I'm missing something, but there's no obvious way to do that.
Chicken:
To be implemented! The only problem it has right now is if you refresh an active buff on yourself before it expires it can't catch it. Short of watching the timer of every buff you have every OnUpdate (ugh!) I don't know of a good way to catch this.
|
|
|
|
|
03/31/07, 7:57 PM
|
#17 (permalink)
|
|
Von Kaiser
|
Originally Posted by Slake
chuckg:
I'll just remove resists from the no-autocancel option, since it doesn't really make sense for them to be in there anyway. re: bar width, this is a limitation of CandyBars, there is no width option, just scale. I'll look the api over again to see if I'm missing something, but there's no obvious way to do that.
|
Thank you. One final thing/option/request and you've made me a very happy warlock indeed! Have a 'fade' colour, as the bar gets closer to 0 it starts shifting colour into red (starting at say, 20% left mark). For the width, just look at the code for it in Chronometer.
/chron bar width xxx
Last edited by chuckg : 03/31/07 at 8:15 PM.
|
|
|
|
|
|
04/01/07, 6:20 AM
|
#18 (permalink)
|
|
Foobar
Troll Priest
Azjol-Nerub (EU)
|
Draging the icon frame over the menu frame causes some z-index fun.
It took me a while to figure out that the group setting only accepts numbers, only when I looked up that tonumber() is being used it became clear. I see no reason why this can't be string.lower().
For my shadow priest I want a timer for misery and shadow weaving. The only way to do that is having an entry for each shadow spell, all in the same misery or shadow weaving group. Annoying, but a natural cause of trying to keep the mod as powerfull as possible. Still I'm trying to think of an elegant and without hard coding anything way to solve this.
What would certainly make the above problem easier is a copy button for a timer. Now you have to retype the same thing a dozen times.
The attached screenshot is SpellWatch in action. If you look at it, it seems like the bars are overlapping slightly. I didnt trust my eyes, and yes when zooming in they are exactly 15px high each. The illusion comes from three things: the icons have sometimes a border, the bar textures have a smoothing effect and the bar text is not always centered. An easy fix would be some horizontal spacing.
Last edited by Polleke : 04/01/07 at 6:27 AM.
|
* Bla
|
|
|
|
04/01/07, 11:57 AM
|
#19 (permalink)
|
|
Glass Joe
Murloc Priest
Lightninghoof
|
A couple of other requests to go along with me trying the addon this morning:
The ability to set the anchor scaling independently. Open-endedness is advertised with the addon, and that can include having custom timers sized differently based on which anchor they were set to (allows for some timers to appear bigger than others based on your desires.)
The ability to start a timer after a buff goes away. The primary one here (for me) is the paladin skill Divine Favor, which creates a buff but a cooldown timer does not start until you actually use the buff.
The group thing being a number threw me until I read the post above. I was wanting to put in names, as well.
I also recommend the ability for a quick copy command, as that would save a lot of time given the similarities that many of the abilities could have.
|
|
|
|
|
|
04/01/07, 5:40 PM
|
#20 (permalink)
|
|
Von Kaiser
Fame
Night Elf Druid
No WoW Account
|
i havnt had a chance to try it yet, but reading through the description i couldnt tell if it will track how long debuffs that dont tick (such as sunder or thunderclap) have till expiration?
|
|
|
|
|
|
04/01/07, 6:41 PM
|
#21 (permalink)
|
|
Bloodsail 4 Life
|
FAME:
Easy, it just starts a timer when you cast the spell, and cancels it if the spell was resisted or missed or otherwise didn't apply.
Also looking into some of the other suggestions that have been brought up.
|
|
|
|
|
04/02/07, 1:38 AM
|
#22 (permalink)
|
|
Piston Honda
Tauren Shaman
Dunemaul (EU)
|
Would this add-on be able to track Flurry and Unleashed Rage uptimes as a % of time spent attacking? Maybe I'm completely barking up the wrong add-on, in which case maybe someone knows a mod that can do that?
|
|
|
|
|
|
|