fix(Scripts/ZulAman): prevent early engaging of door guardians to skip timed event (#21177)

This commit is contained in:
Jelle Meeus
2025-01-15 23:52:10 +01:00
committed by GitHub
parent a37e0c9717
commit aefd3a5a3f
4 changed files with 28 additions and 15 deletions

View File

@@ -65,7 +65,7 @@ ObjectData const creatureData[] =
{ NPC_JANALAI, DATA_JANALAI },
{ NPC_SPIRIT_LYNX, DATA_SPIRIT_LYNX },
{ NPC_HARRISON_JONES, DATA_HARRISON_JONES },
{ NPC_AMINISHI_LOOKOUT, DATA_LOOKOUT },
{ NPC_AMANISHI_LOOKOUT, DATA_LOOKOUT },
{ 0, 0 }
};
@@ -127,13 +127,18 @@ public:
{
switch (creature->GetEntry())
{
case NPC_AMANISHI_GUARDIAN:
case NPC_AMANISHI_SAVAGE:
if (creature->GetPositionY() >= 1500.0f) // gate
creature->SetImmuneToAll(true);
break;
// Akil'zon gauntlet
case NPC_AMINISHI_TEMPEST:
case NPC_AMANISHI_TEMPEST:
if (creature->GetPositionZ() >= 50.0f) // excludes Tempest in Hexlord Malacrass' trash
AkilzonTrash.insert(creature->GetGUID());
break;
case NPC_AMINISHI_LOOKOUT:
case NPC_AMINISHI_PROTECTOR:
case NPC_AMANISHI_LOOKOUT:
case NPC_AMANISHI_PROTECTOR:
case NPC_EAGLE_TRASH_AGGRO_TRIGGER:
AkilzonTrash.insert(creature->GetGUID());
break;
@@ -226,8 +231,8 @@ public:
case NPC_EAGLE_TRASH_AGGRO_TRIGGER:
creature->DisappearAndDie();
break;
case NPC_AMINISHI_LOOKOUT:
case NPC_AMINISHI_TEMPEST:
case NPC_AMANISHI_LOOKOUT:
case NPC_AMANISHI_TEMPEST:
creature->AI()->DoAction(ACTION_START_AKILZON_GAUNTLET);
break;
default:
@@ -243,7 +248,7 @@ public:
{
if (!creature->IsAlive())
creature->Respawn();
else if (creature->GetEntry() == NPC_AMINISHI_TEMPEST)
else if (creature->GetEntry() == NPC_AMANISHI_TEMPEST)
creature->AI()->DoAction(ACTION_RESET_AKILZON_GAUNTLET);
}
if (Creature* creature = GetCreature(DATA_LOOKOUT))
@@ -259,7 +264,7 @@ public:
switch (creature->GetEntry())
{
case NPC_AMINISHI_PROTECTOR:
case NPC_AMANISHI_PROTECTOR:
case NPC_AMANISHI_WIND_WALKER:
if (_akilzonGauntlet == NOT_STARTED && AkilzonTrash.contains(creature->GetGUID()))
creature->DespawnOrUnsummon(30s, 1s);
@@ -272,8 +277,8 @@ public:
{
switch (creature->GetEntry())
{
case NPC_AMINISHI_TEMPEST:
case NPC_AMINISHI_PROTECTOR:
case NPC_AMANISHI_TEMPEST:
case NPC_AMANISHI_PROTECTOR:
case NPC_AMANISHI_WIND_WALKER:
if (AkilzonTrash.contains(creature->GetGUID()))
ResetAkilzonGauntlet();

View File

@@ -358,8 +358,7 @@ enum DisplayIds
enum EntryIds
{
NPC_HARRISON_JONES_1 = 24375,
NPC_HARRISON_JONES_2 = 24365,
NPC_AMANISHI_GUARDIAN = 23597,
NPC_HARRISON_JONES_2 = 24365
};
enum Weapons
@@ -417,7 +416,10 @@ struct npc_harrison_jones : public ScriptedAI
std::list<Creature*> creatures;
me->GetCreatureListWithEntryInGrid(creatures, NPC_AMANISHI_SAVAGE, 100.0f);
for (Creature* creature : creatures)
{
creature->SetImmuneToAll(false);
creature->SetInCombatWithZone();
}
});
_instance->StorePersistentData(DATA_TIMED_RUN, 21);
_instance->DoAction(ACTION_START_TIMED_RUN);

View File

@@ -60,11 +60,12 @@ enum CreatureIds
NPC_AMANISHI_MEDICINE_MAN = 23581,
NPC_AMANISHI_AXE_THROWER = 23542,
NPC_AMANI_HATCHLING = 23598, // 42493
NPC_AMANISHI_GUARDIAN = 23597,
// Akil'zon gauntlet
NPC_AMANISHI_WIND_WALKER = 24179,
NPC_AMINISHI_LOOKOUT = 24175,
NPC_AMINISHI_PROTECTOR = 24180,
NPC_AMINISHI_TEMPEST = 24549,
NPC_AMANISHI_LOOKOUT = 24175,
NPC_AMANISHI_PROTECTOR = 24180,
NPC_AMANISHI_TEMPEST = 24549,
NPC_EAGLE_TRASH_AGGRO_TRIGGER = 24223
};