Open jaywalker15262 opened 3 years ago
Any upcoming fix on this?
I think it would be wise if you open your fix suggestion as a PR. This will give others the opportunity to improve it and make it less hacky (don't forget to enable maintainer edits on your fork) @jaywalker15262
bump
I actually have no idea how it is suppost to stack anymore since I fixed this bug months ago and forgot what the issue was. But the fix is hacky(works without bugging but is lazy code asf) so would be better if someone who knows where the code is actually suppost to go to fix this.
Anyways I researched both old vanilla videos and confirmed on classic that poisons dont stack properly on vmangos.
Here is the SQL:
INSERT INTO
spell_mod(
Id,
procChance,
procFlags,
procCharges,
DurationIndex,
Category,
CastingTimeIndex,
StackAmount,
SpellIconID,
activeIconID,
manaCost,
Attributes,
AttributesEx,
AttributesEx2,
AttributesEx3,
AttributesEx4,
Custom,
InterruptFlags,
AuraInterruptFlags,
ChannelInterruptFlags,
Dispel,
Stances,
StancesNot,
SpellVisual,
ManaCostPercentage,
StartRecoveryCategory,
StartRecoveryTime,
MaxAffectedTargets,
MaxTargetLevel,
DmgClass,
rangeIndex,
RecoveryTime,
CategoryRecoveryTime,
SpellFamilyName,
SpellFamilyFlags,
Mechanic,
EquippedItemClass,
Comment) VALUES (25349,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,-1,-1,'Deadly Poison V : Stack entre casters (Youfie) : \"Every rogue now has their own Deadly Poison debuff slot on monsters, instead of 1 for all.\" (2.0.3, undocumented changes)');
And the hacky fix server side:
if (SpellInternal::IsPassiveSpellStackableWithRanks(pSpellEntry.get())) <---- stock vmangos
if (SpellInternal::IsPassiveSpellStackableWithRanks(pSpellEntry.get()) || (pSpellEntry->SpellFamilyName == 8 && (pSpellEntry->Id == 2818 || pSpellEntry->Id == 2819 || pSpellEntry->Id == 11353 || pSpellEntry->Id == 11354 || pSpellEntry->Id == 25349))) // OSWoW : Rogue deadly poisons can stack with diff ranks. pSpellEntry->Internal |= SPELL_INTERNAL_PASSIVE_STACK_WITH_RANKS;
This was from SpellMgr.cpp This is the correct stacking behaviour. That solves 2 bugs. I think one of them was how different non-final ranks of deadly poisons stacks were stacking and the other one was how the final rank of deadly poison was stacking with lower ranks. Since the final rank for some reason had a different stacking behaviour than the others.