From cfcb5d5bd73fa1208e069df5e8ccfa993cf00690 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Mon, 10 Jun 2024 18:07:48 -0300 Subject: [PATCH] fix(Scripts/NPC): Fix arcanite dragonling attacking non flagged players (#19039) --- src/server/scripts/World/npcs_special.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) 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