PDA

View Full Version : HoT / DoT ticks


bad_captain
03-02-2010, 12:30 PM
I was doing some parsing last night while working on group heals (I put in BOT group chat so I could tell what spells they were casting, and when) and I noticed that when a HoT was cast on me, say Holy Elixir, which has a cast time of 4 seconds, it would take anywhere from 4 seconds to 10 seconds to hit me. The only conclusion I could come up with was that when a HoT is cast, it hits on the next tick after spell casting is complete, which could be anywhere from 0 to 6 seconds. Is this the way it is supposed to be? I thought it would hit as soon as the spell finished casting, and would continue on its own timer.

This may be the same behavior described at projectEQ where players have stated that DoTs don't last the full duration (ending on a tick where the spell duration has less than 6 seconds left).

If this is how it is supposed to be, I apologize, I just thought it was rather strange to see my cleric bot cast Holy Elixir on me and it heal me for 900 up to 10 seconds later. I would have rather waited on a complete heal! :shock:

Note: this was not due to mob debuffs, etc, as each casting would land a random time between 4 and 10 seconds, not consistently twice as long or anything that might come from a spell slow spell.

bad_captain
03-02-2010, 01:33 PM
Of course, I go back to that thread AFTER posting here.

So it seems as if that's how it is, which lowers my impression on HoTs quite a bit. This causes the effective casting time to average 7 seconds, which is almost twice as long as the actual casting time (would be more than twice the casting time if any spell haste is present).

Without implementing a true duration system, maybe increasing the granularity a bit by creating "subticks" every 2 seconds, so that duration spells could begin their tick at any of the 2 seconds intervals could work.. That way, you at most lose 2 seconds off of DoT duration or cause the first HoT to hit you after an average of 5 seconds instead of 7 (with max of 6 instead of 10)..

I guess one way around this (if on a private server) is create/edit spells to have a "increase HP when cast" effect, as well as the HoT portion.

pfyon
03-02-2010, 02:56 PM
Anyone know where the tick timer functions are defined in the code? I'd like to take a look.

KLS
03-05-2010, 02:38 AM
That is how HoTs are designed to work and can't be easily changed.

gaeorn
03-07-2010, 11:12 PM
That is how HoTs are designed to work and can't be easily changed.

Do you mean this behavior matches live or just that is the way they are implemented in the emu code?

I played a cleric on live and I do not remember HoTs taking that long to do the first bit of healing. But I must admit, it has been enough years, I just may be misremembering. I do clearly remember that HoTs always did their full amount of healing, so there had to be some method of making sure the effect was for the proper number of ticks, regardless of when it started.

KLS
03-08-2010, 03:52 PM
Here's how buff tics work just based on how they work on the client:

The client has one buff tic timer that counts down the tics every 6 seconds. Each buff's timer is not independent of each others timer, they all tic down at the same time. Every time the client has no buffs the timer is turned off and set fresh when a new buff is applied.

If you're hotting someone who already has buffs on them the longest you'll have to wait is about 6 seconds, the shortest is a fraction of a second; averaging out in the middle of the two.

Given this observation from the client is how I implemented it on spell branch which is a little different than how it's implemented on trunk.