Go Back   EQEmulator Home > EQEmulator Forums > Support > Spell Support

Spell Support Broken Spells? Want them Fixed? Request it here.

Reply
 
Thread Tools Display Modes
  #1  
Old 03-02-2010, 12:30 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default HoT / DoT ticks

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!

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.
Reply With Quote
  #2  
Old 03-02-2010, 01:33 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

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.
Reply With Quote
  #3  
Old 03-02-2010, 02:56 PM
pfyon's Avatar
pfyon
Discordant
 
Join Date: Mar 2009
Location: Ottawa
Posts: 495
Default

Anyone know where the tick timer functions are defined in the code? I'd like to take a look.
Reply With Quote
  #4  
Old 03-05-2010, 02:38 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

That is how HoTs are designed to work and can't be easily changed.
Reply With Quote
  #5  
Old 03-07-2010, 11:12 PM
gaeorn
Developer
 
Join Date: Apr 2009
Location: USA
Posts: 478
Default

Quote:
Originally Posted by KLS View Post
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.
Reply With Quote
  #6  
Old 03-08-2010, 03:52 PM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

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.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:06 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3