Core/SmartAI: added TARGET_OWNER_OR_SUMMONER, useful if you have a creature summoned by a spell, you can use Summoner as target
--HG-- branch : trunk
This commit is contained in:
@@ -1440,6 +1440,14 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder e, Unit* invoker)
|
||||
l->push_back(target);
|
||||
break;
|
||||
}
|
||||
case SMART_TARGET_OWNER_OR_SUMMONER:
|
||||
{
|
||||
if (!me) return NULL;
|
||||
uint64 guid = me->GetCharmerOrOwnerGUID();
|
||||
if (Unit* owner = ObjectAccessor::GetUnit(*me, guid))
|
||||
l->push_back(owner);
|
||||
break;
|
||||
}
|
||||
case SMART_TARGET_POSITION:
|
||||
default:
|
||||
return NULL;
|
||||
|
||||
@@ -278,6 +278,7 @@ bool SmartAIMgr::IsTargetValid(SmartScriptHolder e)
|
||||
case SMART_TARGET_CLOSEST_GAMEOBJECT:
|
||||
case SMART_TARGET_CLOSEST_PLAYER:
|
||||
case SMART_TARGET_ACTION_INVOKER_VEHICLE:
|
||||
case SMART_TARGET_OWNER_OR_SUMMONER:
|
||||
break;
|
||||
default:
|
||||
sLog.outErrorDb("SmartAIMgr: Not handled target_type(%u), Entry %d SourceType %u Event %u Action %u, skipped.", e.GetTargetType(), e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType());
|
||||
|
||||
@@ -830,7 +830,8 @@ enum SMARTAI_TARGETS
|
||||
SMART_TARGET_CLOSEST_GAMEOBJECT = 20, // entry(0any)
|
||||
SMART_TARGET_CLOSEST_PLAYER = 21, // none
|
||||
SMART_TARGET_ACTION_INVOKER_VEHICLE = 22, // Unit's vehicle who caused this Event to occur
|
||||
SMART_TARGET_END = 23,
|
||||
SMART_TARGET_OWNER_OR_SUMMONER = 23, // Unit's owner or summoner
|
||||
SMART_TARGET_END = 24,
|
||||
};
|
||||
|
||||
struct SmartTarget
|
||||
|
||||
Reference in New Issue
Block a user