diff options
| author | ModoX <moardox@gmail.com> | 2023-04-05 23:49:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-05 23:49:46 +0200 |
| commit | 36044a9470e9c39a71916e908ab6cf4f95677793 (patch) | |
| tree | f3c6997cf2f58c6d2f20e2c074d7ed0a4e2915db /src/server/scripts/EasternKingdoms | |
| parent | c1c04fe73bfbc232170b4d14b2f84637f3705dc5 (diff) | |
Core/Creature: Added possibility to give creatures multiple gossip menu ids and control them via conditions (#28159)
Diffstat (limited to 'src/server/scripts/EasternKingdoms')
3 files changed, 7 insertions, 5 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index ac65e640ade..67f23cf43ba 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -678,7 +678,7 @@ public: bool OnGossipHello(Player* player) override { - uint32 gossipMenuId = Player::GetDefaultGossipMenuForSource(me); + uint32 gossipMenuId = player->GetGossipMenuForSource(me); InitGossipMenuFor(player, gossipMenuId); if (player->GetQuestStatus(QUEST_DEATH_CHALLENGE) == QUEST_STATUS_INCOMPLETE && me->IsFullHealth()) { @@ -688,7 +688,7 @@ public: if (player->IsInCombat() || me->IsInCombat()) return true; - AddGossipItemFor(player, gossipMenuId, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); + AddGossipItemFor(player, player->GetGossipMenuForSource(me), 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF); SendGossipMenuFor(player, player->GetGossipTextId(me), me->GetGUID()); } return true; diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp index 4f6dfe7f7d7..992163dfa3a 100644 --- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp +++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp @@ -130,7 +130,7 @@ public: bool OnGossipHello(Player* player) override { - uint32 gossipMenuId = Player::GetDefaultGossipMenuForSource(me); + uint32 gossipMenuId = player->GetGossipMenuForSource(me); InitGossipMenuFor(player, gossipMenuId); if (instance->GetData(TYPE_FREE_NPC) != DONE && instance->GetData(TYPE_RETHILGORE) == DONE) AddGossipItemFor(player, gossipMenuId, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); diff --git a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp index c520cdd56d7..4041d02be1e 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp @@ -69,7 +69,9 @@ enum Points enum Misc { - ITEM_VIRTUAL_ITEM = 5301 + ITEM_VIRTUAL_ITEM = 5301, + + GOSSIP_MENU_START_INTRO = 12797, }; Position const VoljinIntroWaypoint[4] = @@ -104,7 +106,7 @@ class npc_voljin_zulaman : public CreatureScript if (_instance->GetData(DATA_ZULAMAN_STATE) != NOT_STARTED) return true; - if (me->GetGossipMenuId() == menuId && !gossipListId) + if (menuId == GOSSIP_MENU_START_INTRO && !gossipListId) { _events.Reset(); me->SetMountDisplayId(0); |
