diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index f02e4a58e..c0fdf07fe 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -2602,6 +2602,17 @@ public: events.Reset(); } + bool CanAIAttack(Unit const* target) const override + { + if (Unit* summoner = me->GetCharmerOrOwner()) + { + if (target->IsPlayer() && (!summoner->IsPvP() || !target->IsPvP())) + return false; + } + + return true; + } + void JustEngagedWith(Unit* /*who*/) override { events.ScheduleEvent(EVENT_FLAME_BUFFET, 4s); @@ -2610,12 +2621,9 @@ public: void IsSummonedBy(WorldObject* summoner) override { - if (summoner->GetTypeId() != TYPEID_UNIT) - { - return; - } + if (summoner->GetTypeId() == TYPEID_UNIT || summoner->IsPlayer()) + me->GetMotionMaster()->MoveFollow(summoner->ToUnit(), PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); - me->GetMotionMaster()->MoveFollow(summoner->ToUnit(), PET_FOLLOW_DIST, PET_FOLLOW_ANGLE); } void UpdateAI(uint32 diff) override