vmangos / core

Progressive Vanilla Core aimed at all versions from 1.2 to 1.12
GNU General Public License v2.0
677 stars 486 forks source link

🐞 [Bug] Rogue Deadly Venom not stacking properly. #1003

Open jaywalker15262 opened 3 years ago

jaywalker15262 commented 3 years ago

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 INTOspell_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.

jaywalker15262 commented 3 years ago

Any upcoming fix on this?

ulfgebhardt commented 3 years ago

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

jaywalker15262 commented 2 years ago

bump