Scripts/TheBarrens: Fix "The Escape" (863) - I don't think this one ever worked, honestly.

(cherry picked from commit 0e401c7d96)
This commit is contained in:
Treeston
2018-02-13 17:49:21 +01:00
committed by Shauren
parent 121bfa90ed
commit 83c4aa88ec

View File

@@ -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;
}
++PostEventCount;
PostEventTimer = 5000;
}
else
PostEventTimer -= Diff;
}
DoMeleeAttackIfReady();
return;
}
DoMeleeAttackIfReady();
if (!IsPostEvent)
return;
if (PostEventTimer > Diff)
{
PostEventTimer -= Diff;
return;
}
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());
}
}