From 13e3217578f7082acafd39bf6db72f49175f207e Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Sat, 3 Jun 2023 01:37:37 +0200 Subject: [PATCH] Only play the dialogs for the initating player (#6173) * Only play the The Chamber of Bone lore for the reader * Only play dialog for the player who is having the conversation * Allow rock quest when skipping to level 5 --- Source/monster.cpp | 3 ++- Source/objects.cpp | 5 +++-- Source/towners.cpp | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/monster.cpp b/Source/monster.cpp index 8291a30d8..965ee9e68 100644 --- a/Source/monster.cpp +++ b/Source/monster.cpp @@ -4480,7 +4480,8 @@ Monster *PreSpawnSkeleton() void TalktoMonster(Player &player, Monster &monster) { - monster.mode = MonsterMode::Talk; + if (&player == MyPlayer) + monster.mode = MonsterMode::Talk; if (monster.uniqueType == UniqueMonsterType::SnotSpill && Quests[Q_LTBANNER].IsAvailable() && Quests[Q_LTBANNER]._qvar1 == 2) { diff --git a/Source/objects.cpp b/Source/objects.cpp index 6ea5708d6..95b3a8648 100644 --- a/Source/objects.cpp +++ b/Source/objects.cpp @@ -2099,8 +2099,8 @@ void OperateChamberOfBoneBook(Object &questBook, bool sendmsg) Quests[Q_SCHAMB]._qmsg = textdef; NetSendCmdQuest(true, Quests[Q_SCHAMB]); NetSendCmdLoc(MyPlayerId, false, CMD_OPERATEOBJ, questBook.position); + InitQTextMsg(textdef); } - InitQTextMsg(textdef); } void OperateChest(const Player &player, Object &chest, bool sendLootMsg) @@ -3213,7 +3213,8 @@ void OperateBookcase(Object &bookcase, bool sendmsg, bool sendLootMsg) zhar.talkMsg = TEXT_ZHAR2; M_StartStand(zhar, zhar.direction); // BUGFIX: first parameter in call to M_StartStand should be MAX_PLRS, not 0. (fixed) zhar.goal = MonsterGoal::Attack; - zhar.mode = MonsterMode::Talk; + if (sendmsg) + zhar.mode = MonsterMode::Talk; } } if (sendmsg) diff --git a/Source/towners.cpp b/Source/towners.cpp index 6103ec63a..a877d009a 100644 --- a/Source/towners.cpp +++ b/Source/towners.cpp @@ -377,7 +377,7 @@ void TalkToDeadguy(Player &player, Towner & /*deadguy*/) void TalkToBlackSmith(Player &player, Towner &blackSmith) { if (Quests[Q_ROCK]._qactive != QUEST_NOTAVAIL) { - if (player._pLvlVisited[4] && Quests[Q_ROCK]._qactive != QUEST_DONE) { + if ((player._pLvlVisited[4] || player._pLvlVisited[5]) && Quests[Q_ROCK]._qactive != QUEST_DONE) { if (Quests[Q_ROCK]._qvar2 == 0) { Quests[Q_ROCK]._qvar2 = 1; Quests[Q_ROCK]._qlog = true;