mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 08:28:32 +01:00
Core/Spells: Fixed crash happening when a spell script set target to NULL in OnObjectTargetSelect hook for spells using nearby target selection
This commit is contained in:
@@ -1048,16 +1048,33 @@ void Spell::SelectImplicitNearbyTargets(SpellEffIndex effIndex, SpellImplicitTar
|
||||
}
|
||||
|
||||
CallScriptObjectTargetSelectHandlers(target, effIndex);
|
||||
if (!target)
|
||||
{
|
||||
TC_LOG_DEBUG("spells", "Spell::SelectImplicitNearbyTargets: OnObjectTargetSelect script hook for spell Id %u set NULL target, effect %u", m_spellInfo->Id, effIndex);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (targetType.GetObjectType())
|
||||
{
|
||||
case TARGET_OBJECT_TYPE_UNIT:
|
||||
{
|
||||
if (Unit* unitTarget = target->ToUnit())
|
||||
AddUnitTarget(unitTarget, effMask, true, false);
|
||||
else
|
||||
{
|
||||
TC_LOG_DEBUG("spells", "Spell::SelectImplicitNearbyTargets: OnObjectTargetSelect script hook for spell Id %u set object of wrong type, expected unit, got %s, effect %u", m_spellInfo->Id, GetLogNameForGuid(target->GetGUID()), effMask);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TARGET_OBJECT_TYPE_GOBJ:
|
||||
if (GameObject* gobjTarget = target->ToGameObject())
|
||||
AddGOTarget(gobjTarget, effMask);
|
||||
else
|
||||
{
|
||||
TC_LOG_DEBUG("spells", "Spell::SelectImplicitNearbyTargets: OnObjectTargetSelect script hook for spell Id %u set object of wrong type, expected gameobject, got %s, effect %u", m_spellInfo->Id, GetLogNameForGuid(target->GetGUID()), effMask);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case TARGET_OBJECT_TYPE_DEST:
|
||||
m_targets.SetDst(*target);
|
||||
|
||||
Reference in New Issue
Block a user