DoTimer

DoTimer

Created by Asheyla - Last updated on October 01 2006
Download
Version Compatible Translations Patch Release Date
DoTimer 1.1.3 (Current) 汉语 汉语 한국어 Deutsch English Español Français English 0 October 01 2006
  • Description
  • Change Log
DoTimer, by Asheyla <Warcraft Gaming Faction> @Shattered Hand (Horde), is a vastly sophisticated DoT tracking addon, featuring spearation by target, smart timer removal, a host of interface options, extreme macro support, and much more!

Due to the way Blizzard gives addons information, there are some inherent flaws in this addon, but I have tried very hard to overcome them as much as possible. For instance, if two mobs have the same name/sex/level, no addon can distinguish between them. DoTimer knows this fact and thus will not erratically delete timers it cannot find on your target if there's a chance you may have targeted an "identical" one. Also, the spellcasting system in general is very vague. DoTimer uses a complex system of checks to make sure that it never makes timers when it shouldn't, and always does when it should, but once in a blue moon a timer may not appear. Note that this is very rare; I cannot recall the last time it happened to me!

Overall, though, the mod is very accurate. It even detects resists, immunes, reflects, and evades =]

Support is added for up to ten unique targets and twenty debuffs on each target. Once this limit is reached, the addon will delete the oldest entries, to save screen space and processing time. On a related note, in order to update the timers on the screen as well as for any finished timers, the addon checks all your timers several times per second. If you notice lag caused by this addon, you may set the time it waits betwen calls higher - but remember, this means that your onscreen timers won't be changed as often. The default value is 0, or no delay. No code is run while no timers are present on the screen, and you can change the max # of targets and debuffs to conserve space.

Currently, you can view the onscreen timers as either icons or bars. There are no current plans for more display options.

DoTimer detects overwriting old spells as well as casting a different curse on a target, and when this happens it deletes the proper entries.

DoTimer defines several functions written specifically for macros. One is called DoT_IsPSpell("spellname"). What it does is lets you test your current target for a specified debuff, and the function will return true if it is on your mob, if not, it'll return false and cast it for you. This differs from other functions in that it looks ONLY at your own debuffs, not any from other people! So there can be 15 corruptions on the target, but if none are yours, it'll return false. See below for sample macros using this command =] Note that it bases its judgment on if you have a timer running, so in hectic situations, it may not be completely accurate. If you're farming solo, it is not a bad idea to just use the next function, not this one.

Another function is DoT_IsSpell("spellname"). It tests if ANY of that debuff are on the target (better for CoS, CoE, etc. that can only be applied once), and casts if it cannot find it.

Another is DoT_DetermineSpell("spell1","spell2"). It follows this logic: If spell1 is not on the mob, cast it and return "false". Else, if spell2 is not on it and you did not already cast spell1, cast spell2 and return "false". else, return "true."

Two minor functions are DoT_OwnSpellOnTarget(spell) and DoT_SpellOnTarget(spell). They function the same way as their DoT_IsPSpell / DoT_IsSpell counterparts, but do not cast if the query is not found.

Another, DoT_ReturnRemaining(spell), retuns how much longer spell has left on your target; max duration if it is not present. DoT_ReturnElapsed(spell) returns how long spell has been on the target, 0 if not present.

All of these functions have an optional 2nd (or 3rd in the case of DoT_DetermineSpell) parameter: unitID. Obviously, the default is "target", but people wanting to use these functions for raid targets may find this parameter useful. Note that if the function casts a spell, it WILL auto-target the correct unit based on this parameter! Unless, of course, you have an acceptable target already and the game forces the spell on it.... but whatever.

The /command for this addon is /dotimer, or /dot. Typing it opens up a GUI; if you want to use a command-line approach type /dotimer help. Here are some features:

- changing the scale of the addon
- disabling or enabling the interface
- disabling or enabling the appearing of target names
- changing how often the data is refreshed (for performance issues)
- allowing spells to be cancelled if you don't have enough mana for them, with Life Tap being cast instead
- locking the interface in place
- changing the max allowed displayed targets and debuffs per target
- changing the layout: the direction in which new targets and debuffs are added (16 total setups)
- displaying icons and fake timers for any number of debuffs, to experiment with interface setups (and hiding them of course)
- sorting the timers by time added or time remaining
- changing the scale of the icons themselves
- allowing or unallowing clickable debuffs: if they are clickable, shift+click removes, click targets the mob, and control+click creates a ghost timer
- ghost timers - clicking on this will target the mob as usual, but a subsequent click will recast whatever spell it was created from. lasts 5 minutes
- simulating timers for testing purposes
- enabling or disabling the appearance of depreciated timers (ones that may not be accurate for your current target, but you may still want to see a timer for)
- setting the rank of life tap to be used with the check mana feature
- letting the macro functions ignore immolate (so you can include them in macros but not waste casts on fire-immune mobs)
- showing only timers for your own target
- playing sounds when timers near expiration
- having the ghost timer for immolate cast conflag instead
- same thing as above, except rejuv / swiftmend
- bar or icon format

If you want a different sound, just replace "expalert.wav" with whatever you want and rename it. Very simple.

