mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Scripts/Gossips: Set gossip menu id for scripts that load menu items from database
(cherry picked from commit 900a2f6d88)
This commit is contained in:
@@ -29,6 +29,11 @@ uint32 GetGossipActionFor(Player* player, uint32 gossipListId)
|
||||
return player->PlayerTalkClass->GetGossipOptionAction(gossipListId);
|
||||
}
|
||||
|
||||
void InitGossipMenuFor(Player* player, uint32 menuId)
|
||||
{
|
||||
player->PlayerTalkClass->GetGossipMenu().SetMenuId(menuId);
|
||||
}
|
||||
|
||||
void ClearGossipMenuFor(Player* player)
|
||||
{
|
||||
player->PlayerTalkClass->ClearMenus();
|
||||
|
||||
@@ -88,6 +88,7 @@ enum eTradeskill
|
||||
|
||||
uint32 TC_GAME_API GetGossipSenderFor(Player* player, uint32 menuId);
|
||||
uint32 TC_GAME_API GetGossipActionFor(Player* player, uint32 gossipListId);
|
||||
void TC_GAME_API InitGossipMenuFor(Player* player, uint32 menuId);
|
||||
void TC_GAME_API ClearGossipMenuFor(Player* player);
|
||||
// Using provided text, not from DB
|
||||
void TC_GAME_API AddGossipItemFor(Player* player, GossipOptionNpc optionNpc, std::string const& text, uint32 sender, uint32 action);
|
||||
|
||||
@@ -468,6 +468,7 @@ class npc_lokhtos_darkbargainer : public CreatureScript
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_SHOW_ACCESS_MID);
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
|
||||
@@ -237,6 +237,7 @@ class boss_doomrel : public CreatureScript
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
InitGossipMenuFor(player, GOSSIP_SELECT_DOOMREL);
|
||||
AddGossipItemFor(player, GOSSIP_SELECT_DOOMREL, GOSSIP_MENU_ID_CONTINUE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 2605, me->GetGUID());
|
||||
break;
|
||||
@@ -255,6 +256,7 @@ class boss_doomrel : public CreatureScript
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_CHALLENGE);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_CHALLENGE, GOSSIP_MENU_ID_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 2601, me->GetGUID());
|
||||
|
||||
|
||||
@@ -340,6 +340,7 @@ public:
|
||||
switch (action)
|
||||
{
|
||||
case GOSSIP_ACTION_INFO_DEF + 1:
|
||||
InitGossipMenuFor(player, OZ_GOSSIP2_MID);
|
||||
AddGossipItemFor(player, OZ_GOSSIP2_MID, OZ_GOSSIP2_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 8971, me->GetGUID());
|
||||
break;
|
||||
@@ -370,6 +371,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, OZ_GOSSIP1_MID);
|
||||
// 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)
|
||||
{
|
||||
|
||||
@@ -678,6 +678,8 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
uint32 gossipMenuId = Player::GetDefaultGossipMenuForSource(me);
|
||||
InitGossipMenuFor(player, gossipMenuId);
|
||||
if (player->GetQuestStatus(QUEST_DEATH_CHALLENGE) == QUEST_STATUS_INCOMPLETE && me->IsFullHealth())
|
||||
{
|
||||
if (player->HealthBelowPct(10))
|
||||
@@ -686,7 +688,7 @@ public:
|
||||
if (player->IsInCombat() || me->IsInCombat())
|
||||
return true;
|
||||
|
||||
AddGossipItemFor(player, Player::GetDefaultGossipMenuForSource(me), 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
AddGossipItemFor(player, gossipMenuId, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -130,8 +130,10 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
uint32 gossipMenuId = Player::GetDefaultGossipMenuForSource(me);
|
||||
InitGossipMenuFor(player, gossipMenuId);
|
||||
if (instance->GetData(TYPE_FREE_NPC) != DONE && instance->GetData(TYPE_RETHILGORE) == DONE)
|
||||
AddGossipItemFor(player, Player::GetDefaultGossipMenuForSource(me), 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
AddGossipItemFor(player, gossipMenuId, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
return true;
|
||||
|
||||
@@ -119,16 +119,19 @@ class npc_jaina_proudmoore : public CreatureScript
|
||||
uint32 AnetheronEncounter = instance->GetBossState(DATA_ANETHERON);
|
||||
if (RageEncounter != DONE && RageEncounter != IN_PROGRESS)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_BEGIN_ALLY_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_BEGIN_ALLY_MID, GOSSIP_ITEM_BEGIN_ALLY_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 9168, me->GetGUID());
|
||||
}
|
||||
else if (RageEncounter == DONE && AnetheronEncounter != DONE && AnetheronEncounter != IN_PROGRESS)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_ANETHERON_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_ANETHERON_MID, GOSSIP_ITEM_ANETHERON_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 9380, me->GetGUID());
|
||||
}
|
||||
else if (RageEncounter == DONE && AnetheronEncounter == DONE)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_ALLY_RETREAT_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_ALLY_RETREAT_MID, GOSSIP_ITEM_ALLY_RETREAT_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, 9387, me->GetGUID());
|
||||
}
|
||||
@@ -202,16 +205,19 @@ class npc_thrall : public CreatureScript
|
||||
uint32 AzgalorEvent = instance->GetBossState(DATA_AZGALOR);
|
||||
if (KazrogalEvent != DONE && AzgalorEvent != IN_PROGRESS)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_BEGIN_HORDE_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_BEGIN_HORDE_MID, GOSSIP_ITEM_BEGIN_HORDE_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, 9225, me->GetGUID());
|
||||
}
|
||||
else if (KazrogalEvent == DONE && AzgalorEvent != DONE && AzgalorEvent != IN_PROGRESS)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_AZGALOR_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_AZGALOR_MID, GOSSIP_ITEM_AZGALOR_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, 9396, me->GetGUID());
|
||||
}
|
||||
else if (AzgalorEvent == DONE)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_HORDE_RETREAT_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_HORDE_RETREAT_MID, GOSSIP_ITEM_HORDE_RETREAT_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, 9398, me->GetGUID());
|
||||
}
|
||||
@@ -260,6 +266,7 @@ class npc_tyrande_whisperwind : public CreatureScript
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_TYRANDE_MID);
|
||||
uint32 AzgalorEvent = instance->GetBossState(DATA_AZGALOR);
|
||||
|
||||
// Only let them get item if Azgalor is dead.
|
||||
|
||||
@@ -305,6 +305,7 @@ class npc_chromie_start : public CreatureScript
|
||||
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_INITIAL);
|
||||
if (player->CanBeGameMaster()) // GM instance state override menu
|
||||
AddGossipItemFor(player, GossipOptionNpc::None, "[GM] Access instance control panel", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_OPEN_GM_MENU);
|
||||
|
||||
@@ -351,10 +352,12 @@ class npc_chromie_start : public CreatureScript
|
||||
switch (action - GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
case GOSSIP_OFFSET_EXPLAIN:
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_EXPLAIN_1);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_EXPLAIN_1, GOSSIP_OPTION_EXPLAIN_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_EXPLAIN_1);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_EXPLAIN_1, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_OFFSET_SKIP:
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_SKIP_1);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_SKIP_1, GOSSIP_OPTION_SKIP_1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_SKIP_1);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_SKIP_1, me->GetGUID());
|
||||
break;
|
||||
@@ -366,6 +369,7 @@ class npc_chromie_start : public CreatureScript
|
||||
me->CastSpell(player, SPELL_TELEPORT_PLAYER);
|
||||
break;
|
||||
case GOSSIP_OFFSET_EXPLAIN_1:
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_EXPLAIN_2);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_EXPLAIN_2, GOSSIP_OPTION_EXPLAIN_2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_EXPLAIN_2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_EXPLAIN_2, me->GetGUID());
|
||||
break;
|
||||
@@ -506,6 +510,7 @@ class npc_chromie_middle : public CreatureScript
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_STEP1);
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
@@ -522,14 +527,17 @@ class npc_chromie_middle : public CreatureScript
|
||||
switch (action - GOSSIP_ACTION_INFO_DEF)
|
||||
{
|
||||
case GOSSIP_OFFSET_STEP1:
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_STEP2);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_STEP2, GOSSIP_OPTION_STEP2, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_STEP2);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_STEP2, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_OFFSET_STEP2:
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_STEP3);
|
||||
AddGossipItemFor(player, GOSSIP_MENU_STEP3, GOSSIP_OPTION_STEP3, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + GOSSIP_OFFSET_STEP3);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_STEP3, me->GetGUID());
|
||||
break;
|
||||
case GOSSIP_OFFSET_STEP3:
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_STEP4);
|
||||
SendGossipMenuFor(player, GOSSIP_TEXT_STEP4, me->GetGUID());
|
||||
AdvanceDungeon(player);
|
||||
break;
|
||||
|
||||
@@ -84,6 +84,7 @@ struct npc_erozion : public ScriptedAI
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_EROZION);
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
@@ -512,6 +513,7 @@ struct npc_thrall_old_hillsbrad : public EscortAI
|
||||
break;
|
||||
|
||||
case GOSSIP_ACTION_INFO_DEF + 2:
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_SKARLOC2_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_SKARLOC2_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20);
|
||||
SendGossipMenuFor(player, GOSSIP_ID_SKARLOC2, me->GetGUID());
|
||||
break;
|
||||
@@ -543,18 +545,21 @@ struct npc_thrall_old_hillsbrad : public EscortAI
|
||||
|
||||
if (instance->GetBossState(DATA_LIEUTENANT_DRAKE) == DONE && instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_PRISON_TO_SKARLOC)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_WALKING_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_WALKING_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_ID_START, me->GetGUID());
|
||||
}
|
||||
|
||||
if (instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_HORSE_RIDE)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_SKARLOC1_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_SKARLOC1_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_ID_SKARLOC1, me->GetGUID());
|
||||
}
|
||||
|
||||
if (instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_BARN_TO_TARETHA)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_TARREN_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_TARREN_MID, GOSSIP_ITEM_DEFAULT_OP, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
|
||||
SendGossipMenuFor(player, GOSSIP_ID_TARREN, me->GetGUID());
|
||||
}
|
||||
@@ -607,6 +612,7 @@ struct npc_taretha : public EscortAI
|
||||
|
||||
if (action == GOSSIP_ACTION_INFO_DEF + 1)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_EPOCH2_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_EPOCH2_MID, GOSSIP_ITEM_EPOCH2_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
|
||||
SendGossipMenuFor(player, GOSSIP_ID_EPOCH2, me->GetGUID());
|
||||
}
|
||||
@@ -629,6 +635,7 @@ struct npc_taretha : public EscortAI
|
||||
{
|
||||
if (instance->GetData(TYPE_THRALL_EVENT) == OH_ESCORT_EPOCH_HUNTER && instance->GetBossState(DATA_EPOCH_HUNTER) != DONE)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_EPOCH1_MID);
|
||||
AddGossipItemFor(player, GOSSIP_ITEM_EPOCH1_MID, GOSSIP_ITEM_EPOCH1_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, GOSSIP_ID_EPOCH1, me->GetGUID());
|
||||
}
|
||||
|
||||
@@ -348,6 +348,7 @@ public:
|
||||
if ((instance->GetData(TYPE_LORD_COBRAHN) == DONE) && (instance->GetData(TYPE_LORD_PYTHAS) == DONE) &&
|
||||
(instance->GetData(TYPE_LADY_ANACONDRA) == DONE) && (instance->GetData(TYPE_LORD_SERPENTIS) == DONE))
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_OPTION_LET_EVENT_BEGIN);
|
||||
AddGossipItemFor(player, GOSSIP_OPTION_LET_EVENT_BEGIN, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, NPC_TEXT_FANGLORDS_ARE_DEAD, me->GetGUID());
|
||||
|
||||
|
||||
@@ -179,6 +179,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_BLY_MID);
|
||||
if (instance->GetData(EVENT_PYRAMID) == PYRAMID_KILLED_ALL_TROLLS)
|
||||
{
|
||||
AddGossipItemFor(player, GOSSIP_BLY_MID, GOSSIP_BLY_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
@@ -374,6 +375,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_WEEGLI_MID);
|
||||
switch (instance->GetData(EVENT_PYRAMID))
|
||||
{
|
||||
case PYRAMID_KILLED_ALL_TROLLS:
|
||||
|
||||
@@ -1231,6 +1231,7 @@ class go_wind_stone : public GameObjectScript
|
||||
{
|
||||
case GOSSIP_ID_LESSER_WS:
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ID_LESSER_WS);
|
||||
if (rank >= 1) // 1 or 2 or 3
|
||||
AddGossipItemFor(player, GOSSIP_ID_LESSER_WS, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
else
|
||||
@@ -1252,6 +1253,7 @@ class go_wind_stone : public GameObjectScript
|
||||
}
|
||||
case GOSSIP_ID_WIND_STONE:
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ID_WIND_STONE);
|
||||
if (rank >= 2) // 2 or 3
|
||||
AddGossipItemFor(player, GOSSIP_ID_WIND_STONE, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 6);
|
||||
else
|
||||
@@ -1273,6 +1275,7 @@ class go_wind_stone : public GameObjectScript
|
||||
}
|
||||
case GOSSIP_ID_GREATER_WS:
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ID_GREATER_WS);
|
||||
if (rank == 3) // 3
|
||||
AddGossipItemFor(player, GOSSIP_ID_GREATER_WS, OPTION_ID_WS_RANDOM, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
|
||||
else
|
||||
|
||||
@@ -142,6 +142,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_MENU_HCB);
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
|
||||
@@ -467,11 +467,18 @@ public:
|
||||
instance->GetBossState(BOSS_ARGENT_CHALLENGE_E) == NOT_STARTED &&
|
||||
instance->GetBossState(BOSS_ARGENT_CHALLENGE_P) == NOT_STARTED &&
|
||||
instance->GetBossState(BOSS_BLACK_KNIGHT) == NOT_STARTED)
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_START_EVENT1_MID);
|
||||
AddGossipItemFor(player, GOSSIP_START_EVENT1_MID, GOSSIP_START_EVENT1_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(GOSSIP_START_EVENT1_MID, me), me->GetGUID());
|
||||
}
|
||||
else
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_START_EVENT2_MID);
|
||||
AddGossipItemFor(player, GOSSIP_START_EVENT2_MID, GOSSIP_START_EVENT2_OID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(GOSSIP_START_EVENT2_MID, me), me->GetGUID());
|
||||
}
|
||||
|
||||
SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -689,6 +689,7 @@ struct npc_brann_hos : public EscortAI
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_ITEM_START_MID);
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
|
||||
@@ -522,6 +522,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, GOSSIP_THASSARIAN_MENU);
|
||||
if (me->IsQuestGiver())
|
||||
player->PrepareQuestMenu(me->GetGUID());
|
||||
|
||||
@@ -1290,6 +1291,7 @@ struct npc_hidden_cultist : public ScriptedAI
|
||||
return false;
|
||||
}
|
||||
|
||||
InitGossipMenuFor(player, charGossipItem);
|
||||
if (player->HasAura(SPELL_RIGHTEOUS_VISION) && player->GetQuestStatus(QUEST_THE_HUNT_IS_ON) == QUEST_STATUS_INCOMPLETE)
|
||||
AddGossipItemFor(player, charGossipItem, GOSSIP_ITEM_HIDDEN_CULTIST_OPTIONID, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
|
||||
@@ -458,6 +458,7 @@ struct npc_zm_field_scout : public ScriptedAI
|
||||
if (me->GetEntry() == ZM_ALLIANCE_FIELD_SCOUT)
|
||||
gossipMenuId = GOSSIP_MENU_FIELD_SCOUT_ALLIANCE;
|
||||
|
||||
InitGossipMenuFor(player, gossipMenuId);
|
||||
if (CanObtainBanner(player))
|
||||
AddGossipItemFor(player, gossipMenuId, GOSSIP_OPTION_FIELD_SCOUT_BATTLE_STANDARD, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ public:
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, NPC_GOSSIP_MENU);
|
||||
if (IsHolidayActive(HOLIDAY_HALLOWS_END) && !player->HasAura(SPELL_TRICK_OR_TREATED))
|
||||
AddGossipItemFor(player, NPC_GOSSIP_MENU_EVENT, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
|
||||
|
||||
|
||||
@@ -1639,6 +1639,7 @@ class npc_wormhole : public CreatureScript
|
||||
|
||||
bool OnGossipHello(Player* player) override
|
||||
{
|
||||
InitGossipMenuFor(player, MENU_ID_WORMHOLE);
|
||||
if (me->IsSummon())
|
||||
{
|
||||
if (player == me->ToTempSummon()->GetSummoner())
|
||||
|
||||
Reference in New Issue
Block a user