From 7a2ef474952e6d57f4d8282a8cd3d068dcf3f38c Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sun, 3 Mar 2019 21:42:07 +0100 Subject: Core/Spells: Adjust range checks to GameObject targets (cherry picked from commit 72052aa9a55683011969510f4aea6d1efd9c67c9) --- src/server/game/Spells/Spell.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index ed04bf1e78d..2444044c29c 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6494,7 +6494,7 @@ SpellCastResult Spell::CheckRange(bool strict) const maxRange += std::min(MAX_SPELL_RANGE_TOLERANCE, maxRange*0.1f); // 10% but no more than MAX_SPELL_RANGE_TOLERANCE // save the original values before squaring them - float origMaxRange = maxRange; + float origMinRange = minRange, origMaxRange = maxRange; // get square values for sqr distance checks minRange *= minRange; @@ -6517,6 +6517,9 @@ SpellCastResult Spell::CheckRange(bool strict) const if (GameObject* goTarget = m_targets.GetGOTarget()) { + if (origMinRange > 0.0f && goTarget->IsInRange(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), origMinRange)) + return SPELL_FAILED_OUT_OF_RANGE; + if (!goTarget->IsInRange(m_caster->GetPositionX(), m_caster->GetPositionY(), m_caster->GetPositionZ(), origMaxRange)) return SPELL_FAILED_OUT_OF_RANGE; } -- cgit v1.2.3