diff options
-rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 4 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuras.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 3 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.h | 2 |
5 files changed, 9 insertions, 5 deletions
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 1e76a1ffa2c..f63326e801f 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -71,13 +71,13 @@ enum SpellModOp : uint8 SPELLMOD_RESIST_DISPEL_CHANCE = 28, SPELLMOD_CRIT_DAMAGE_BONUS_2 = 29, //one not used spell SPELLMOD_SPELL_COST_REFUND_ON_FAIL = 30, - SPELLMOD_STACK_AMOUNT = 31, // has no effect on tooltip parsing + SPELLMOD_STACK_AMOUNT = 31, SPELLMOD_EFFECT4 = 32, SPELLMOD_EFFECT5 = 33, SPELLMOD_SPELL_COST2 = 34, // Used when SpellPowerEntry::PowerIndex == 1 SPELLMOD_JUMP_DISTANCE = 35, // spellmod 36 - SPELLMOD_STACK_AMOUNT2 = 37, // same as SPELLMOD_STACK_AMOUNT but affects tooltips + SPELLMOD_MAX_STACK_AMOUNT = 37, // spellmod 38 SPELLMOD_SPELL_COST3 = 39 }; diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 077bbdaf771..9a12e7e95bc 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -6308,7 +6308,7 @@ void AuraEffect::HandleLinkedSummon(AuraApplication const* aurApp, uint8 mode, b } } -void AuraEffect::HandleSetFFAPvP(AuraApplication const* aurApp, uint8 mode, bool apply) const +void AuraEffect::HandleSetFFAPvP(AuraApplication const* aurApp, uint8 mode, bool /*apply*/) const { if (!(mode & AURA_EFFECT_HANDLE_REAL)) return; diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index f90a5431856..6b692da440a 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -934,7 +934,8 @@ uint32 Aura::CalcMaxStackAmount() const int32 maxStackAmount = m_spellInfo->StackAmount; if (Unit* caster = GetCaster()) if (Player* modOwner = caster->GetSpellModOwner()) - modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_STACK_AMOUNT2, maxStackAmount); + modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_MAX_STACK_AMOUNT, maxStackAmount); + return maxStackAmount; } diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index c280d0a4e4b..3bd414dc378 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -549,6 +549,9 @@ m_spellValue(new SpellValue(m_spellInfo, caster)), _spellEvent(nullptr) if (Item* pItem = m_caster->ToPlayer()->GetWeaponForAttack(RANGED_ATTACK)) m_spellSchoolMask = SpellSchoolMask(1 << pItem->GetTemplate()->GetDamageType()); + if (Player const* modOwner = caster->GetSpellModOwner()) + modOwner->ApplySpellMod(info->Id, SPELLMOD_STACK_AMOUNT, m_spellValue->AuraStackAmount, this); + if (!originalCasterGUID.IsEmpty()) m_originalCasterGUID = originalCasterGUID; else diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 0f67bb6915a..d59c3201c51 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -304,7 +304,7 @@ struct SpellValue uint32 CustomBasePointsMask; uint32 MaxAffectedTargets; float RadiusMod; - uint8 AuraStackAmount; + int32 AuraStackAmount; }; enum SpellState |