diff options
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;  | 