For non-warlocks: I have added support for priests, druids, and hunters. The addon should be working for you, but there has been limited testing.
For foreign users: I have made great strides to localize this addon. Please download it and test it out!

If you want to suggest a feature, send me an e-mail at ross456@gmail.com, drop me a comment at this addon's curse-gaming website, or send me a PM on the curse-gaming forums. I will certainly read your suggestion and hopefully implement it!

## SAMPLE MACROS ##
--casts corruption if yours isn't on mob, else shadow bolt
/script if DoT_IsPSpell("Corruption") then CastSpellByName("Shadow Bolt()") end

--casts corruption and immolate then shadowbolt
/script if DoT_IsPSpell("Corruption") then if DoT_IsPSpell("Immolate") then CastSpellByName("Shadow Bolt()") end end

--casts Curse of Shadow if it is not on the mob, else shadowbolt
/script if DoT_IsSpell("Curse of Shadow") then CastSpellByName("Shadow Bolt()") end

--casts CoS or CoA, then shadowbolt
/script if DoT_DetermineSpell("Curse of Shadow","Curse of Agony") then CastSpellByName("Shadow Bolt()") end

--casts Conflag if Immol has been running for at least 13 seconds
/script if DoT_ReturnElapsed("Immolate") >= 13 then CastSpellByName("Conflagrate") end

--casts banish if previous banish has less than 2 seconds left
/script if DoT_ReturnRemaining("Banish") <= 2 then CastSpellByName("Banish") end

--casts Swiftmend if it can be cast, else Rejuvenation
/script local r,s,c="Rejuvenation",DoT_SpellOnTarget,CastSpellByName if (s(r) or s("Regrowth")) then c("Swiftmend") else c(r) end

You get the idea!

If you have any other macro questions, just contact me and I'll help you out.
There is no dependency information for this file.
1.1 Changes:

- You can now right-click timers,target names, or the drag button to remove the associated timers, as an alias to shift+left-click.

- New Option: Show Only Target: when enabled, only timers for your current target will be shown. All other timers will continue to be tracked, but they will be hidden. If you have no target, all timers will be shown.

- New Option: Ghost Conflag: when enabled, the ghost timer for immolate and rejuvenation will cast conflagrate or swiftmend, respectively, if possible, else act like a normal ghost timer.

- New Option: Play Sounds: if enabled, a sound will be played when a timer reaches 5 seconds remaining. The sound can be manually changed by naming a sound clip as "expalert.wav" and replacing the default one.

- New Option: Timers with bars: Instead of as icons, the timers can be displayed as bars.

- New Option: Bar Length: the length of the previously mentioned bars can be changed.

- Changed Auto-Ghost implementation: now much smarter; a ghost timer will be created when the debuff is no longer found, and deleted when it is recast by the player.

- Depreciated timers are now .8x the size of regular timers, but full opacity.

- Ghost timers are now .5 opacity and no longer have a timer aspect.

- There is now a 3 second delay after dying before removing all timers.

- Added several new druid spells, Power Infusion, and Curse of Exhaustion.

- Fixed an issue where foreign clients did not have proper new-curse removal.

- Fixed all issues with Enslave Demon. It now functions correctly.

- Fixed an issue where spamming a hotkey could result in incorrect data.

- The Seduction ghost timer will tell the succubus to attack the target before casting, to hopefully make her automatically reseduce.

- DoTimer now runs off of an imbedded addon, SpellSystem. This addon streamlines the spellcasting system to make spell detection far more efficient, and allows me to write new addons that use the same system.

- The displayed time is now rounded down, not up, to account for lag: this means that the timer should be removed sometime while the timer is at 0:00; after a full second there if there is no lag whatsoever.

- Spell Ranks are displayed while mousing over timers now.

- The blank space between regular timers and ghost timers will no longer create a tooltip.

- New macro function - DoT_CastGhostSpell() - casts the spell of any ghost timer running on your target.

- Added unitID as an optional parameter to all macro functions. It defaults to "target".

- Minor changes and bug fixes
XML Syndication
Current: 1.1.3

23 votes
4 with 23 votes
44315 downloads
(21 today)

Rate File

Comments

vipfw

July 8, 2009 - 1:34 am [ Reply ]

vipfw

July 6, 2009 - 10:00 pm [ Reply ]

Click Here to Email <>Me

vipfw

July 6, 2009 - 9:58 pm [ Reply ]

HTML Code:
<img src="image.gif" alt="image" /> <a href="testing.html" target="_blank">Testing</a>

PHP Code:
 $myvar 'Hello World!';
for (
$i 0$i 10$i++)
{
    echo 
$myvar "\n";


Code:
<script type="text/javascript"> <!-- alert("Hello world!"); //--> </script>

vipfw

July 6, 2009 - 9:56 pm [ Reply ]

<ok>i like's
vBulletin Community Forums
[img]javascript@sdf:@#$%^&*(^%$#$VFBNM[/img] (Not linked)

]

Post a comment

You must be registered and logged in to post a comment.

Username: Password:

Register

WoW Guru
Advertise on the MMO Guru Network!

Language
MMO Guru Network