fix(Script/ZulAman): Don't start the timer before Harrison Johnes event (#21311)
This commit is contained in:
@@ -115,11 +115,13 @@ public:
|
|||||||
|
|
||||||
for (uint8 i = 0; i < RAND_VENDOR; ++i)
|
for (uint8 i = 0; i < RAND_VENDOR; ++i)
|
||||||
RandVendor[i] = NOT_STARTED;
|
RandVendor[i] = NOT_STARTED;
|
||||||
|
|
||||||
|
StorePersistentData(DATA_TIMED_RUN, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnPlayerEnter(Player* /*player*/) override
|
void OnPlayerEnter(Player* /*player*/) override
|
||||||
{
|
{
|
||||||
if (!scheduler.IsGroupScheduled(GROUP_TIMED_RUN))
|
if (!scheduler.IsGroupScheduled(GROUP_TIMED_RUN) && GetPersistentData(DATA_TIMED_RUN))
|
||||||
DoAction(ACTION_START_TIMED_RUN);
|
DoAction(ACTION_START_TIMED_RUN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,53 +295,36 @@ public:
|
|||||||
if (!InstanceScript::SetBossState(type, state))
|
if (!InstanceScript::SetBossState(type, state))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (state == DONE)
|
||||||
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case DATA_NALORAKK:
|
case DATA_NALORAKK:
|
||||||
if (state == DONE)
|
|
||||||
{
|
|
||||||
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
|
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
|
||||||
{
|
{
|
||||||
StorePersistentData(DATA_TIMED_RUN, timer += 15);
|
StorePersistentData(DATA_TIMED_RUN, timer += 15);
|
||||||
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
|
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
|
||||||
}
|
}
|
||||||
SummonHostage(0);
|
SummonHostage(type);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case DATA_AKILZON:
|
case DATA_AKILZON:
|
||||||
if (state == DONE)
|
|
||||||
{
|
|
||||||
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
|
if (uint32 timer = GetPersistentData(DATA_TIMED_RUN))
|
||||||
{
|
{
|
||||||
StorePersistentData(DATA_TIMED_RUN, timer += 10);
|
StorePersistentData(DATA_TIMED_RUN, timer += 10);
|
||||||
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
|
DoUpdateWorldState(WORLDSTATE_TIME_TO_SACRIFICE, timer);
|
||||||
}
|
}
|
||||||
SummonHostage(1);
|
SummonHostage(type);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case DATA_JANALAI:
|
case DATA_JANALAI:
|
||||||
if (state == DONE)
|
|
||||||
SummonHostage(2);
|
|
||||||
break;
|
|
||||||
case DATA_HALAZZI:
|
case DATA_HALAZZI:
|
||||||
if (state == DONE)
|
SummonHostage(type);
|
||||||
SummonHostage(3);
|
|
||||||
break;
|
break;
|
||||||
case DATA_HEXLORD:
|
case DATA_HEXLORD:
|
||||||
if (state == IN_PROGRESS)
|
|
||||||
HandleGameObject(ObjectGuid::Empty, false, GetGameObject(DATA_HEXLORD_GATE));
|
|
||||||
else if (state == NOT_STARTED)
|
|
||||||
CheckInstanceStatus();
|
|
||||||
else if (state == DONE)
|
|
||||||
{
|
|
||||||
if (GameObject* zuljinGate = GetGameObject(DATA_ZULJIN_GATE))
|
if (GameObject* zuljinGate = GetGameObject(DATA_ZULJIN_GATE))
|
||||||
zuljinGate->RemoveGameObjectFlag(GO_FLAG_LOCKED);
|
zuljinGate->RemoveGameObjectFlag(GO_FLAG_LOCKED);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state == DONE)
|
|
||||||
{
|
|
||||||
if (GetPersistentData(DATA_TIMED_RUN) && AllBossesDone({ DATA_NALORAKK, DATA_AKILZON, DATA_JANALAI, DATA_HALAZZI }))
|
if (GetPersistentData(DATA_TIMED_RUN) && AllBossesDone({ DATA_NALORAKK, DATA_AKILZON, DATA_JANALAI, DATA_HALAZZI }))
|
||||||
{
|
{
|
||||||
StorePersistentData(DATA_TIMED_RUN, 0);
|
StorePersistentData(DATA_TIMED_RUN, 0);
|
||||||
@@ -348,6 +333,16 @@ public:
|
|||||||
|
|
||||||
CheckInstanceStatus();
|
CheckInstanceStatus();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (type == DATA_HEXLORD)
|
||||||
|
{
|
||||||
|
if (state == IN_PROGRESS)
|
||||||
|
HandleGameObject(ObjectGuid::Empty, false, GetGameObject(DATA_HEXLORD_GATE));
|
||||||
|
else if (state == NOT_STARTED)
|
||||||
|
CheckInstanceStatus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user