aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLiberate <tbaart@gmail.com>2011-10-19 00:24:43 +0200
committerLiberate <tbaart@gmail.com>2011-10-19 00:24:43 +0200
commit8f8949fcf0cfaca286c723ab60e94b62f04998a6 (patch)
tree7f8fbb8a1c5da4aa537fe0e9e9b877829d40d739 /src
parent6d12deb5b5e5e2ad3ed0bd285b00a3a22601aeed (diff)
Core/Spells: Spells with the self-cast range should not have a range check. This range used for many triggered spells.
Fixes #3358
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp11
1 files changed, 10 insertions, 1 deletions
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);