diff --git a/data/sql/updates/pending_db_world/rev_1676128806964865300.sql b/data/sql/updates/pending_db_world/rev_1676128806964865300.sql new file mode 100644 index 000000000..6b617df69 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1676128806964865300.sql @@ -0,0 +1,19 @@ +-- +-- Karazhan Image of Medivh (17651) and Image of Arcanagos (17652) missing creature text +DELETE FROM `creature_text` WHERE `CreatureID` IN (17651,17652); +INSERT INTO `creature_text`(`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(17651, 0, 0, "You've got my attention, dragon. You'll find I'm not as easily scared as the villagers below.", 14, 0, 100, 0, 0, 0, 14295, 0, 'Image of Medivh'), +(17651, 1, 0, "You dare challenge me at my own dwelling? Your arrogance is astounding, even for a dragon!", 14, 0, 100, 0, 0, 0, 14297, 0, 'Image of Medivh'), +(17651, 2, 0, "I do not know what you speak of, dragon... but I will not be bullied by this display of insolence. I'll leave Karazhan when it suits me!", 14, 0, 100, 0, 0, 0, 14299, 0, 'Image of Medivh'), +(17651, 3, 0, "%s begins to cast a spell of great power, weaving his own essence into the magic.", 16, 0, 100, 0, 0, 0, 14308, 0, 'Image of Medivh'), +(17651, 4, 0, "He should not have angered me. I must go... recover my strength now...", 12, 0, 100, 0, 0, 0, 14316, 0, 'Image of Medivh'), + +(17652, 0, 0, "Your dabbling in the arcane has gone too far, Medivh. You've attracted the attention of powers beyond your understanding. You must leave Karazhan at once!", 14, 0, 100, 0, 0, 0, 14296, 0, 'Image of Arcanagos'), +(17652, 1, 0, "A dark power seeks to use you, Medivh! If you stay, dire days will follow. You must hurry, we don't have much time!", 14, 0, 100, 0, 0, 0, 14298, 0, 'Image of Arcanagos'), +(17652, 2, 0, "You leave me no alternative. I will stop you by force if you won't listen to reason!", 14, 0, 100, 0, 0, 0, 14300, 0, 'Image of Arcanagos'), +(17652, 3, 0, "What have you done, wizard? This cannot be! I'm burning from... within!", 14, 0, 100, 0, 0, 0, 14294, 0, 'Image of Arcanagos'); + +DELETE FROM `gossip_menu_option` WHERE `MenuID` IN (7421, 7422) AND `OptionID`=0; +INSERT INTO `gossip_menu_option`(`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES +(7421, 0, 0, 'I\'m not an actor.', 14052, 0, 0, 0, 0, 0, 0, NULL, 0, 0), +(7422, 0, 0, 'Ok, I\'ll give it a try, then.', 14054, 0, 0, 0, 0, 0, 0, NULL, 0, 0); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index 38ca0452d..78e941fe1 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -61,16 +61,13 @@ enum Creatures # npc_barnesAI ######*/ -#define GOSSIP_READY "I'm not an actor." - -#define SAY_READY "Splendid, I'm going to get the audience ready. Break a leg!" -#define SAY_OZ_INTRO1 "Finally, everything is in place. Are you ready for your big stage debut?" -#define OZ_GOSSIP1 "I'm not an actor." -#define SAY_OZ_INTRO2 "Don't worry, you'll be fine. You look like a natural!" -#define OZ_GOSSIP2 "Ok, I'll give it a try, then." - -#define SAY_RAJ_INTRO1 "The romantic plays are really tough, but you'll do better this time. You have TALENT. Ready?" -#define RAJ_GOSSIP1 "I've never been more ready." +enum Misc +{ + OZ_GOSSIP1_MID = 7421, // I'm not an actor. + OZ_GOSSIP1_OID = 0, + OZ_GOSSIP2_MID = 7422, // Ok, I'll give it a try, then. + OZ_GOSSIP2_OID = 0, +}; #define OZ_GM_GOSSIP1 "[GM] Change event to EVENT_OZ" #define OZ_GM_GOSSIP2 "[GM] Change event to EVENT_HOOD" @@ -343,7 +340,7 @@ public: switch (action) { case GOSSIP_ACTION_INFO_DEF+1: - AddGossipItemFor(player, GOSSIP_ICON_CHAT, OZ_GOSSIP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); + AddGossipItemFor(player, OZ_GOSSIP2_MID, OZ_GOSSIP2_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); SendGossipMenuFor(player, 8971, creature->GetGUID()); break; case GOSSIP_ACTION_INFO_DEF+2: @@ -374,7 +371,7 @@ public: // Check for death of Moroes and if opera event is not done already if (instance->GetBossState(DATA_MOROES) == DONE && instance->GetBossState(DATA_OPERA_PERFORMANCE) != DONE) { - AddGossipItemFor(player, GOSSIP_ICON_CHAT, OZ_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); + AddGossipItemFor(player, OZ_GOSSIP1_MID, OZ_GOSSIP1_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); if (player->IsGameMaster()) { @@ -409,15 +406,18 @@ public: # npc_image_of_medivh ####*/ -#define SAY_DIALOG_MEDIVH_1 "You've got my attention, dragon. You'll find I'm not as easily scared as the villagers below." -#define SAY_DIALOG_ARCANAGOS_2 "Your dabbling in the arcane has gone too far, Medivh. You've attracted the attention of powers beyond your understanding. You must leave Karazhan at once!" -#define SAY_DIALOG_MEDIVH_3 "You dare challenge me at my own dwelling? Your arrogance is astounding, even for a dragon!" -#define SAY_DIALOG_ARCANAGOS_4 "A dark power seeks to use you, Medivh! If you stay, dire days will follow. You must hurry, we don't have much time!" -#define SAY_DIALOG_MEDIVH_5 "I do not know what you speak of, dragon... but I will not be bullied by this display of insolence. I'll leave Karazhan when it suits me!" -#define SAY_DIALOG_ARCANAGOS_6 "You leave me no alternative. I will stop you by force if you won't listen to reason!" -#define EMOTE_DIALOG_MEDIVH_7 "begins to cast a spell of great power, weaving his own essence into the magic." -#define SAY_DIALOG_ARCANAGOS_8 "What have you done, wizard? This cannot be! I'm burning from... within!" -#define SAY_DIALOG_MEDIVH_9 "He should not have angered me. I must go... recover my strength now..." +enum MedivhTexts +{ + SAY_DIALOG_MEDIVH_1 = 0, + SAY_DIALOG_ARCANAGOS_2 = 0, + SAY_DIALOG_MEDIVH_3 = 1, + SAY_DIALOG_ARCANAGOS_4 = 1, + SAY_DIALOG_MEDIVH_5 = 2, + SAY_DIALOG_ARCANAGOS_6 = 2, + EMOTE_DIALOG_MEDIVH_7 = 3, + SAY_DIALOG_ARCANAGOS_8 = 3, + SAY_DIALOG_MEDIVH_9 = 4 +}; //static float MedivPos[4] = {-11161.49f, -1902.24f, 91.48f, 1.94f}; static float ArcanagosPos[4] = {-11169.75f, -1881.48f, 107.39f, 4.83f}; @@ -487,25 +487,25 @@ public: switch(nextStep) { case 1: - me->Yell(SAY_DIALOG_MEDIVH_1, LANG_UNIVERSAL); + Talk(SAY_DIALOG_MEDIVH_1); return 10000; case 2: if (Creature* arca = ObjectAccessor::GetCreature((*me), ArcanagosGUID)) - arca->Yell(SAY_DIALOG_ARCANAGOS_2, LANG_UNIVERSAL); + arca->AI()->Talk(SAY_DIALOG_ARCANAGOS_2); return 20000; case 3: - me->Yell(SAY_DIALOG_MEDIVH_3, LANG_UNIVERSAL); + Talk(SAY_DIALOG_MEDIVH_3); return 10000; case 4: if (Creature* arca = ObjectAccessor::GetCreature((*me), ArcanagosGUID)) - arca->Yell(SAY_DIALOG_ARCANAGOS_4, LANG_UNIVERSAL); + arca->AI()->Talk(SAY_DIALOG_ARCANAGOS_4); return 20000; case 5: - me->Yell(SAY_DIALOG_MEDIVH_5, LANG_UNIVERSAL); + Talk(SAY_DIALOG_MEDIVH_5); return 20000; case 6: if (Creature* arca = ObjectAccessor::GetCreature((*me), ArcanagosGUID)) - arca->Yell(SAY_DIALOG_ARCANAGOS_6, LANG_UNIVERSAL); + arca->AI()->Talk(SAY_DIALOG_ARCANAGOS_6); ATimer = 5500; MTimer = 6600; @@ -526,7 +526,7 @@ public: return 1000; case 11: if (Creature* arca = ObjectAccessor::GetCreature((*me), ArcanagosGUID)) - arca->Yell(SAY_DIALOG_ARCANAGOS_8, LANG_UNIVERSAL); + arca->AI()->Talk(SAY_DIALOG_ARCANAGOS_8); return 5000; case 12: if (Creature* arca = ObjectAccessor::GetCreature((*me), ArcanagosGUID)) @@ -537,7 +537,7 @@ public: } return 10000; case 13: - me->Yell(SAY_DIALOG_MEDIVH_9, LANG_UNIVERSAL); + Talk(SAY_DIALOG_MEDIVH_9); return 10000; case 14: if (me->GetMap()->IsDungeon())