diff options
author | jackpoz <giacomopoz@gmail.com> | 2019-02-23 18:34:31 +0100 |
---|---|---|
committer | jackpoz <giacomopoz@gmail.com> | 2019-02-23 18:34:31 +0100 |
commit | 76cc94f325ab68f66a4fa7b5d30316508e27c0ce (patch) | |
tree | 79f3d6d10536b12494bf0507c1110a1e7beb35dd /src | |
parent | 809f8c43e58cd1c519d6e606fe0769fe953cfe4a (diff) |
Core/Spells: Add range checks to GameObject targets
Close #23062
Patch by robinsch
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index e2154c16eb9..415b6d12f09 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6305,6 +6305,15 @@ SpellCastResult Spell::CheckRange(bool strict) const return SPELL_FAILED_UNIT_NOT_INFRONT; } + if (GameObject* goTarget = m_targets.GetGOTarget()) + { + if (m_caster->GetExactDistSq(goTarget) > maxRange) + return SPELL_FAILED_OUT_OF_RANGE; + + if (minRange > 0.0f && m_caster->GetExactDistSq(goTarget) < minRange) + return SPELL_FAILED_OUT_OF_RANGE; + } + if (m_targets.HasDst() && !m_targets.HasTraj()) { if (m_caster->GetExactDistSq(m_targets.GetDstPos()) > maxRange) |