*Fix broken chain spells.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-01-28 11:50:12 -06:00
parent 6e6e64cf67
commit 3a229014dc
4 changed files with 20 additions and 6 deletions

View File

@@ -1386,7 +1386,7 @@ void Spell::SearchChainTarget(std::list<Unit*> &TagUnitMap, float max_range, uin
void Spell::SearchAreaTarget(std::list<Unit*> &TagUnitMap, float radius, const uint32 &type, SpellTargets TargetType, uint32 entry)
{
float x, y;
float x, y, z;
if(type == PUSH_DEST_CENTER)
{
if(!m_targets.HasDest())
@@ -1396,6 +1396,7 @@ void Spell::SearchAreaTarget(std::list<Unit*> &TagUnitMap, float radius, const u
}
x = m_targets.m_destX;
y = m_targets.m_destY;
z = m_targets.m_destZ;
}
else if(type == PUSH_TARGET_CENTER)
{
@@ -1407,14 +1408,16 @@ void Spell::SearchAreaTarget(std::list<Unit*> &TagUnitMap, float radius, const u
}
x = target->GetPositionX();
y = target->GetPositionY();
z = target->GetPositionZ();
}
else
{
x = m_caster->GetPositionX();
y = m_caster->GetPositionY();
z = m_caster->GetPositionZ();
}
Trinity::SpellNotifierCreatureAndPlayer notifier(*this, TagUnitMap, radius, type, TargetType, entry);
Trinity::SpellNotifierCreatureAndPlayer notifier(*this, TagUnitMap, radius, type, TargetType, entry, x, y, z);
if((m_spellInfo->AttributesEx3 & SPELL_ATTR_EX3_PLAYERS_ONLY)
|| TargetType == SPELL_TARGETS_ENTRY && !entry)
m_caster->GetMap()->VisitWorld(x, y, radius, notifier);