diff options
4 files changed, 47 insertions, 7 deletions
diff --git a/sql/updates/world/2014_12_13_00_world.sql b/sql/updates/world/2014_12_13_00_world.sql new file mode 100644 index 00000000000..3be9f73a293 --- /dev/null +++ b/sql/updates/world/2014_12_13_00_world.sql @@ -0,0 +1,6 @@ +-- Ungroup some improperly grouped texts and set their text range +UPDATE `creature_text` SET `TextRange` = 3 WHERE `entry` = 15990 AND `groupid` = 5; +UPDATE `creature_text` SET `groupid` = 16, `TextRange` = 3, `id` = 0 WHERE `entry` = 15990 AND `groupid` = 6 AND `id` = 0; +UPDATE `creature_text` SET `groupid` = 17, `TextRange` = 3, `id` = 0 WHERE `entry` = 15990 AND `groupid` = 6 AND `id` = 1; +UPDATE `creature_text` SET `groupid` = 18, `TextRange` = 3, `id` = 0 WHERE `entry` = 15990 AND `groupid` = 6 AND `id` = 2; +UPDATE `creature_text` SET `groupid` = 19, `TextRange` = 3, `id` = 0 WHERE `entry` = 15990 AND `groupid` = 6 AND `id` = 3; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 87466b6bf41..917fca5b0ba 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -38,9 +38,7 @@ enum Yells SAY_SAPP_DIALOG3 = 2, //not used SAY_SAPP_DIALOG4_LICH = 3, //not used SAY_SAPP_DIALOG5 = 4, //not used - SAY_CAT_DIED = 5, //when cat dies, not used - //when each of the 4 wing bosses dies - SAY_TAUNT = 6, + SAY_AGGRO = 7, SAY_SLAY = 8, SAY_DEATH = 9, diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index f2b472eaac5..7a0930dc2f3 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -115,6 +115,7 @@ class instance_naxxramas : public InstanceMapScript minHorsemenDiedTime = 0; maxHorsemenDiedTime = 0; AbominationCount = 0; + CurrentWingTaunt = SAY_KELTHUZAD_FIRST_WING_TAUNT; playerDied = 0; } @@ -242,6 +243,15 @@ class instance_naxxramas : public InstanceMapScript playerDied = 1; SaveToDB(); } + + if (Creature* creature = unit->ToCreature()) + if (creature->GetEntry() == NPC_BIGGLESWORTH) + { + // Loads Kel'Thuzad's grid. We need this as he must be active in order for his texts to work. + instance->LoadGrid(3749.67f, -5114.06f); + if (Creature* kelthuzad = instance->GetCreature(KelthuzadGUID)) + kelthuzad->AI()->Talk(SAY_KELTHUZAD_CAT_DIED); + } } void SetData(uint32 id, uint32 value) override @@ -339,17 +349,26 @@ class instance_naxxramas : public InstanceMapScript switch (id) { + case BOSS_MAEXXNA: + case BOSS_LOATHEB: + case BOSS_THADDIUS: + if (state == DONE) + events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000); + break; case BOSS_GOTHIK: if (state == DONE) events.ScheduleEvent(EVENT_DIALOGUE_GOTHIK_KORTHAZZ, 10000); break; case BOSS_HORSEMEN: if (state == DONE) + { if (GameObject* horsemenChest = instance->GetGameObject(HorsemenChestGUID)) { horsemenChest->SetRespawnTime(horsemenChest->GetRespawnDelay()); horsemenChest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE); } + events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000); + } break; default: break; @@ -405,6 +424,13 @@ class instance_naxxramas : public InstanceMapScript if (Creature* rivendare = instance->GetCreature(BaronGUID)) rivendare->AI()->Talk(SAY_DIALOGUE_GOTHIK_HORSEMAN2); break; + case EVENT_KELTHUZAD_WING_TAUNT: + // Loads Kel'Thuzad's grid. We need this as he must be active in order for his texts to work. + instance->LoadGrid(3749.67f, -5114.06f); + if (Creature* kelthuzad = instance->GetCreature(KelthuzadGUID)) + kelthuzad->AI()->Talk(CurrentWingTaunt); + ++CurrentWingTaunt; + break; default: break; } @@ -513,6 +539,7 @@ class instance_naxxramas : public InstanceMapScript ObjectGuid KelthuzadTriggerGUID; ObjectGuid PortalsGUID[4]; uint8 AbominationCount; + uint8 CurrentWingTaunt; /* The Immortal / The Undying */ uint32 playerDied; diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h index ac339a60fda..a1c8a1c79d4 100644 --- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h +++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h @@ -89,7 +89,8 @@ enum CreaturesIds NPC_CRYPT_GUARD = 16573, NPC_NAXXRAMAS_FOLLOWER = 16505, NPC_FOLLOWER_WORSHIPPER = 16506, - NPC_DK_UNDERSTUDY = 16803 + NPC_DK_UNDERSTUDY = 16803, + NPC_BIGGLESWORTH = 16998 }; enum GameObjectsIds @@ -152,13 +153,21 @@ enum InstanceEvents EVENT_DIALOGUE_GOTHIK_BLAUMEUX2, EVENT_DIALOGUE_GOTHIK_ZELIEK2, EVENT_DIALOGUE_GOTHIK_KORTHAZZ2, - EVENT_DIALOGUE_GOTHIK_RIVENDARE2 + EVENT_DIALOGUE_GOTHIK_RIVENDARE2, + + // Dialogue that happens after each wing. + EVENT_KELTHUZAD_WING_TAUNT }; enum InstanceTexts { - SAY_DIALOGUE_GOTHIK_HORSEMAN = 5, - SAY_DIALOGUE_GOTHIK_HORSEMAN2 = 6 + // The Four Horsemen + SAY_DIALOGUE_GOTHIK_HORSEMAN = 5, + SAY_DIALOGUE_GOTHIK_HORSEMAN2 = 6, + + // Kel'Thuzad + SAY_KELTHUZAD_CAT_DIED = 5, + SAY_KELTHUZAD_FIRST_WING_TAUNT = 16 }; /* |