From 9f90b835019badf1a6d64e60805e7ad8bc4bee1f Mon Sep 17 00:00:00 2001 From: trickerer Date: Mon, 30 Aug 2021 17:21:49 +0700 Subject: [PATCH] Add missing initialization of _lastExtraAttackSpell. Do not use hardcoded spell ids. --- src/server/game/Entities/Unit/Unit.cpp | 2 ++ src/server/game/Spells/Auras/SpellAuraEffects.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index add91f1237b..580d710117c 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -388,6 +388,8 @@ Unit::Unit(bool isWorldObject) : _isWalkingBeforeCharm = false; _instantCast = false; _isCombatDisallowed = false; + + _lastExtraAttackSpell = 0; } //////////////////////////////////////////////////////////// diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 5059e2ef491..62ccbe7fad1 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -992,8 +992,7 @@ bool AuraEffect::CheckEffectProc(AuraApplication* aurApp, ProcEventInfo& eventIn { if (triggeredSpellInfo->HasEffect(SPELL_EFFECT_ADD_EXTRA_ATTACKS)) { - Unit const* source = eventInfo.GetActor(); - uint32 lastExtraAttackSpell = source->GetLastExtraAttackSpell(); + uint32 lastExtraAttackSpell = eventInfo.GetActor()->GetLastExtraAttackSpell(); // Patch 1.12.0(?) extra attack abilities can no longer chain proc themselves if (lastExtraAttackSpell == triggerSpellId) @@ -1001,8 +1000,9 @@ bool AuraEffect::CheckEffectProc(AuraApplication* aurApp, ProcEventInfo& eventIn // Patch 2.2.0 Sword Specialization (Warrior, Rogue) extra attack can no longer proc additional extra attacks // 3.3.5 Sword Specialization (Warrior), Hack and Slash (Rogue) - if (lastExtraAttackSpell == 16459 || lastExtraAttackSpell == 66923) - return false; + if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(lastExtraAttackSpell)) + if (spellInfo->SpellIconID == 1462) + return false; } } break;