DoTimer v1.0.8.2

DoTimer shows timer icons for Damage over Time spells durations on opponents.


Do not refresh or leave this page!

File Description

DoTimer shows timer icons for Damage over Time spells durations on opponents.

Read More

1.0.8 beta: new macro functions, better code, localization, a couple new features

Welcome to DoTimer by Asheyla; thanks for downloading! I'm confident that you will find DoTimer to be the best DoT timer you have ever used =]

If you want to suggest a feature, send me an e-mail at, 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!

This addon is designed to keep track of a warlock's DoTs, but keep in mind that there are some things that are not perfect about it. The scripting interface is not given complete knowledge of things that you fight, but this addon tries as much as possible to remain as accurate as possible for its timers.

For the most part, 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 .25, or 4 times per second. 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 the mod detects overwriting old spells as well as casting a different curse on a target, and when this happens it deletes the proper entries.

This addon also adds a sweet new function you can use for debuffing purposes. It 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).

A final function 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."

Also, 2 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.

New in 1.0.8, there are 2 more macro functions! 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.

The /command for this addon is /dotimer, or /dot. 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)

For non-warlocks: I have added support for priests, druids, and hunters (hunters to a small extent). 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 in 1.0.8. Please download it and test it out!

--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(&quot;Banish&quot;) <= 2 then CastSpellByName(&quot;Banish&quot;) end

You get the idea!

If you have any other macro questions, just contact me and I'll help you out.

Read More

Comments on this File

There are no comments yet. Be the first!


50 XP

Registered 28th August 2006

1 Files Uploaded

Share This File
Embed File