From 3d4bebd8d9210fbb84f8fc75742e248071192b09 Mon Sep 17 00:00:00 2001 From: Treeston Date: Thu, 1 Aug 2019 18:32:26 +0200 Subject: Scripts/FollowerAI: Some cleanup: - FollowerAI properly resumes follow after evading. - Removed duplicated getters from CreatureAI (IsEscorted vs IsEscortNPC), they were used to do the same thing - FollowerAI properly assists in combat. - FollowerAI properly despawns if quest is abandoned. - FollowerAI now supports dynamic respawning for escort NPCs. --- src/server/scripts/Kalimdor/zone_darkshore.cpp | 2 +- src/server/scripts/Kalimdor/zone_tanaris.cpp | 9 +++------ src/server/scripts/Kalimdor/zone_ungoro_crater.cpp | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Kalimdor/zone_darkshore.cpp b/src/server/scripts/Kalimdor/zone_darkshore.cpp index 9ff9a03b3e1..f7c936fe873 100644 --- a/src/server/scripts/Kalimdor/zone_darkshore.cpp +++ b/src/server/scripts/Kalimdor/zone_darkshore.cpp @@ -161,7 +161,7 @@ public: { me->SetStandState(UNIT_STAND_STATE_STAND); Talk(SAY_KER_START, player); - StartFollow(player, FACTION_ESCORTEE_N_NEUTRAL_PASSIVE, quest); + StartFollow(player, FACTION_ESCORTEE_N_NEUTRAL_PASSIVE, QUEST_SLEEPER_AWAKENED); } } }; diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp index 728aef81fef..97a2e31beba 100644 --- a/src/server/scripts/Kalimdor/zone_tanaris.cpp +++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp @@ -326,7 +326,7 @@ public: if (me->IsWithinDistInMap(who, INTERACTION_DISTANCE)) { Player* player = GetLeaderForFollower(); - if (player && player->GetQuestStatus(QUEST_TOOGA) == QUEST_STATUS_INCOMPLETE) + if (player) player->GroupEventHappens(QUEST_TOOGA, me); TortaGUID = who->GetGUID(); @@ -339,10 +339,7 @@ public: { FollowerAI::MovementInform(MotionType, PointId); - if (MotionType != POINT_MOTION_TYPE) - return; - - if (PointId == POINT_ID_TO_WATER) + if ((MotionType == POINT_MOTION_TYPE) && (PointId == POINT_ID_TO_WATER)) SetFollowComplete(); } @@ -416,7 +413,7 @@ public: void QuestAccept(Player* player, Quest const* quest) override { if (quest->GetQuestId() == QUEST_TOOGA) - StartFollow(player, FACTION_ESCORTEE_N_NEUTRAL_PASSIVE, quest); + StartFollow(player, FACTION_ESCORTEE_N_NEUTRAL_PASSIVE, QUEST_TOOGA); } }; diff --git a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp index 41401fb8c7c..2e06e92f285 100644 --- a/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp +++ b/src/server/scripts/Kalimdor/zone_ungoro_crater.cpp @@ -340,7 +340,7 @@ public: if (quest->GetQuestId() == QUEST_A_LITTLE_HELP) { me->SetStandState(UNIT_STAND_STATE_STAND); - StartFollow(player, FACTION_ESCORTEE_N_NEUTRAL_PASSIVE, quest); + StartFollow(player, FACTION_ESCORTEE_N_NEUTRAL_PASSIVE, QUEST_A_LITTLE_HELP); } } }; -- cgit v1.2.3