aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTreeston <treeston.mmoc@gmail.com>2018-02-13 17:49:21 +0100
committerTreeston <treeston.mmoc@gmail.com>2018-02-13 17:49:40 +0100
commit0e401c7d963f983d31573d108ccd2343fda40094 (patch)
tree77edc47efbf403101a64fe585b587953ab5326ee /src
parentf91a9f8b14e6c8276e620caa77a7e36a5af5f755 (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.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 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());
}
}