diff options
author | ariel- <ariel-@users.noreply.github.com> | 2017-05-27 01:40:14 -0300 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2020-06-14 23:49:03 +0200 |
commit | 25f47e468060407610c14b46e857ba1b9cc94203 (patch) | |
tree | 5f11ac8bd06078d28df201f2bd3b9a9959274b3e | |
parent | b161447b47ffa2b37a640ee403fdddd32fdca57f (diff) |
Core/Spell: abort channeling if no valid targets are found after searching
Closes #17624
(cherry picked from commit 2f19d97d210c70eade4fb87c1d86642d77bbcd69)
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 270843e6e92..f0b84cc3c45 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -778,6 +778,14 @@ void Spell::SelectSpellTargets() if (m_spellInfo->IsChanneled()) { + // maybe do this for all spells? + if (m_UniqueTargetInfo.empty() && m_UniqueGOTargetInfo.empty() && m_UniqueItemInfo.empty()) + { + SendCastResult(SPELL_FAILED_BAD_IMPLICIT_TARGETS); + finish(false); + return; + } + uint32 mask = (1 << effect->EffectIndex); for (std::vector<TargetInfo>::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) { |