mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-05 08:28:57 +01:00
Core/SpellScript: Corrected when OnObjectAreaTargetSelect hooks are called (must be before splitting unit/go targets)
This commit is contained in:
@@ -1205,6 +1205,9 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
CallScriptObjectAreaTargetSelectHandlers(targets, effIndex);
|
||||
|
||||
std::list<Unit*> unitTargets;
|
||||
std::list<GameObject*> gObjTargets;
|
||||
// for compability with older code - add only unit and go targets
|
||||
@@ -1217,8 +1220,6 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
|
||||
gObjTargets.push_back(gObjTarget);
|
||||
}
|
||||
|
||||
CallScriptObjectAreaTargetSelectHandlers(targets, effIndex);
|
||||
|
||||
if (!unitTargets.empty())
|
||||
{
|
||||
// Special target selection for smart heals and energizes
|
||||
@@ -1562,15 +1563,15 @@ void Spell::SelectImplicitChainTargets(SpellEffIndex effIndex, SpellImplicitTarg
|
||||
SearchChainTargets(targets, maxTargets - 1, target, targetType.GetObjectType(), targetType.GetCheckType()
|
||||
, m_spellInfo->Effects[effIndex].ImplicitTargetConditions, targetType.GetTarget() == TARGET_UNIT_TARGET_CHAINHEAL_ALLY);
|
||||
|
||||
// Chain primary target is added earlier
|
||||
CallScriptObjectAreaTargetSelectHandlers(targets, effIndex);
|
||||
|
||||
// for backward compability
|
||||
std::list<Unit*> unitTargets;
|
||||
for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end(); ++itr)
|
||||
if (Unit* unitTarget = (*itr)->ToUnit())
|
||||
unitTargets.push_back(unitTarget);
|
||||
|
||||
// Chain primary target is added earlier
|
||||
CallScriptObjectAreaTargetSelectHandlers(targets, effIndex);
|
||||
|
||||
for (std::list<Unit*>::iterator itr = unitTargets.begin(); itr != unitTargets.end(); ++itr)
|
||||
AddUnitTarget(*itr, effMask, false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user