diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-08-01 11:17:34 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-08-01 11:17:34 +0200 |
commit | a80b36c2f374adf16a60bfedf05589aaf326aa03 (patch) | |
tree | 6420207455b88b0093c9c998e2a7ee1d60ede6f1 /src/server/game/Spells/Spell.cpp | |
parent | acc2e88c31b6aa027da4bd90ac8889b45b1b27f7 (diff) |
Core/Spells: Limited SPELL_ATTR3_PLAYERS_ONLY attribute to only allow players, not pets and totems. This fixes many boss area spells incorrectly selecting pets and totems as their targets.
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rwxr-xr-x | src/server/game/Spells/Spell.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 40ab5748f92..104f786c99b 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -1832,7 +1832,10 @@ void Spell::SearchAreaTarget(std::list<Unit*> &TagUnitMap, float radius, SpellNo Trinity::SpellNotifierCreatureAndPlayer notifier(m_caster, TagUnitMap, radius, type, TargetType, pos, entry, m_spellInfo); if ((m_spellInfo->AttributesEx3 & SPELL_ATTR3_PLAYERS_ONLY) || (TargetType == SPELL_TARGETS_ENTRY && !entry)) + { m_caster->GetMap()->VisitWorld(pos->m_positionX, pos->m_positionY, radius, notifier); + TagUnitMap.remove_if(Trinity::ObjectTypeIdCheck(TYPEID_PLAYER, false)); // above line will select also pets and totems, remove them + } else m_caster->GetMap()->VisitAll(pos->m_positionX, pos->m_positionY, radius, notifier); @@ -4945,7 +4948,7 @@ SpellCastResult Spell::CheckCast(bool strict) if (castResult != SPELL_CAST_OK) return castResult; } - + if (!(_triggeredCastFlags & TRIGGERED_IGNORE_CASTER_AURAS)) { castResult = CheckCasterAuras(); |