diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2018-02-12 02:58:51 +0100 | 
|---|---|---|
| committer | Treeston <treeston.mmoc@gmail.com> | 2018-02-12 02:58:51 +0100 | 
| commit | 6ff71dffbb774b8ea715053cd9223edc5c67bb0f (patch) | |
| tree | 66fdd11759aaafd9756272e0ca0d6669963d3d98 | |
| parent | 92a8f652036d99b0b28407a879d956d554a1905a (diff) | |
Scripts/ScarletEnclave: fix Massacre at Light's Point mine cart escort to work again (tag #20310)
| -rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp | 36 | 
1 files changed, 20 insertions, 16 deletions
| diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 7a5e35e9ed8..90e174364b9 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -1056,11 +1056,6 @@ class npc_scarlet_miner_cart : public CreatureScript                  if (Creature* miner = ObjectAccessor::GetCreature(*me, _minerGUID))                  {                      me->SetWalk(false); - -                    // Not 100% correct, but movement is smooth. Sometimes miner walks faster -                    // than normal, this speed is fast enough to keep up at those times. -                    me->SetSpeedRate(MOVE_RUN, 1.25f); -                      me->GetMotionMaster()->MoveFollow(miner, 1.0f, 0);                  }              } @@ -1110,25 +1105,21 @@ class npc_scarlet_miner : public CreatureScript          {              npc_scarlet_minerAI(Creature* creature) : EscortAI(creature)              { -                Initialize();                  me->SetReactState(REACT_PASSIVE);              } -            void Initialize() +            void InitializeAI() override              { -                carGUID.Clear();                  IntroTimer = 0;                  IntroPhase = 0; +                carGUID.Clear(); +                playerGUID.Clear();              }              uint32 IntroTimer;              uint32 IntroPhase;              ObjectGuid carGUID; - -            void Reset() override -            { -                Initialize(); -            } +            ObjectGuid playerGUID;              void IsSummonedBy(Unit* summoner) override              { @@ -1170,9 +1161,12 @@ class npc_scarlet_miner : public CreatureScript              void SetGUID(ObjectGuid const& guid, int32 /*id*/) override              { -                InitWaypoint(); -                Start(false, false, guid); -                SetDespawnAtFar(false); +                playerGUID = guid; +            } + +            void Reset() override +            { +                EscortAI::Reset();              }              void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override @@ -1200,6 +1194,16 @@ class npc_scarlet_miner : public CreatureScript                  }              } +            void JustAppeared() override +            { +                EscortAI::JustAppeared(); +                if (!playerGUID) +                    return; +                InitWaypoint(); +                Start(false, false, playerGUID); +                SetDespawnAtFar(false); +            } +              void UpdateAI(uint32 diff) override              {                  if (IntroPhase) | 
