Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Server Code Submissions

Reply
 
Thread Tools Display Modes
  #1  
Old 06-26-2008, 06:28 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Ahh ok. Weird that I didn't hear anything about it until the past week or so and suddenly I have seen at least 3 or 4 reports of it. If it is only cha buffs, then it isn't a big issue. I will keep an eye out for any other stacking issues. Thanks for the quick response, CD!
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #2  
Old 06-26-2008, 06:38 PM
ChaosSlayer
Demi-God
 
Join Date: May 2007
Posts: 1,032
Default

the thign is that CHA present in MANY spells to serve a form of a delimier.

for exmaple if you have

spell 1:
Slot 1: CHA 0
Slot 2: STR 100

spell 2:
Slot 1: CHA 0
Slot 2: CHA 0
Slot 3: STR 100

these 2 spells will stack.

what is important that server code must never treat 0 cha towards any stacking comparecens, the moment it does- 50% spells in DB will STOP WORKING

I urge devs to CAREFULY look over thsi and make sure than CHA 0 is NEVER been compared towards stacking with each other
Reply With Quote
  #3  
Old 08-29-2008, 07:45 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

This came up on the Storm Haven forums, so I figured I'd mention what I have come up with so far, since this is still an issue.

After doing some digging (thanks to #mlog SPELLS__STACKING on), it appears this is failing in the function Mob::CheckStackConflict:
Code:
 1992 		if(sp2_value < sp1_value) {
 1993 			mlog(SPELLS__STACKING, "Spell %s (value %d) is not as good as %s (value %d). Rejecting %s.",
 1994 				sp2.name, sp2_value, sp1.name, sp1_value, sp2.name);
 1995 			return -1;	// can't stack
 1996 		}
And I believe it is because there should be a check, not only for the first spell, but also the 2nd spell to see if the slot is blank. If that's the case, we can just change this
Code:
 1913 		if(IsBlankSpellEffect(spellid1, i))
 1914 			continue;
to this:
Code:
		if(IsBlankSpellEffect(spellid1, i) || IsBlankSpellEffect(spellid2, i))
			continue;
I'll try compiling this here in a few and see if it works.
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #4  
Old 08-29-2008, 08:01 PM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by AndMetal View Post
I'll try compiling this here in a few and see if it works.
Compiled fine and seems to work as intended. As a test, I was using Unfailing Reverence & JourneymanBoots. If I would cast the Charisma buff first, the jboots would be blocked, but not the other way around. Now, after the fix, I can cast both spells fine, including recasting them when they're already active.

Hopefully someone can move this to Code Submissions to be updated into the main source
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote
  #5  
Old 09-01-2008, 04:57 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Did some testing on this and it seems to do exactly what it says. The CHA stacking issue is definitely fixed and I don't see any other stacking issues caused by this, though my testing wasn't very extensive. I mostly just tested a few spells that I know shouldn't stack like Symbol and Temperance and they still didn't (as they should). So, this looks like a nice fix. Thanks AndMetal! You are becoming quite the coder lately lol.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
Reply

Thread Tools
Display Modes

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 10:59 AM.


 

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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3