From 6e61f38454b50bce96b7696739667fac43462e4c Mon Sep 17 00:00:00 2001 From: avarishd <46330494+avarishd@users.noreply.github.com> Date: Sat, 4 Mar 2023 22:42:45 +0200 Subject: [PATCH] fix(Script/PitOfSaron): Pit of Saron - Remove hardcode and duplicated texts in DB (#15160) --- .../rev_1677008695688965000.sql | 135 ++++++++++++++++++ .../PitOfSaron/boss_forgemaster_garfrost.cpp | 28 ++-- .../PitOfSaron/boss_krickandick.cpp | 41 +++--- .../PitOfSaron/boss_scourgelord_tyrannus.cpp | 23 ++- .../FrozenHalls/PitOfSaron/pit_of_saron.cpp | 8 +- .../FrozenHalls/PitOfSaron/pit_of_saron.h | 38 ++--- 6 files changed, 200 insertions(+), 73 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1677008695688965000.sql diff --git a/data/sql/updates/pending_db_world/rev_1677008695688965000.sql b/data/sql/updates/pending_db_world/rev_1677008695688965000.sql new file mode 100644 index 000000000..cde29743a --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1677008695688965000.sql @@ -0,0 +1,135 @@ +-- Pit of Saron - Fix order, add missing creature_text and remove duplicates from original sniffs. +-- Forgemaster Garfrost +DELETE FROM `creature_text` WHERE `CreatureID`=36494; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(36494, 0, 0, 'Tiny creatures under feet, you bring Garfrost something good to eat!', 14, 0, 100, 0, 0, 16912, 37218, 0, 'Forgemaster Garfrost SAY_AGGRO'), +(36494, 1, 0, 'Axe too weak. Garfrost make better and CRUSH YOU.', 14, 0, 100, 0, 0, 16916, 36445, 0, 'Forgemaster Garfrost SAY_HP_66'), +(36494, 2, 0, 'Garfrost tired of puny mortals. Now your bones will freeze!', 14, 0, 100, 0, 0, 16917, 36444, 0, 'Forgemaster Garfrost SAY_HP_33'), +(36494, 3, 0, 'Garfrost hope giant underpants clean. Save boss great shame. For later.', 14, 0, 100, 0, 0, 16915, 37221, 0, 'Forgemaster Garfrost SAY_DEATH'), +(36494, 4, 0, 'Will save for snack. For later.', 14, 0, 100, 0, 0, 16913, 37219, 0, 'Forgemaster Garfrost SAY_SLAY'), +(36494, 5, 0, 'That one maybe not so good to eat now. Stupid Garfrost! BAD! BAD!', 14, 0, 100, 0, 0, 16914, 37220, 0, 'Forgemaster Garfrost SAY_BOULDER_HIT'), +(36494, 6, 0, '%s hurls a massive saronite boulder at you!', 42, 0, 100, 0, 0, 0, 37438, 0, 'Forgemaster Garfrost WHISPER_BOULDER'), +(36494, 7, 0, '%s casts |cFF00AACCDeep Freeze|r at $n.', 41, 0, 100, 0, 0, 0, 37260, 0, 'Forgemaster Garfrost EMOTE_DEEP_FREEZE'); + +DELETE FROM `creature_text_locale` WHERE `CreatureID`=36494 AND `Locale`='zhCN'; +INSERT INTO `creature_text_locale` (`CreatureID`, `GroupID`, `ID`, `Locale`, `Text`) VALUES +(36494, 0, 0, 'zhCN', '看这些小东西,你给加弗斯特带来了好吃的!'), +(36494, 1, 0, 'zhCN', '斧子太弱了。看我弄好他,然后……然后砸扁你。'), +(36494, 2, 0, 'zhCN', '加弗斯特厌倦了这些凡人。刺骨的寒风刮起来!'), +(36494, 3, 0, 'zhCN', '加弗斯特不想弄的太狼狈。不想给头领丢脸。晚了。'), +(36494, 4, 0, 'zhCN', '可以留下来当个小点心。'), +(36494, 5, 0, 'zhCN', '这个好像不……不太好吃。加弗斯特真笨!真笨!'), +(36494, 6, 0, 'zhCN', '%s向你用力投出一大块萨隆邪铁巨石!'), +(36494, 7, 0, 'zhCN', '%s向$n施放|cFF00AACC深度冻结|r。'); + +-- Ick +DELETE FROM `creature_text` WHERE `CreatureID`=36476; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(36476, 0, 0, '%s begins to unleash a toxic poison cloud!', 41, 0, 100, 0, 0, 0, 36531, 0, 'Ick EMOTE_ICK_POISON_NOVA'), +(36476, 1, 0, '%s is chasing you. Run!', 41, 0, 100, 0, 0, 0, 36529, 0, 'Ick EMOTE_ICK_CHASE'); + +DELETE FROM `creature_text_locale` WHERE `CreatureID`=36476 AND `Locale`='zhCN'; +INSERT INTO `creature_text_locale` (`CreatureID`, `GroupID`, `ID`, `Locale`, `Text`) VALUES +(36476, 0, 0, 'zhCN', '%s开始释放一块毒云!'), +(36476, 1, 0, 'zhCN', '%s正在追赶你。快跑!'); + +-- Krick +DELETE FROM `creature_text` WHERE `CreatureID`=36477; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(36477, 0, 0, 'Our work must not be interrupted! Ick, take care of them!', 14, 0, 100, 0, 0, 16926, 37222, 0, 'Krick SAY_AGGRO'), +(36477, 1, 0, 'We could probably use these parts.', 14, 0, 100, 0, 0, 16927, 37223, 0, 'Krick SAY_SLAY_1'), +(36477, 1, 1, 'Arms and legs are in short supply! Thanks for your contribution!', 14, 0, 100, 0, 0, 16928, 37224, 0, 'Krick SAY_SLAY_2'), +(36477, 2, 0, 'Enough moving around! Hold still while I blow them all up!', 14, 0, 100, 0, 0, 16929, 36538, 0, 'Krick SAY_BARRAGE_1'), +(36477, 3, 0, '%s begins rapidly conjuring explosive mines!', 41, 0, 100, 0, 0, 0, 36550, 0, 'Krick SAY_BARRAGE_2'), +(36477, 4, 0, 'Quickly! Poison them all while they\'re still close!', 14, 0, 100, 0, 0, 16930, 36537, 0, 'Krick SAY_POISON_NOVA'), +(36477, 5, 0, 'No, that one! That one! Get that one!', 14, 0, 100, 0, 0, 16931, 36536, 0, 'Krick SAY_CHASE_1'), +(36477, 5, 1, 'I\'ve changed my mind, go get that one instead!', 14, 0, 100, 0, 0, 16932, 37225, 0, 'Krick SAY_CHASE_2'), +(36477, 5, 2, 'What are you attacking him for? The dangerous one is over there!', 14, 0, 100, 0, 0, 16933, 37226, 0, 'Krick SAY_CHASE_3'), +(36477, 6, 0, 'Wait! Stop! Don\'t kill me, please! I\'ll tell you everything!', 14, 0, 100, 0, 0, 16934, 36841, 0, 'Krick SAY_KRICK_OUTRO_1'), +(36477, 7, 0, 'What you seek is in the master\'s lair, but you must destroy Tyrannus to gain entry. Now, within the Halls of Reflection you will find Frostmourne. It... It holds the truth.', 14, 0, 100, 0, 0, 16935, 36842, 0, 'Krick SAY_KRICK_OUTRO_3'), +(36477, 8, 0, 'I swear it is true! Please, don\'t kill me!!', 14, 0, 100, 0, 0, 16936, 36843, 0, 'Krick SAY_KRICK_OUTRO_5'), +(36477, 9, 0, 'Urg... no!!', 14, 0, 100, 0, 0, 16937, 36844, 0, 'Krick SAY_KRICK_OUTRO_8'); + +DELETE FROM `creature_text_locale` WHERE `CreatureID`=36477 AND `Locale`='zhCN'; +INSERT INTO `creature_text_locale` (`CreatureID`, `GroupID`, `ID`, `Locale`, `Text`) VALUES +(36477, 0, 0, 'zhCN', '我们的工作绝不能被干扰!伊克,招呼他们!'), +(36477, 1, 0, 'zhCN', '这些部件也许对我们有用。'), +(36477, 1, 1, 'zhCN', '我们正缺胳膊和腿呢!感谢你们的大力援助!'), +(36477, 2, 0, 'zhCN', '不要乱动!站稳了,等我把他们都炸飞!'), +(36477, 3, 0, 'zhCN', '%s开始不断召唤出炸雷!'), +(36477, 4, 0, 'zhCN', '快点,趁他们在一起的时候上毒!'), +(36477, 5, 0, 'zhCN', '不,是那个!那个!就是他!'), +(36477, 5, 1, 'zhCN', '我改主意了,现在我要的是这个!'), +(36477, 5, 2, 'zhCN', '你打这个家伙干什么?真正危险的人在那儿,傻子!'), +(36477, 6, 0, 'zhCN', '等等!停!别杀我!我把一切都告诉你!'), +(36477, 7, 0, 'zhCN', '你要找的就在主人的巢穴里,但要先干掉泰兰努斯才能进去。霜之哀伤就在映像大厅里……你们……你们能在它那里找到真相。'), +(36477, 8, 0, 'zhCN', '我发誓我没说谎!求你了!别杀我!'), +(36477, 9, 0, 'zhCN', '啊…不!!'); + +-- Scourgelord Tyrannus +DELETE FROM `creature_text` WHERE `CreatureID`=36658; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(36658, 0, 0, 'Alas, brave, brave adventurers, your meddling has reached its end. Do you hear the clatter of bone and steel coming up the tunnel behind you? That is the sound of your impending demise.', 14, 0, 100, 0, 0, 16758, 37233, 0, 'Tyrannus SAY_BOSS_TYRANNUS_INTRO_1'), +(36658, 1, 0, 'Ha, such an amusing gesture from the rabble. When I have finished with you, my master\'s blade will feast upon your souls. Die.', 14, 0, 100, 0, 0, 16759, 37234, 0, 'Tyrannus SAY_BOSS_TYRANNUS_INTRO_2'), +(36658, 2, 0, 'I shall not fail the Lich King. Come and meet your end!', 14, 0, 100, 0, 0, 16760, 38718, 0, 'Tyrannus SAY_AGGRO'), +(36658, 3, 0, 'Such a shameful display. You are better off dead.', 14, 0, 100, 0, 0, 16761, 38715, 0, 'Tyrannus SAY_SLAY_1'), +(36658, 3, 1, 'Perhaps you should have stayed... in the mountains!', 14, 0, 100, 0, 0, 16762, 38716, 0, 'Tyrannus SAY_SLAY_2'), +(36658, 4, 0, 'Impossible.... Rimefang.... warn....', 14, 0, 100, 0, 0, 16763, 38714, 0, 'Tyrannus SAY_DEATH'), +(36658, 5, 0, 'Rimefang, destroy this fool!', 14, 0, 100, 0, 0, 16764, 36648, 0, 'Tyrannus SAY_MARK_RIMEFANG'), +(36658, 6, 0, 'The frostwyrm Rimefang gazes at $n and readies an icy attack!', 41, 0, 100, 0, 0, 0, 36649, 0, 'Tyrannus EMOTE_MARK_RIMEFANG'), +(36658, 7, 0, 'Power... overwhelming!', 14, 0, 100, 0, 0, 16765, 38717, 0, 'Tyrannus SAY_DARK_MIGHT'), +(36658, 8, 0, '%s roars and swells with dark might!', 41, 0, 100, 0, 0, 0, 36628, 0, 'Tyrannus EMOTE_DARK_MIGHT'); + +DELETE FROM `creature_text_locale` WHERE `CreatureID`=36658 AND `Locale`='zhCN'; +INSERT INTO `creature_text_locale` (`CreatureID`, `GroupID`, `ID`, `Locale`, `Text`) VALUES +(36658, 0, 0, 'zhCN', '唉,勇敢的冒险者,你们的路已经到头了。难道你们没有听到身后隧道里钢铁撞击的声音吗?那就是末日降临的乐章。'), +(36658, 1, 0, 'zhCN', '哈,一群不自量力的乌合之众。等我杀了你们之后,主人的剑就能尽情享用你们的灵魂了。去死吧。'), +(36658, 2, 0, 'zhCN', '我不会让巫妖王失望的。准备受死吧!'), +(36658, 3, 0, 'zhCN', '低劣的顽抗,死亡是对你的优待。'), +(36658, 3, 1, 'zhCN', '也许你早应该留在……群山里!'), +(36658, 4, 0, 'zhCN', '不可能……霜牙……警报……'), +(36658, 5, 0, 'zhCN', '霜牙,干掉那个蠢货!'), +(36658, 6, 0, 'zhCN', '冰霜巨龙霜牙凝视着$n,准备发动一次冰霜袭击!'), +(36658, 7, 0, 'zhCN', '力量……无上的力量!'), +(36658, 8, 0, 'zhCN', '%s发出怒吼,在黑暗力量的作用下开始膨胀!'); + +-- Rimefang - Delete "The frostwyrm Rimefang gazes at $n and readies an icy attack!", already being used by Scourgelord Tyrannus (6) +DELETE FROM `creature_text` WHERE `CreatureID`=36661; +DELETE FROM `creature_text_locale` WHERE `CreatureID`=36661 AND `Locale`='zhCN'; + +-- Scourgelord Tyrannus Voice +DELETE FROM `creature_text` WHERE `CreatureID`=36795; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(36795, 0, 0, 'Another shall take his place. You waste your time.', 14, 0, 100, 0, 0, 16752, 36765, 0, 'tyrannus SAY_TYRANNUS_GARFROST'), +(36795, 1, 0, 'Rimefang! Trap them within the tunnel! Bury them alive!', 14, 0, 100, 0, 0, 16757, 36714, 0, 'tyrannus SAY_TYRANNUS_TRAP_TUNNEL'); + +DELETE FROM `creature_text_locale` WHERE `CreatureID`=36795 AND `Locale`='zhCN'; +INSERT INTO `creature_text_locale` (`CreatureID`, `GroupID`, `ID`, `Locale`, `Text`) VALUES +(36795, 0, 0, 'zhCN', '别人会取代他。你是在浪费时间。'), +(36795, 1, 0, 'zhCN', '霜牙,把他们困在隧道里!统统给我埋了!'); + +-- Scourgelord Tyrannus Event +DELETE FROM `creature_text` WHERE `CreatureID`=36794; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(36794, 0, 0, 'Worthless gnat! Death is all that awaits you!', 14, 0, 100, 0, 0, 16753, 36852, 0, 'tyrannus SAY_TYRANNUS_KRICK_1'), +(36794, 1, 0, 'Do not think that I shall permit you entry into my master\'s sanctum so easily. Pursue me if you dare.', 14, 0, 100, 0, 0, 16754, 36853, 0, 'tyrannus SAY_TYRANNUS_KRICK_2'), +(36794, 2, 0, 'Your pursuit shall be in vain, intruders, for the Lich King has placed an army of undead at my command! Behold!', 14, 0, 100, 0, 0, 16755, 36708, 0, 'tyrannus SAY_TYRANNUS_AMBUSH_1'), +(36794, 3, 0, 'Persistent whelps! You will not reach the entrance of my lord\'s lair! Soldiers, destroy them!', 14, 0, 100, 0, 0, 16756, 36709, 0, 'tyrannus SAY_TYRANNUS_AMBUSH_2'), +(36794, 4, 0, 'Intruders have entered the master\'s domain. Signal the alarms!', 14, 0, 100, 0, 0, 16747, 37093, 0, 'tyrannus SAY_TYRANNUS_INTRO_1'), +(36794, 5, 0, 'Hrmph, fodder. Not even fit to labor in the quarry. Relish these final moments for soon you will be nothing more than mindless undead.', 14, 0, 100, 0, 0, 16748, 37094, 0, 'tyrannus SAY_TYRANNUS_INTRO_2'), +(36794, 6, 0, 'Your last waking memory will be of agonizing pain.', 14, 0, 100, 0, 0, 16749, 37095, 0, 'tyrannus SAY_TYRANNUS_INTRO_3'), +(36794, 7, 0, 'Minions, destroy these interlopers!', 14, 0, 100, 0, 0, 16751, 37096, 0, 'tyrannus SAY_TYRANNUS_INTRO_4'); + +DELETE FROM `creature_text_locale` WHERE `CreatureID`=36794 AND `Locale`='zhCN'; +INSERT INTO `creature_text_locale` (`CreatureID`, `GroupID`, `ID`, `Locale`, `Text`) VALUES +(36794, 0, 0, 'zhCN', '没用的虫子!死亡正等待着你!'), +(36794, 1, 0, 'zhCN', '不要以为我会那么容易让你进入主人的密室。有本事放马过来吧。'), +(36794, 2, 0, 'zhCN', '你们的努力是徒劳的,入侵者。巫妖王让我统率的可是一支亡灵大军!小心了!'), +(36794, 3, 0, 'zhCN', '固执的家伙!你们根本到不了主人的密室!士兵们,消灭他们!'), +(36794, 4, 0, 'zhCN', '入侵者进入了主人的领地。拉响警报!'), +(36794, 5, 0, 'zhCN', '哼,废物,就连在矿坑里作苦力都不配。享受最后的时刻吧。很快你们就会变成行尸走肉了。'), +(36794, 6, 0, 'zhCN', '你们最后的记忆将填满痛苦。'), +(36794, 7, 0, 'zhCN', '奴仆们,消灭那些闯入者!'); + +-- Sindragosa (NullCreature) - fix air walking +UPDATE `creature_template_movement` SET `Flight` = 2 WHERE `CreatureId` = 37755; diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 1be51bb47..223f5b7f4 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -27,18 +27,16 @@ enum Yells { - SAY_AGGRO = 14, - SAY_SLAY_1 = 15, - SAY_DEATH = 17, - SAY_FORGE_1 = 18, - SAY_FORGE_2 = 19, - - SAY_BOULDER_HIT = 16, - EMOTE_DEEP_FREEZE = 23, + SAY_AGGRO = 0, + SAY_HP_66 = 1, + SAY_HP_33 = 2, + SAY_DEATH = 3, + SAY_SLAY = 4, + SAY_BOULDER_HIT = 5, + WHISPER_BOULDER = 6, + EMOTE_DEEP_FREEZE = 7, }; -#define EMOTE_THROW_SARONITE "%s hurls a massive saronite boulder at you!" - enum MiscData { EQUIP_ID_SWORD = 49345, @@ -158,14 +156,14 @@ public: { me->SetControlled(true, UNIT_STATE_ROOT); me->CastSpell(me, SPELL_FORGE_BLADE, false); - Talk(SAY_FORGE_1); + Talk(SAY_HP_66); } else if (phase == 2) { me->SetControlled(true, UNIT_STATE_ROOT); me->RemoveAurasDueToSpell(SPELL_FORGE_BLADE); me->CastSpell(me, SPELL_FORGE_MACE, false); - Talk(SAY_FORGE_2); + Talk(SAY_HP_33); } } @@ -244,9 +242,7 @@ public: bCanSayBoulderHit = true; if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 140.0f, true)) { - WorldPacket data; - ChatHandler::BuildChatPacket(data, CHAT_MSG_RAID_BOSS_EMOTE, LANG_UNIVERSAL, me, nullptr, EMOTE_THROW_SARONITE); - target->ToPlayer()->GetSession()->SendPacket(&data); + Talk(WHISPER_BOULDER, target); me->CastSpell(target, SPELL_THROW_SARONITE, false); } events.RepeatEvent(urand(12500, 20000)); @@ -286,7 +282,7 @@ public: void KilledUnit(Unit* who) override { if (who->GetTypeId() == TYPEID_PLAYER) - Talk(SAY_SLAY_1); + Talk(SAY_SLAY); } void EnterEvadeMode(EvadeReason why) override diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index d2a9dd9bc..75be8654d 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -28,19 +28,18 @@ enum Yells { - SAY_AGGRO = 24, - SAY_SLAY_1 = 25, - SAY_SLAY_2 = 26, - SAY_ORDER_STOP = 27, - SAY_ORDER_BLOW = 28, - SAY_TARGET_1 = 29, - SAY_TARGET_2 = 30, - SAY_TARGET_3 = 31, - EMOTE_KRICK_MINES = 32, - EMOTE_ICK_POISON = 33, -}; + // Ick + EMOTE_ICK_POISON_NOVA = 0, + EMOTE_ICK_CHASE = 1, -#define EMOTE_ICK_CHASING "%s is chasing you!" + // Krick + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_BARRAGE_1 = 2, + SAY_BARRAGE_2 = 3, + SAY_POISON_NOVA = 4, + SAY_CHASE = 5, +}; enum Spells { @@ -119,11 +118,7 @@ public: return; if (spell->Id == SPELL_PURSUIT && target->GetTypeId() == TYPEID_PLAYER) { - WorldPacket data; - - ChatHandler::BuildChatPacket(data, CHAT_MSG_RAID_BOSS_EMOTE, LANG_UNIVERSAL, me, nullptr, EMOTE_ICK_CHASING); - target->ToPlayer()->GetSession()->SendPacket(&data); - + Talk(EMOTE_ICK_CHASE, target); AttackStart(target); me->SetReactState(REACT_PASSIVE); events.RescheduleEvent(EVENT_SET_REACT_AGGRESSIVE, 12000); @@ -222,23 +217,23 @@ public: { case 0: // Pursuit if (Creature* k = GetKrick()) - k->AI()->Talk(RAND(SAY_TARGET_1, SAY_TARGET_2, SAY_TARGET_3)); + k->AI()->Talk(SAY_CHASE); if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 70.0f, true)) me->CastSpell(target, SPELL_PURSUIT, false); break; case 1: // Poison Nova if (Creature* k = GetKrick()) { - k->AI()->Talk(SAY_ORDER_BLOW); - Talk(EMOTE_ICK_POISON); + k->AI()->Talk(SAY_POISON_NOVA); + Talk(EMOTE_ICK_POISON_NOVA); } me->CastSpell(me, SPELL_POISON_NOVA, false); break; case 2: // Explosive Barrage if (Creature* k = GetKrick()) { - k->AI()->Talk(SAY_ORDER_STOP); - k->AI()->Talk(EMOTE_KRICK_MINES); + k->AI()->Talk(SAY_BARRAGE_1); + k->AI()->Talk(SAY_BARRAGE_2); k->InterruptNonMeleeSpells(false); me->InterruptNonMeleeSpells(false); k->CastSpell(k, SPELL_EXPLOSIVE_BARRAGE_KRICK, false); @@ -270,7 +265,7 @@ public: if (who->GetTypeId() == TYPEID_PLAYER) if (Creature* k = GetKrick()) - k->AI()->Talk(RAND(SAY_SLAY_1, SAY_SLAY_2)); + k->AI()->Talk(SAY_SLAY); } void JustSummoned(Creature* /*summon*/) override diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index a761929cf..908a75263 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -22,14 +22,13 @@ enum Texts { - SAY_AGGRO = 53, - SAY_SLAY_1 = 54, - SAY_SLAY_2 = 55, - SAY_DEATH = 56, - SAY_MARK = 57, - SAY_SMASH = 58, - EMOTE_RIMEFANG_ICEBOLT = 59, - EMOTE_SMASH = 60, + SAY_AGGRO = 2, + SAY_SLAY = 3, + SAY_DEATH = 4, + SAY_MARK = 5, + EMOTE_MARK = 6, + SAY_DARK_MIGHT = 7, + EMOTE_DARK_MIGHT = 8, }; enum Spells @@ -166,8 +165,8 @@ public: events.RepeatEvent(3000); break; case EVENT_SPELL_UNHOLY_POWER: - Talk(SAY_SMASH); - Talk(EMOTE_SMASH); + Talk(SAY_DARK_MIGHT); + Talk(EMOTE_DARK_MIGHT); me->CastSpell(me, SPELL_UNHOLY_POWER, false); events.ScheduleEvent(EVENT_SPELL_FORCEFUL_SMASH, urand(40000, 48000)); @@ -188,7 +187,7 @@ public: if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_RIMEFANG_GUID))) { Talk(SAY_MARK); - c->AI()->Talk(EMOTE_RIMEFANG_ICEBOLT, target); + Talk(EMOTE_MARK, target); c->CastSpell(target, RIMEFANG_SPELL_HOARFROST, false); } events.RepeatEvent(25000); @@ -211,7 +210,7 @@ public: void KilledUnit(Unit* who) override { if (who->GetTypeId() == TYPEID_PLAYER) - Talk(RAND(SAY_SLAY_1, SAY_SLAY_2)); + Talk(SAY_SLAY); } bool CanAIAttack(Unit const* who) const override diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp index 1e2777ac7..cc6828eac 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.cpp @@ -175,7 +175,7 @@ public: events.RescheduleEvent(7, 5000); break; - case 7: + case 7: /// @todo: (Initial RP, when zoning in the instance) is not complete. if (pInstance) { if (Creature* n1 = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_NECROLYTE_1_GUID))) @@ -929,7 +929,7 @@ public: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID))) { - c->AI()->Talk(SAY_PREFIGHT_1); + c->AI()->Talk(SAY_BOSS_TYRANNUS_INTRO_1); c->SetImmuneToPC(false); c->SetReactState(REACT_AGGRESSIVE); //c->ClearUnitState(UNIT_STATE_ONVEHICLE); @@ -1034,7 +1034,7 @@ public: case 3: if (pInstance) if (Creature* c = pInstance->instance->GetCreature(pInstance->GetGuidData(DATA_TYRANNUS_GUID))) - c->AI()->Talk(SAY_PREFIGHT_2); + c->AI()->Talk(SAY_BOSS_TYRANNUS_INTRO_2); me->SetFacingTo(5.26f); me->SetOrientation(5.26f); @@ -1203,7 +1203,9 @@ public: break; case 1: if (me->GetEntry() == NPC_JAINA_PART2) + { Talk(SAY_JAINA_OUTRO_3); + } break; case 6: me->SetNpcFlag(UNIT_NPC_FLAG_QUESTGIVER); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h index 64f752a24..312238c28 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/pit_of_saron.h @@ -145,16 +145,17 @@ enum eSpells *** INTRO: ************/ -enum eIntroTexts +// Tyrannus speaker - NPC_TYRANNUS_EVENT +enum eIntroTexts // Before Cave { - SAY_TYRANNUS_INTRO_1 = 1, + SAY_TYRANNUS_INTRO_1 = 4, SAY_JAINA_INTRO_1 = 2, SAY_SYLVANAS_INTRO_1 = 3, - SAY_TYRANNUS_INTRO_2 = 4, - SAY_TYRANNUS_INTRO_3 = 5, + SAY_TYRANNUS_INTRO_2 = 5, + SAY_TYRANNUS_INTRO_3 = 6, SAY_JAINA_INTRO_2 = 6, SAY_SYLVANAS_INTRO_2 = 7, - SAY_TYRANNUS_INTRO_4 = 8, + SAY_TYRANNUS_INTRO_4 = 7, SAY_JAINA_INTRO_3 = 9, SAY_JAINA_INTRO_4 = 10, SAY_SYLVANAS_INTRO_3 = 11, @@ -206,7 +207,7 @@ const ChampionPosition introPositions[] = enum eFBSTexts { SAY_GENERAL_GARFROST = 21, - SAY_TYRANNUS_GARFROST = 20, + SAY_TYRANNUS_GARFROST = 0, }; const Position FBSSpawnPos = {695.685f, -118.825f, 513.877f, 3 * M_PI / 2}; @@ -240,18 +241,18 @@ const Position SBSTyrannusStartPos = {781.127f, 265.825f, 552.31f, 0.0f}; const Position SBSLeaderStartPos = {772.716f, 111.517f, 510.81f, 0.0f}; const Position SBSLeaderEndPos = {823.2f, -4.4497f, 509.49f, 0.86f}; -enum eSBSTexts +enum eSBSTexts // Ick outro { - SAY_OUTRO_KRICK_1 = 35, + SAY_OUTRO_KRICK_1 = 6, SAY_JAINA_KRICK_1 = 36, SAY_SYLVANAS_KRICK_1 = 37, - SAY_OUTRO_KRICK_2 = 38, + SAY_OUTRO_KRICK_2 = 7, SAY_JAINA_KRICK_2 = 39, SAY_SYLVANAS_KRICK_2 = 40, - SAY_OUTRO_KRICK_3 = 41, - SAY_TYRANNUS_KRICK_1 = 42, - SAY_OUTRO_KRICK_4 = 43, - SAY_TYRANNUS_KRICK_2 = 44, + SAY_OUTRO_KRICK_3 = 8, + SAY_TYRANNUS_KRICK_1 = 0, + SAY_OUTRO_KRICK_4 = 9, + SAY_TYRANNUS_KRICK_2 = 1, SAY_JAINA_KRICK_3 = 45, SAY_SYLVANAS_KRICK_3 = 46, }; @@ -266,9 +267,9 @@ const Position PTSTyrannusWaitPos3 = {1117.93f, -125.16f, 760.34f, 0.10f}; enum ePTSTexts { - SAY_TYRANNUS_AMBUSH_1 = 47, - SAY_TYRANNUS_AMBUSH_2 = 48, - SAY_TYRANNUS_TRAP_TUNNEL = 49, + SAY_TYRANNUS_AMBUSH_1 = 2, // NPC_TYRANNUS_EVENT + SAY_TYRANNUS_AMBUSH_2 = 3, // NPC_TYRANNUS_EVENT + SAY_TYRANNUS_TRAP_TUNNEL = 1, // NPC_TYRANNUS_VOICE }; /************ @@ -313,10 +314,9 @@ const TSPosition TSData[] = enum eTSTexts { - SAY_PREFIGHT_1 = 50, + SAY_BOSS_TYRANNUS_INTRO_1 = 0, SAY_GENERAL_HORDE_TRASH = 51, - SAY_PREFIGHT_2 = 52, - SAY_PREFIGHT_AGGRO = 53, + SAY_BOSS_TYRANNUS_INTRO_2 = 1, SAY_GENERAL_HORDE_OUTRO_1 = 61, SAY_GENERAL_OUTRO_2 = 62,