diff options
Diffstat (limited to 'src')
4 files changed, 21 insertions, 14 deletions
diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h index 32317b14484..d886437ca47 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/azjol_nerub.h @@ -28,7 +28,7 @@ uint32 const EncounterCount = 3; enum ANDataTypes { // Encounter States/Boss GUIDs - DATA_KRIKTHIR_THE_GATEWATCHER = 0, + DATA_KRIKTHIR = 0, DATA_HADRONOX = 1, DATA_ANUBARAK = 2, diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp index 41e22761249..38282a93589 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_hadronox.cpp @@ -967,6 +967,8 @@ class spell_hadronox_periodic_summon_template_AuraScript : public AuraScript InstanceScript* instance = caster->GetInstanceScript(); if (!instance) return; + if (!instance->instance->HavePlayers()) + return; if (instance->GetBossState(DATA_HADRONOX) == DONE) GetAura()->Remove(); else diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp index 74678bbeadc..326ded1713b 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp @@ -132,11 +132,11 @@ class boss_krik_thir : public CreatureScript struct boss_krik_thirAI : public BossAI { - boss_krik_thirAI(Creature* creature) : BossAI(creature, DATA_KRIKTHIR_THE_GATEWATCHER), _hadGreet(false), _hadFrenzy(false), _petsInCombat(false), _watchersActive(0) { } + boss_krik_thirAI(Creature* creature) : BossAI(creature, DATA_KRIKTHIR), _hadGreet(false), _hadFrenzy(false), _petsInCombat(false), _watchersActive(0) { } void SummonAdds() { - if (instance->GetBossState(DATA_KRIKTHIR_THE_GATEWATCHER) == DONE) + if (instance->GetBossState(DATA_KRIKTHIR) == DONE) return; for (uint8 i = 1; i <= 3; ++i) @@ -429,7 +429,7 @@ class npc_watcher_gashra : public CreatureScript void JustDied(Unit* /*killer*/) override { - Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER); + Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR); if (krikthir && krikthir->IsAlive()) krikthir->AI()->DoAction(ACTION_GASHRA_DIED); } @@ -507,7 +507,7 @@ class npc_watcher_narjil : public CreatureScript void JustDied(Unit* /*killer*/) override { - Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER); + Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR); if (krikthir && krikthir->IsAlive()) krikthir->AI()->DoAction(ACTION_NARJIL_DIED); } @@ -585,7 +585,7 @@ class npc_watcher_silthik : public CreatureScript void JustDied(Unit* /*killer*/) override { - Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER); + Creature* krikthir = _instance->GetCreature(DATA_KRIKTHIR); if (krikthir && krikthir->IsAlive()) krikthir->AI()->DoAction(ACTION_SILTHIK_DIED); } @@ -839,7 +839,7 @@ class npc_skittering_swarmer : public CreatureScript void InitializeAI() override { ScriptedAI::InitializeAI(); - if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER)) + if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR)) { if (Unit* target = gatewatcher->getAttackerForHelper()) AttackStart(target); @@ -866,7 +866,7 @@ class npc_skittering_infector : public CreatureScript void InitializeAI() override { ScriptedAI::InitializeAI(); - if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER)) + if (Creature* gatewatcher = me->GetInstanceScript()->GetCreature(DATA_KRIKTHIR)) { if (Unit* target = gatewatcher->getAttackerForHelper()) AttackStart(target); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp index 76989b88c1d..bcb4ee87547 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/instance_azjol_nerub.cpp @@ -24,7 +24,7 @@ DoorData const doorData[] = { - { GO_KRIKTHIR_DOOR, DATA_KRIKTHIR_THE_GATEWATCHER, DOOR_TYPE_PASSAGE }, + { GO_KRIKTHIR_DOOR, DATA_KRIKTHIR, DOOR_TYPE_PASSAGE }, { GO_ANUBARAK_DOOR_1, DATA_ANUBARAK, DOOR_TYPE_ROOM }, { GO_ANUBARAK_DOOR_2, DATA_ANUBARAK, DOOR_TYPE_ROOM }, { GO_ANUBARAK_DOOR_3, DATA_ANUBARAK, DOOR_TYPE_ROOM }, @@ -33,7 +33,7 @@ DoorData const doorData[] = ObjectData const creatureData[] = { - { NPC_KRIKTHIR, DATA_KRIKTHIR_THE_GATEWATCHER }, + { NPC_KRIKTHIR, DATA_KRIKTHIR }, { NPC_HADRONOX, DATA_HADRONOX }, { NPC_ANUBARAK, DATA_ANUBARAK }, { NPC_WATCHER_NARJIL, DATA_WATCHER_GASHRA }, @@ -51,7 +51,7 @@ ObjectData const gameobjectData[] = BossBoundaryData const boundaries = { - { DATA_KRIKTHIR_THE_GATEWATCHER, new RectangleBoundary(400.0f, 580.0f, 623.5f, 810.0f) }, + { DATA_KRIKTHIR, new RectangleBoundary(400.0f, 580.0f, 623.5f, 810.0f) }, { DATA_HADRONOX, new ZRangeBoundary(666.0f, 776.0f) }, { DATA_ANUBARAK, new CircleBoundary(Position(550.6178f, 253.5917f), 26.0f) } }; @@ -75,10 +75,15 @@ class instance_azjol_nerub : public InstanceMapScript void OnUnitDeath(Unit* who) override { InstanceScript::OnUnitDeath(who); + + if (who->GetTypeId() != TYPEID_UNIT || GetBossState(DATA_KRIKTHIR) == DONE) + return; + Creature* creature = who->ToCreature(); - if (!creature || creature->IsCritter() || creature->IsControlledByPlayer()) + if (creature->IsCritter() || creature->IsCharmedOwnedByPlayerOrPlayer()) return; - if (Creature* gatewatcher = GetCreature(DATA_KRIKTHIR_THE_GATEWATCHER)) + + if (Creature* gatewatcher = GetCreature(DATA_KRIKTHIR)) gatewatcher->AI()->DoAction(-ACTION_GATEWATCHER_GREET); } @@ -87,7 +92,7 @@ class instance_azjol_nerub : public InstanceMapScript if (_SkipCheckRequiredBosses(player)) return true; - if (bossId > DATA_KRIKTHIR_THE_GATEWATCHER && GetBossState(DATA_KRIKTHIR_THE_GATEWATCHER) != DONE) + if (bossId > DATA_KRIKTHIR && GetBossState(DATA_KRIKTHIR) != DONE) return false; return true; |