mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Quests: Reports from the Field (#24075)
This commit is contained in:
committed by
Giacomo Pozzoni
parent
07c0bfe11b
commit
bfac09bbcf
@@ -253,82 +253,76 @@ public:
|
||||
## npc_razael_and_lyana
|
||||
######*/
|
||||
|
||||
#define GOSSIP_RAZAEL_REPORT "High Executor Anselm wants a report on the situation."
|
||||
#define GOSSIP_LYANA_REPORT "High Executor Anselm requests your report."
|
||||
|
||||
enum Razael
|
||||
{
|
||||
QUEST_REPORTS_FROM_THE_FIELD = 11221,
|
||||
NPC_RAZAEL = 23998,
|
||||
NPC_LYANA = 23778,
|
||||
GOSSIP_TEXTID_RAZAEL1 = 11562,
|
||||
GOSSIP_TEXTID_RAZAEL2 = 11564,
|
||||
GOSSIP_TEXTID_LYANA1 = 11586,
|
||||
GOSSIP_TEXTID_LYANA2 = 11588
|
||||
QUEST_REPORTS_FROM_THE_FIELD = 11221,
|
||||
|
||||
NPC_RAZAEL = 23998,
|
||||
NPC_LYANA = 23778,
|
||||
|
||||
GOSSIP_RAZAEL_REPORT = 8870,
|
||||
GOSSIP_TEXTID_RAZAEL1 = 11562,
|
||||
GOSSIP_TEXTID_RAZAEL2 = 11564,
|
||||
|
||||
GOSSIP_LYANA_REPORT = 8879,
|
||||
GOSSIP_TEXTID_LYANA1 = 11586,
|
||||
GOSSIP_TEXTID_LYANA2 = 11588,
|
||||
|
||||
GOSSIP_MENU_ID = 0
|
||||
};
|
||||
|
||||
class npc_razael_and_lyana : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_razael_and_lyana() : CreatureScript("npc_razael_and_lyana") { }
|
||||
|
||||
struct npc_razael_and_lyanaAI : public ScriptedAI
|
||||
struct npc_razael_and_lyana : public ScriptedAI {
|
||||
npc_razael_and_lyana(Creature *creature) : ScriptedAI(creature)
|
||||
{
|
||||
npc_razael_and_lyanaAI(Creature* creature) : ScriptedAI(creature) { }
|
||||
}
|
||||
|
||||
bool GossipHello(Player* player) override
|
||||
bool GossipHello(Player* player) override
|
||||
{
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_REPORTS_FROM_THE_FIELD) == QUEST_STATUS_INCOMPLETE)
|
||||
{
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
if (player->GetQuestStatus(QUEST_REPORTS_FROM_THE_FIELD) == QUEST_STATUS_INCOMPLETE)
|
||||
switch (me->GetEntry())
|
||||
{
|
||||
switch (me->GetEntry())
|
||||
{
|
||||
case NPC_RAZAEL:
|
||||
if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_RAZAEL))
|
||||
{
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_RAZAEL_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL1, me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case NPC_LYANA:
|
||||
if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_LYANA))
|
||||
{
|
||||
AddGossipItemFor(player, GOSSIP_ICON_CHAT, GOSSIP_LYANA_REPORT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA1, me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
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);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL2, me->GetGUID());
|
||||
player->TalkedToCreature(NPC_RAZAEL, me->GetGUID());
|
||||
case NPC_RAZAEL:
|
||||
if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_RAZAEL))
|
||||
{
|
||||
AddGossipItemFor(player, GOSSIP_RAZAEL_REPORT, GOSSIP_MENU_ID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL1, me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA2, me->GetGUID());
|
||||
player->TalkedToCreature(NPC_LYANA, me->GetGUID());
|
||||
case NPC_LYANA:
|
||||
if (!player->GetReqKillOrCastCurrentCount(QUEST_REPORTS_FROM_THE_FIELD, NPC_LYANA))
|
||||
{
|
||||
AddGossipItemFor(player, GOSSIP_LYANA_REPORT, GOSSIP_MENU_ID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA1, me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
bool GossipSelect(Player* player, uint32 /*menuId*/, uint32 gossipListId) override
|
||||
{
|
||||
return new npc_razael_and_lyanaAI(creature);
|
||||
uint32 const action = player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
|
||||
ClearGossipMenuFor(player);
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_RAZAEL2, me->GetGUID());
|
||||
player->TalkedToCreature(NPC_RAZAEL, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
SendGossipMenuFor(player, GOSSIP_TEXTID_LYANA2, me->GetGUID());
|
||||
player->TalkedToCreature(NPC_LYANA, me->GetGUID());
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -670,7 +664,7 @@ public:
|
||||
void AddSC_howling_fjord()
|
||||
{
|
||||
new npc_apothecary_hanes();
|
||||
new npc_razael_and_lyana();
|
||||
RegisterCreatureAI(npc_razael_and_lyana);
|
||||
RegisterCreatureAI(npc_daegarn);
|
||||
new npc_mindless_abomination();
|
||||
new spell_mindless_abomination_explosion_fx_master();
|
||||
|
||||
Reference in New Issue
Block a user