diff --git a/data/sql/updates/pending_db_world/rev_1731527942376561860.sql b/data/sql/updates/pending_db_world/rev_1731527942376561860.sql new file mode 100644 index 0000000000..87e5f8000f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1731527942376561860.sql @@ -0,0 +1,13 @@ +-- +SET @ZELIEK = 16063; +UPDATE `creature_text` SET `Comment` = 'zeliek SAY_ZELI_DIALOG1' WHERE (`CreatureID` = @ZELIEK) AND (`GroupID` = 5); +UPDATE `creature_text` SET `Comment` = 'zeliek SAY_ZELI_DIALOG2' WHERE (`CreatureID` = @ZELIEK) AND (`GroupID` = 6); +SET @KORTHAZZ = 16064; +UPDATE `creature_text` SET `Comment` = 'korthazz SAY_KORT_DIALOG1' WHERE (`CreatureID` = @KORTHAZZ) AND (`GroupID` = 5); +UPDATE `creature_text` SET `Comment` = 'korthazz SAY_KORT_DIALOG2' WHERE (`CreatureID` = @KORTHAZZ) AND (`GroupID` = 6); +SET @BLAUMEUX = 16065; +UPDATE `creature_text` SET `Comment` = 'blaumeux SAY_BLAU_DIALOG1' WHERE (`CreatureID` = @BLAUMEUX) AND (`GroupID` = 5); +UPDATE `creature_text` SET `Comment` = 'blaumeux SAY_BLAU_DIALOG2' WHERE (`CreatureID` = @BLAUMEUX) AND (`GroupID` = 6); +SET @RIVENDARE = 30549; +UPDATE `creature_text` SET `Comment` = 'rivendare SAY_RIVE_DIALOG1' WHERE (`CreatureID` = @RIVENDARE) AND (`GroupID` = 5); +UPDATE `creature_text` SET `Comment` = 'rivendare SAY_RIVE_DIALOG2' WHERE (`CreatureID` = @RIVENDARE) AND (`GroupID` = 6); diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index 550a84743f..a72a33e298 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -101,7 +101,7 @@ public: _screamTimer = 2 * MINUTE * IN_MILLISECONDS; _hadThaddiusGreet = false; _currentWingTaunt = SAY_FIRST_WING_TAUNT; - _horsemanLoaded = 0; + _currentHorsemenLine = 0; // Achievements abominationsKilled = 0; @@ -174,6 +174,7 @@ public: bool _hadThaddiusGreet; EventMap events; uint8 _currentWingTaunt; + uint8 _currentHorsemenLine; uint8 _horsemanLoaded; // Achievements @@ -943,6 +944,7 @@ public: { go->SetGoState(GO_STATE_ACTIVE); } + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 10s); break; case BOSS_SAPPHIRON: events.ScheduleEvent(EVENT_FROSTWYRM_WATERFALL_DOOR, 5s); @@ -1071,6 +1073,52 @@ public: go->SetGoState(GO_STATE_ACTIVE); } break; + case EVENT_HORSEMEN_INTRO: + switch (_currentHorsemenLine) + { + case 0: // To arms, ye roustabouts! We've got company! + if (Creature* korthazz = instance->GetCreature(_korthazzGUID)) + korthazz->AI()->Talk(SAY_HORSEMEN_DIALOG1); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 4500ms); + break; + case 1: // Invaders, cease this foolish venture at once! Turn away while you still can! + if (Creature* zeliek = instance->GetCreature(_zeliekGUID)) + zeliek->AI()->Talk(SAY_HORSEMEN_DIALOG1); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 6500ms); + break; + case 2: // Come, Zeliek, do not drive them out. Not before we've had our fun! + if (Creature* blaumeux = instance->GetCreature(_blaumeuxGUID)) + blaumeux->AI()->Talk(SAY_HORSEMEN_DIALOG1); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 6500ms); + break; + case 3: // Enough prattling. Let them come. We shall grind their bones to dust. + if (Creature* rivendare = instance->GetCreature(_rivendareGUID)) + rivendare->AI()->Talk(SAY_HORSEMEN_DIALOG1); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 6500ms); + break; + case 4: // I do hope they stay alive long enough for me to... introduce myself. + if (Creature* blaumeux = instance->GetCreature(_blaumeuxGUID)) + blaumeux->AI()->Talk(SAY_HORSEMEN_DIALOG2); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 6500ms); + break; + case 5: // Perhaps they will come to their senses... and run away as fast as they can. + if (Creature* zeliek = instance->GetCreature(_zeliekGUID)) + zeliek->AI()->Talk(SAY_HORSEMEN_DIALOG2); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 6500ms); + break; + case 6: // I've heard about enough a' yer snivelin'! Shut yer flytrap before I shut it for ye'! + if (Creature* korthazz = instance->GetCreature(_korthazzGUID)) + korthazz->AI()->Talk(SAY_HORSEMEN_DIALOG2); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 6500ms); + break; + case 7: // Conserve your anger. Harness your rage. You will all have outlets for your frustrations soon enough. + if (Creature* rivendare = instance->GetCreature(_rivendareGUID)) + rivendare->AI()->Talk(SAY_HORSEMEN_DIALOG2); + events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 6500ms); + break; + } + ++_currentHorsemenLine; + break; } } diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h index 1b90d2b1dc..981230f15d 100644 --- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h +++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h @@ -190,14 +190,17 @@ enum NXSays SAY_SAPP_DIALOG5 = 4, SAY_SAPP_DIALOG6 = 20, SAY_CAT_DIED = 5, - SAY_FIRST_WING_TAUNT = 16 + SAY_FIRST_WING_TAUNT = 16, + SAY_HORSEMEN_DIALOG1 = 5, + SAY_HORSEMEN_DIALOG2 = 6 }; enum NXEvents { EVENT_THADDIUS_SCREAMS = 0, EVENT_KELTHUZAD_WING_TAUNT = 1, - EVENT_FROSTWYRM_WATERFALL_DOOR = 2 + EVENT_FROSTWYRM_WATERFALL_DOOR = 2, + EVENT_HORSEMEN_INTRO = 3 }; template