aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2021_12_19_31_world_2020_01_03_01_world.sql13
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp63
2 files changed, 46 insertions, 30 deletions
diff --git a/sql/updates/world/master/2021_12_19_31_world_2020_01_03_01_world.sql b/sql/updates/world/master/2021_12_19_31_world_2020_01_03_01_world.sql
new file mode 100644
index 00000000000..f8f0eed6377
--- /dev/null
+++ b/sql/updates/world/master/2021_12_19_31_world_2020_01_03_01_world.sql
@@ -0,0 +1,13 @@
+--
+UPDATE `creature_template` SET `gossip_menu_id`=301 WHERE `entry`=3849;
+UPDATE `creature_template` SET `gossip_menu_id`=300 WHERE `entry`=3850;
+
+DELETE FROM `gossip_menu` WHERE `MenuID` IN (21213, 21214, 300, 301) AND `TextID` IN (798,799);
+INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES
+(300,798),
+(301,799);
+
+DELETE FROM `gossip_menu_option` WHERE `MenuID` IN (21213, 21214, 300, 301);
+INSERT INTO `gossip_menu_option` (`MenuID`, `OptionIndex`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `VerifiedBuild`) VALUES
+(300, 0, 0, "Please unlock the courtyard door.", 2802, 1, 1, 0),
+(301, 0, 0, "Please unlock the courtyard door.", 2802, 1, 1, 0);
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
index 20e8d225e81..d4b46df4913 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/shadowfang_keep.cpp
@@ -77,36 +77,39 @@ public:
void WaypointReached(uint32 waypointId, uint32 /*pathId*/) override
{
- switch (waypointId)
+ if (Player* player = GetPlayerForEscort())
{
- case 0:
- if (me->GetEntry() == NPC_ASH)
- Talk(SAY_FREE_AS);
- else
- Talk(SAY_FREE_AD);
- break;
- case 10:
- if (me->GetEntry() == NPC_ASH)
- Talk(SAY_OPEN_DOOR_AS);
- else
- Talk(SAY_OPEN_DOOR_AD);
- break;
- case 11:
- if (me->GetEntry() == NPC_ASH)
- DoCast(me, SPELL_UNLOCK);
- break;
- case 12:
- if (me->GetEntry() == NPC_ASH)
- Talk(SAY_POST_DOOR_AS);
- else
- Talk(SAY_POST1_DOOR_AD);
-
- instance->SetData(TYPE_FREE_NPC, DONE);
- break;
- case 13:
- if (me->GetEntry() != NPC_ASH)
- Talk(SAY_POST2_DOOR_AD);
- break;
+ switch (waypointId)
+ {
+ case 0:
+ if (me->GetEntry() == NPC_ASH)
+ Talk(SAY_FREE_AS, player);
+ else
+ Talk(SAY_FREE_AD, player);
+ break;
+ case 10:
+ if (me->GetEntry() == NPC_ASH)
+ Talk(SAY_OPEN_DOOR_AS, player);
+ else
+ Talk(SAY_OPEN_DOOR_AD, player);
+ break;
+ case 11:
+ if (me->GetEntry() == NPC_ASH)
+ DoCast(me, SPELL_UNLOCK);
+ break;
+ case 12:
+ if (me->GetEntry() == NPC_ASH)
+ Talk(SAY_POST_DOOR_AS, player);
+ else
+ Talk(SAY_POST1_DOOR_AD, player);
+
+ instance->SetData(TYPE_FREE_NPC, DONE);
+ break;
+ case 13:
+ if (me->GetEntry() != NPC_ASH)
+ Talk(SAY_POST2_DOOR_AD, player);
+ break;
+ }
}
}
@@ -120,7 +123,7 @@ public:
if (action == GOSSIP_ACTION_INFO_DEF + 1)
{
CloseGossipMenuFor(player);
- Start(false, false);
+ Start(false, false, player->GetGUID());
}
return true;
}