diff options
author | Killyana <morphone1@gmail.com> | 2018-09-25 20:02:07 +0200 |
---|---|---|
committer | Killyana <morphone1@gmail.com> | 2018-09-25 20:02:07 +0200 |
commit | a3c20cea2d096eb3274eaac4c6f154e440f98b2e (patch) | |
tree | fc8dc5436a47700c4f7ac78658cfe94af1893e5d | |
parent | af3449e06463b3425df2ce67195fa55492af4151 (diff) |
Creature/Script: Wyrmrest Defender
Closes #22500
-rw-r--r-- | sql/updates/world/3.3.5/2018_09_25_00_world.sql | 2 | ||||
-rw-r--r-- | src/server/scripts/Northrend/zone_dragonblight.cpp | 37 |
2 files changed, 12 insertions, 27 deletions
diff --git a/sql/updates/world/3.3.5/2018_09_25_00_world.sql b/sql/updates/world/3.3.5/2018_09_25_00_world.sql new file mode 100644 index 00000000000..1a65ed20b70 --- /dev/null +++ b/sql/updates/world/3.3.5/2018_09_25_00_world.sql @@ -0,0 +1,2 @@ +-- +UPDATE `conditions` SET `SourceEntry`=13018, `NegativeCondition`=1 WHERE `SourceGroup` IN (9568) AND `SourceTypeOrReferenceId`=14; diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp index 52e34855ca6..b493d02ab98 100644 --- a/src/server/scripts/Northrend/zone_dragonblight.cpp +++ b/src/server/scripts/Northrend/zone_dragonblight.cpp @@ -471,11 +471,8 @@ enum WyrmDefenderEnum { // Quest data QUEST_DEFENDING_WYRMREST_TEMPLE = 12372, - GOSSIP_TEXTID_DEF1 = 12899, - GOSSIP_OPTION_DEF1 = 9568, - - // Gossip data - GOSSIP_TEXTID_DEF2 = 12900, + GOSSIP_OPTION_ID = 0, + MENU_ID = 9568, // Spells data SPELL_CHARACTER_SCRIPT = 49213, @@ -565,33 +562,19 @@ class npc_wyrmrest_defender : public CreatureScript } } - bool GossipHello(Player* player) override + bool GossipSelect(Player* player, uint32 menuId, uint32 gossipListId) override { - if (player->GetQuestStatus(QUEST_DEFENDING_WYRMREST_TEMPLE) == QUEST_STATUS_INCOMPLETE) - { - AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_OPTION_DEF1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); - SendGossipMenuFor(player, GOSSIP_TEXTID_DEF1, me->GetGUID()); - } - else - SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); - - return true; - } - - bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override - { - uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId); - ClearGossipMenuFor(player); - if (action == GOSSIP_ACTION_INFO_DEF + 1) - { - SendGossipMenuFor(player, GOSSIP_TEXTID_DEF2, me->GetGUID()); + if (menuId == MENU_ID && gossipListId == GOSSIP_OPTION_ID) // Makes player cast trigger spell for 49207 on self player->CastSpell(player, SPELL_CHARACTER_SCRIPT, true); - // The gossip should not auto close - } - + CloseGossipMenuFor(player); return true; } + + void OnCharmed(bool apply) override + { + me->RemoveFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); + } }; CreatureAI* GetAI(Creature* creature) const override |