diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-02-13 17:49:21 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-06-20 21:42:35 +0200 |
commit | 83c4aa88ec163ca55b2d8e3e02e86f54b4900604 (patch) | |
tree | f0d0eb9527b709d6b84e6b262ad0b888d51e61f4 | |
parent | 121bfa90ed8748250150d43c97e804f62f967b93 (diff) |
Scripts/TheBarrens: Fix "The Escape" (863) - I don't think this one ever worked, honestly.
(cherry picked from commit 0e401c7d963f983d31573d108ccd2343fda40094)
-rw-r--r-- | src/server/scripts/Kalimdor/zone_the_barrens.cpp | 78 |
1 files changed, 34 insertions, 44 deletions
diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp index b7ece8f867d..b55186efe02 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -531,25 +531,13 @@ public: IsPostEvent = false; PostEventTimer = 1000; PostEventCount = 0; + me->SetReactState(REACT_DEFENSIVE); } bool IsPostEvent; uint32 PostEventTimer; uint32 PostEventCount; - void Reset() override - { - if (!HasEscortState(STATE_ESCORT_ESCORTING)) - { - if (me->GetStandState() == UNIT_STAND_STATE_DEAD) - me->SetStandState(UNIT_STAND_STATE_STAND); - - IsPostEvent = false; - PostEventTimer = 1000; - PostEventCount = 0; - } - } - void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override { switch (waypointId) @@ -603,43 +591,44 @@ public: void UpdateEscortAI(uint32 Diff) override { - if (!UpdateVictim()) + if (UpdateVictim()) { - if (IsPostEvent) - { - if (PostEventTimer <= Diff) - { - switch (PostEventCount) - { - case 0: - Talk(SAY_PROGRESS_2); - break; - case 1: - Talk(SAY_PROGRESS_3); - break; - case 2: - Talk(SAY_END); - break; - case 3: - if (Player* player = GetPlayerForEscort()) - { - player->GroupEventHappens(QUEST_ESCAPE, me); - me->SummonCreature(NPC_PILOT_WIZZ, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 180000); - } - break; - } + DoMeleeAttackIfReady(); + return; + } - ++PostEventCount; - PostEventTimer = 5000; - } - else - PostEventTimer -= Diff; - } + if (!IsPostEvent) + return; + if (PostEventTimer > Diff) + { + PostEventTimer -= Diff; return; } - DoMeleeAttackIfReady(); + switch (PostEventCount) + { + case 0: + Talk(SAY_PROGRESS_2); + break; + case 1: + Talk(SAY_PROGRESS_3); + break; + case 2: + Talk(SAY_END); + break; + case 3: + if (Player* player = GetPlayerForEscort()) + { + player->GroupEventHappens(QUEST_ESCAPE, me); + me->DespawnOrUnsummon(3min); + me->SummonCreature(NPC_PILOT_WIZZ, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 180000); + } + break; + } + + ++PostEventCount; + PostEventTimer = 5000; } void QuestAccept(Player* player, Quest const* quest) override @@ -648,6 +637,7 @@ public: { me->SetFaction(FACTION_RATCHET); Talk(SAY_START); + SetDespawnAtEnd(false); Start(true, false, player->GetGUID()); } } |