Creature/Script: Wyrmrest Defender

Closes #22500

(cherry picked from commit a3c20cea2d)
This commit is contained in:
Killyana
2018-09-25 20:02:07 +02:00
committed by Shauren
parent c4cb1748ca
commit c8538bcc67
2 changed files with 11 additions and 24 deletions

View File

@@ -0,0 +1,2 @@
--
UPDATE `conditions` SET `SourceEntry`=13018, `NegativeCondition`=1 WHERE `SourceGroup` IN (9568) AND `SourceTypeOrReferenceId`=14;

View File

@@ -469,11 +469,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,
@@ -563,32 +560,20 @@ 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)
if (menuId == MENU_ID && gossipListId == GOSSIP_OPTION_ID)
{
AddGossipItemFor(player, GOSSIP_OPTION_DEF1, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
SendGossipMenuFor(player, GOSSIP_TEXTID_DEF1, me->GetGUID());
// Makes player cast trigger spell for 49207 on self
player->CastSpell(player, SPELL_CHARACTER_SCRIPT, true);
CloseGossipMenuFor(player);
}
else
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
return true;
}
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
void OnCharmed(bool /*apply*/) override
{
uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
ClearGossipMenuFor(player);
if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
SendGossipMenuFor(player, GOSSIP_TEXTID_DEF2, me->GetGUID());
// Makes player cast trigger spell for 49207 on self
player->CastSpell(player, SPELL_CHARACTER_SCRIPT, true);
// The gossip should not auto close
}
return true;
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
}
};