mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-24 14:16:31 +00:00
feat(Core/SmartScripts): SMART_EVENT_SUMMONED_UNIT_EVADE (#18018)
* feat(Core/SmartScripts): SMART_EVENT_SUMMONED_UNIT_EVADE * .
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
#include "CreatureAIImpl.h"
|
||||
#include "CreatureGroups.h"
|
||||
#include "CreatureTextMgr.h"
|
||||
#include "GameObjectAI.h"
|
||||
#include "Log.h"
|
||||
#include "MapReference.h"
|
||||
#include "Player.h"
|
||||
@@ -222,7 +223,7 @@ void CreatureAI::EnterEvadeMode(EvadeReason why)
|
||||
me->GetVehicleKit()->Reset(true);
|
||||
}
|
||||
|
||||
// despawn bosses at reset - only verified tbc/woltk bosses with this reset type - add bosses in last line respectively (dungeon/raid) and increase array limit
|
||||
// despawn bosses at reset - only verified tbc/woltk bosses with this reset type
|
||||
CreatureTemplate const* cInfo = sObjectMgr->GetCreatureTemplate(me->GetEntry());
|
||||
if (cInfo && cInfo->HasFlagsExtra(CREATURE_FLAG_EXTRA_HARD_RESET))
|
||||
{
|
||||
@@ -321,6 +322,21 @@ bool CreatureAI::_EnterEvadeMode(EvadeReason /*why*/)
|
||||
formation->MemberEvaded(me);
|
||||
}
|
||||
|
||||
if (TempSummon* summon = me->ToTempSummon())
|
||||
{
|
||||
if (WorldObject* summoner = summon->GetSummoner())
|
||||
{
|
||||
if (summoner->ToCreature() && summoner->ToCreature()->IsAIEnabled)
|
||||
{
|
||||
summoner->ToCreature()->AI()->SummonedCreatureEvade(me);
|
||||
}
|
||||
else if (summoner->ToGameObject() && summoner->ToGameObject()->AI())
|
||||
{
|
||||
summoner->ToGameObject()->AI()->SummonedCreatureEvade(me);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user