aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-02-13 17:49:21 +0100
committerShauren <shauren.trinity@gmail.com>2021-06-20 21:42:35 +0200
commit83c4aa88ec163ca55b2d8e3e02e86f54b4900604 (patch)
treef0d0eb9527b709d6b84e6b262ad0b888d51e61f4
parent121bfa90ed8748250150d43c97e804f62f967b93 (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.cpp78
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());
}
}