Open PadreWoW opened 3 years ago
Bug is here:
Exactly here in Unit.cpp:
if (GetTypeId() == TYPEID_PLAYER && spellProcEvent && spellProcEvent->cooldown)
cooldown = spellProcEvent->cooldown;
+ if (spellInfo->AttributesEx3 & SPELL_ATTR3_DISABLE_PROC)
+ ++m_procDeep;
+
switch (auraModifier->m_auraname)
{
case SPELL_AURA_PROC_TRIGGER_SPELL:
@@ -11239,6 +11261,9 @@ void Unit::ProcDamageAndSpellFor(bool isVictim, Unit* pTarget, uint32 procFlag,
}
}
}
+
+ if (spellInfo->AttributesEx3 & SPELL_ATTR3_DISABLE_PROC)
+ --m_procDeep;
}
if (removedSpells.size())
{
Describe the bug Prevent possible stack owerflow in Unit::ProcDamageAndSpellFor Spell 20352 Prevent possible stack owerflow in Unit::ProcDamageAndSpellFor Spell 32746 Prevent possible stack owerflow in Unit::ProcDamageAndSpellFor Spell 20178 Prevent possible stack owerflow in Unit::ProcDamageAndSpellFor Spell 20134 Prevent possible stack owerflow in Unit::ProcDamageAndSpellFor Spell 20350
To Reproduce Steps to reproduce the behavior:
Branch master
Eluna
HASH/COMMIT: https://github.com/talamortis/OregonCore/commit/cb0b1e3b0eaa0c079a6ef77a348127284a1703fe