Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bug Reports

Development::Bug Reports Post detailed bug reports and what you would like to see next in the emu here.

Reply
 
Thread Tools Display Modes
  #1  
Old 05-08-2015, 09:39 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default Spell duration formula updates

While researching and working on interpreting the buffdurationformula and buffduration fields in spells, I made the following determinations that can be added to the EQEmu code:

Server/Spells.cpp

Line 2631 - int CalcBuffDuration_formula(int level, int formula, int duration)

First, there's a glitch in formula 2, line ~2645:

Code:
		case 1:
			i = (int)ceil(level / 2.0f);
			return i < duration ? (i < 1 ? 1 : i) : duration;

		case 2:
			i = (int)ceil(duration / 5.0f * 3);
			return i < duration ? (i < 1 ? 1 : i) : duration;

    - i = (int)ceil(duration / 5.0f * 3);
    + i = (int)ceil(level / 5.0f * 3);
Looks like simple wrong variable typo.

Second, here are some additional Duration Formulas, confirmed on Live in-game or via raid NPC casting behavior research in raid strats:
  • 13 and 14 are just like 12 and 15
  • 50 really is permanent, as far as duration. These spells are cancelled other ways (casting/combat for perm invis, non-lev zones for lev, curing poison/curse counters, etc.)
  • 51 is just like 50. It's used for aura spells. The target is affected as long as they're in range of the aura (and as long as the aura is being maintained). No time limit.

I also wanted to give a thumbs up for interpreting Duration Formula 11 correctly, where Lucy doesn't. Verified on Live with the Cleric starting spell Courage. Lasted 12 minutes at Level 1, like the server's formula said it should, whereas Lucy says it should last the max 27 minutes at any level. Burn.

Let me know if any more information would be helpful!

Last edited by Shendare; 05-08-2015 at 10:15 PM.. Reason: Clarified that in-game testing was done on Live EQ
Reply With Quote
  #2  
Old 05-08-2015, 09:53 PM
joligario's Avatar
joligario
Developer
 
Join Date: Mar 2003
Posts: 1,490
Default

Quote:
Originally Posted by Shendare View Post
I also wanted to give a thumbs up for interpreting Duration Formula 11 correctly, where Lucy doesn't. Verified in-game with the Cleric starting spell Courage. Lasted 12 minutes at Level 1, like the server's formula said it should, whereas Lucy says it should last the max 27 minutes at any level. Burn.
Noudess did the legwork on that one. https://github.com/EQEmu/Server/pull/387
Reply With Quote
  #3  
Old 05-08-2015, 10:04 PM
Shendare
Dragon
 
Join Date: Apr 2009
Location: California
Posts: 814
Default

Wow. That's a highly specific historical reference to make right away! Kudos!
Reply With Quote
  #4  
Old 05-08-2015, 10:25 PM
joligario's Avatar
joligario
Developer
 
Join Date: Mar 2003
Posts: 1,490
Default

Pushed changes in https://github.com/EQEmu/Server/comm...f38860d191d47b. There is still work to be done on 50/51 (see comments).
Reply With Quote
  #5  
Old 05-08-2015, 10:26 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,165
Default

Well, they are all in the client ...
Reply With Quote
  #6  
Old 05-08-2015, 10:32 PM
joligario's Avatar
joligario
Developer
 
Join Date: Mar 2003
Posts: 1,490
Default

Ok, I figured. But I didn't want server to allow client to bypass proper durations if not.
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 01:52 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