diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2019-08-01 18:32:26 +0200 |
|---|---|---|
| committer | Treeston <treeston.mmoc@gmail.com> | 2019-08-01 18:32:26 +0200 |
| commit | 3d4bebd8d9210fbb84f8fc75742e248071192b09 (patch) | |
| tree | 452512b8057b62be3f5387aa054f9cccf8bd9ed7 /src/server/scripts | |
| parent | 3ffe570b219d31d1f2747c9a78826353fc817d3e (diff) | |
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.
Diffstat (limited to 'src/server/scripts')
| -rw-r--r-- | src/server/scripts/Kalimdor/zone_darkshore.cpp | 2 | ||||
| -rw-r--r-- | src/server/scripts/Kalimdor/zone_tanaris.cpp | 9 | ||||
| -rw-r--r-- | src/server/scripts/Kalimdor/zone_ungoro_crater.cpp | 2 |
3 files changed, 5 insertions, 8 deletions
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); } } }; |
