From 8f8949fcf0cfaca286c723ab60e94b62f04998a6 Mon Sep 17 00:00:00 2001 From: Liberate Date: Wed, 19 Oct 2011 00:24:43 +0200 Subject: Core/Spells: Spells with the self-cast range should not have a range check. This range used for many triggered spells. Fixes #3358 --- src/server/game/Spells/Spell.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index c5e096b9a62..98ac52114c8 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -5639,7 +5639,16 @@ SpellCastResult Spell::CheckRange(bool strict) if (!strict && m_casttime == 0) return SPELL_CAST_OK; - uint32 range_type = m_spellInfo->RangeEntry ? m_spellInfo->RangeEntry->type : 0; + uint32 range_type = 0; + + if (m_spellInfo->RangeEntry) + { + // self cast is used for triggered spells, no range checking needed + if (m_spellInfo->RangeEntry->ID == 1) + return SPELL_CAST_OK; + + range_type = m_spellInfo->RangeEntry->type; + } Unit* target = m_targets.GetUnitTarget(); float max_range = m_caster->GetSpellMaxRangeForTarget(target, m_spellInfo); -- cgit v1.2.3