diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-02-13 17:49:21 +0100 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-02-13 17:49:40 +0100 |
commit | 0e401c7d963f983d31573d108ccd2343fda40094 (patch) | |
tree | 77edc47efbf403101a64fe585b587953ab5326ee /src | |
parent | f91a9f8b14e6c8276e620caa77a7e36a5af5f755 (diff) |
Scripts/TheBarrens: Fix "The Escape" (863) - I don't think this one ever worked, honestly.
Diffstat (limited to 'src')
-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 a0c127de3e0..855429b3cd8 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -537,25 +537,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) @@ -609,43 +597,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 @@ -654,6 +643,7 @@ public: { me->SetFaction(FACTION_RATCHET); Talk(SAY_START); + SetDespawnAtEnd(false); Start(true, false, player->GetGUID()); } } |