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
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 28 additions and 15 deletions

View File

@ -0,0 +1,5 @@
--
DELETE FROM `smart_scripts` WHERE (`entryorguid` = 23597) AND (`source_type` = 0) AND (`id` IN (12, 18));
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(23597, 0, 12, 0, 1, 1, 100, 515, 6200, 6200, 6200, 6200, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Amani\'shi Guardian - Out of Combat - Remove Flags Immune To Players & Immune To NPC\'s (Phase 1) (No Repeat) (Normal Dungeon)'),
(23597, 0, 18, 0, 1, 2, 100, 515, 7600, 7600, 7600, 7600, 0, 0, 19, 768, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Amani\'shi Guardian - Out of Combat - Remove Flags Immune To Players & Immune To NPC\'s (Phase 2) (No Repeat) (Normal Dungeon)');

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
};