aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2023-04-05 23:49:46 +0200
committerGitHub <noreply@github.com>2023-04-05 23:49:46 +0200
commit36044a9470e9c39a71916e908ab6cf4f95677793 (patch)
treef3c6997cf2f58c6d2f20e2c074d7ed0a4e2915db /src/server/scripts
parentc1c04fe73bfbc232170b4d14b2f84637f3705dc5 (diff)
Core/Creature: Added possibility to give creatures multiple gossip menu ids and control them via conditions (#28159)
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/zulaman.cpp6
-rw-r--r--src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp9
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp6
5 files changed, 18 insertions, 9 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);
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
index 9258359eb16..b9fcfc779c4 100644
--- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
+++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp
@@ -104,6 +104,11 @@ enum Points
MAX_BRANN_WAYPOINTS_INTRO = 17
};
+enum GossipMenuIds
+{
+ GOSSIP_MENU_START_INTRO = 11339,
+};
+
Position const AnraphetActivatePos = {-193.656f, 366.689f, 75.91001f, 3.138207f};
Position const BrannIntroWaypoint[MAX_BRANN_WAYPOINTS_INTRO] =
@@ -331,12 +336,12 @@ class npc_brann_bronzebeard_anraphet : public CreatureScript
{
npc_brann_bronzebeard_anraphetAI(Creature* creature) : CreatureAI(creature), _currentPoint(0), _instance(creature->GetInstanceScript()) { }
- bool OnGossipSelect(Player* /*player*/, uint32 sender, uint32 action) override
+ bool OnGossipSelect(Player* /*player*/, uint32 menuId, uint32 action) override
{
if (_instance->GetBossState(DATA_VAULT_OF_LIGHTS) == DONE)
return true;
- if (me->GetGossipMenuId() == sender && !action)
+ if (menuId == GOSSIP_MENU_START_INTRO && !action)
{
_instance->SetBossState(DATA_VAULT_OF_LIGHTS, IN_PROGRESS);
_currentPoint = 0;
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
index eadbf4252cb..cbff6530c4f 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -364,7 +364,9 @@ enum MiscData
enum Misc
{
DATA_PLAGUE_STACK = 70337,
- DATA_VILE = 45814622
+ DATA_VILE = 45814622,
+
+ GOSSIP_MENU_START_INTRO = 10993
};
class NecroticPlagueTargetCheck
@@ -1193,7 +1195,7 @@ struct npc_tirion_fordring_tft : public ScriptedAI
bool OnGossipSelect(Player* /*player*/, uint32 menuId, uint32 gossipListId) override
{
- if (me->GetGossipMenuId() == menuId && !gossipListId)
+ if (menuId == GOSSIP_MENU_START_INTRO && !gossipListId)
{
_events.SetPhase(PHASE_INTRO);
me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);