mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 15:58:04 +00:00
fix(Scripts/Naxxramas): Add post-Gothik Four Horsemen introduction (#20550)
This commit is contained in:
@@ -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);
|
||||||
@@ -101,7 +101,7 @@ public:
|
|||||||
_screamTimer = 2 * MINUTE * IN_MILLISECONDS;
|
_screamTimer = 2 * MINUTE * IN_MILLISECONDS;
|
||||||
_hadThaddiusGreet = false;
|
_hadThaddiusGreet = false;
|
||||||
_currentWingTaunt = SAY_FIRST_WING_TAUNT;
|
_currentWingTaunt = SAY_FIRST_WING_TAUNT;
|
||||||
_horsemanLoaded = 0;
|
_currentHorsemenLine = 0;
|
||||||
|
|
||||||
// Achievements
|
// Achievements
|
||||||
abominationsKilled = 0;
|
abominationsKilled = 0;
|
||||||
@@ -174,6 +174,7 @@ public:
|
|||||||
bool _hadThaddiusGreet;
|
bool _hadThaddiusGreet;
|
||||||
EventMap events;
|
EventMap events;
|
||||||
uint8 _currentWingTaunt;
|
uint8 _currentWingTaunt;
|
||||||
|
uint8 _currentHorsemenLine;
|
||||||
uint8 _horsemanLoaded;
|
uint8 _horsemanLoaded;
|
||||||
|
|
||||||
// Achievements
|
// Achievements
|
||||||
@@ -943,6 +944,7 @@ public:
|
|||||||
{
|
{
|
||||||
go->SetGoState(GO_STATE_ACTIVE);
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
}
|
}
|
||||||
|
events.ScheduleEvent(EVENT_HORSEMEN_INTRO, 10s);
|
||||||
break;
|
break;
|
||||||
case BOSS_SAPPHIRON:
|
case BOSS_SAPPHIRON:
|
||||||
events.ScheduleEvent(EVENT_FROSTWYRM_WATERFALL_DOOR, 5s);
|
events.ScheduleEvent(EVENT_FROSTWYRM_WATERFALL_DOOR, 5s);
|
||||||
@@ -1071,6 +1073,52 @@ public:
|
|||||||
go->SetGoState(GO_STATE_ACTIVE);
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
}
|
}
|
||||||
break;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -190,14 +190,17 @@ enum NXSays
|
|||||||
SAY_SAPP_DIALOG5 = 4,
|
SAY_SAPP_DIALOG5 = 4,
|
||||||
SAY_SAPP_DIALOG6 = 20,
|
SAY_SAPP_DIALOG6 = 20,
|
||||||
SAY_CAT_DIED = 5,
|
SAY_CAT_DIED = 5,
|
||||||
SAY_FIRST_WING_TAUNT = 16
|
SAY_FIRST_WING_TAUNT = 16,
|
||||||
|
SAY_HORSEMEN_DIALOG1 = 5,
|
||||||
|
SAY_HORSEMEN_DIALOG2 = 6
|
||||||
};
|
};
|
||||||
|
|
||||||
enum NXEvents
|
enum NXEvents
|
||||||
{
|
{
|
||||||
EVENT_THADDIUS_SCREAMS = 0,
|
EVENT_THADDIUS_SCREAMS = 0,
|
||||||
EVENT_KELTHUZAD_WING_TAUNT = 1,
|
EVENT_KELTHUZAD_WING_TAUNT = 1,
|
||||||
EVENT_FROSTWYRM_WATERFALL_DOOR = 2
|
EVENT_FROSTWYRM_WATERFALL_DOOR = 2,
|
||||||
|
EVENT_HORSEMEN_INTRO = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class AI, class T>
|
template <class AI, class T>
|
||||||
|
|||||||
Reference in New Issue
Block a user