View Full Version : Help with spell stacking: Listless Power and Augmentation
noudess
06-11-2013, 12:01 PM
I'm trying to understand why the GUI overwrites augmentation with Listlesspower, but the server does not.
I turned on stacking logs and got this:
[06.11. - 11:55:53] [SPELLS__STACKING] Kincar: Check Stacking on old Augmentation (10) @ lvl 29 (by Kincar) vs. new Listless Power (162) @ lvl 29 (by Kincar)
[06.11. - 11:55:53] [SPELLS__STACKING] Kincar: Augmentation (10) blocks effect 1 on slot 2 below 100, but we do not have that effect on that slot. Ignored.
[06.11. - 11:55:53] [SPELLS__STACKING] Kincar: The effects are the same but the spell types are not, passing the effect
[06.11. - 11:55:53] [SPELLS__STACKING] Kincar: Stacking code decided that Listless Power is not affected by Augmentation.
While on the GUI - listless power overwrites augmentation, the server keeps both us. This makes it very hard for players to tell when augmentation is really down.
2 questions:
- do they stack on live? I don't have the right class to test with.
- If they are supposed to coexist (fighting each other essentially), does that mean the stacking code is broken?
noudess
06-11-2013, 12:35 PM
Ok checked live. Listless power should take down augmentation.
On our server side, it does not. The GUI seems to be correct.
Now, to see if I can figure out this code.. anyone know better have a look?
noudess
06-11-2013, 01:15 PM
Ok, I believe I have the general flow of the code that puts out those messages.
sp2 (listless power) does not have any SE_OVERWRITE columns in effects.
The code that overwrites based on same slot matching effects doesn't do anything , because one is beneficial and one is detrimental.
/*^M
If the effects are the same and^M
sp1 = beneficial & sp2 = detrimental or^M
sp1 = detrimental & sp2 = beneficial^M
Then this effect should be ignored for stacking purposes.^M
*/^M
if(sp_det_mismatch)^M
{^M
mlog(SPELLS__STACKING, "The effects are the same but the spell types are not, passing the effect");^M
continue;^M
}^M
So what am I missing? Is this just something eqemu code missed. Listless power does take down augmentation on live.
Also, listless power blocks augmentation on live. It doesn't on the server side of eqemu.
demonstar55
06-11-2013, 01:54 PM
Obviously our rules are incomplete. It could be a number of things though. Maybe the primary stats when they are opposing effects don't stack, with the debuff overwriting. There could also be an unidentified spell field that should override that part of the code.
noudess
06-11-2013, 02:19 PM
Am I in the right spot? As far as npc spells knocking down buffs? That's spells.cpp in the SPELLS__STACKING code? I just didn't want to be way off base when I tried to fix this.
I noticed that similar things happen when str buffs and str debuffs are applied. The gui shows only the debuff but the server leaves the str up.
I'm new to eqemu (only been playing, modifying code/db for 5 months or so) so I like to check with the dieties when I enter an area I haven't touched.
BTW: As a quick test, I commented out the code which says don't overwrite if one is beneficial and one is detrimental, and then also added a check to say if sp2 is detrimental, allow it to overwrite and it fixed this one problem, but given my limited insight into this code and the db fields, I'm sure that is going to do more harm than good elsewhere.
noudess
06-13-2013, 06:38 PM
I'm pretty sure I have this fixed. I'll submit it if you want once it is tested.
noudess
06-17-2013, 01:34 PM
Well just removing the lines I posted above seems to work well.. Been running it for a week and detrimental spells are overwriting when they are more powerful, and matching what the GUI was doing by itself. Now the GUI panel seems to match the server list so far.
Use it if you see fit.
noudess
07-09-2013, 10:57 AM
I've made another update on my server.
At least on Titanium , the GUI takes down buffs when more powerful effects for a slot for a detrimental spell is cast. My previous change above makes that work on the server. Prior to that change, a spell like augmentation was staying up on the server, when a spell like listless power was cast over it. On the GUI, listless power overwrote augmentation.
The fix described above fixed that on the server.
The GUI also prevents a spell like spirit strength from holding on a char with Res effects.
The server ignores blocking/stacking in the case of res effects. The GUI blocks buffs while rez effects up, but the server is accepting them. I deleted that code and all seems better on my server in this regard. Am I missing something?
noudess
07-16-2013, 10:45 AM
My changes still working well to have server match GUI as far as some detrimental spells taking down beneficial ones. I have found a couple of spots where equal value detrimental spells should be blocked from taking down buffs, but obviously equal valued buffs should overwrite old ones, and the same for debuffs.
In that regard I've made a few tweaks and it looks good. So if you went with my changes, let me know and I can provide current code.
As always just FYI, I know I'm off on my own branch, just sharing in case it is helpful.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.