From ebcb1631a4c643d9257e54dd3147958f74d8f3f5 Mon Sep 17 00:00:00 2001 From: Emagi Date: Sun, 1 Dec 2024 07:42:16 -0500 Subject: [PATCH] fix older clients requiring quests to see certain objects/select them --- source/WorldServer/Spawn.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/source/WorldServer/Spawn.cpp b/source/WorldServer/Spawn.cpp index 5168e6f..9d1a6e9 100644 --- a/source/WorldServer/Spawn.cpp +++ b/source/WorldServer/Spawn.cpp @@ -399,18 +399,25 @@ void Spawn::InitializeVisPacketData(Player* player, PacketStruct* vis_packet) { vis_flags += 4; } - if (version <= 546 && (vis_flags > 1 || appearance.display_hand_icon > 0)) //interactable + if (version <= 546 && (vis_flags > 1 || appearance.display_hand_icon > 0) && MeetsSpawnAccessRequirements(player)) //interactable vis_flags = 1; - vis_packet->setDataByName("vis_flags", vis_flags); - + else if(!player->HasGMVision()) { + vis_flags = 0; + } + else if((req_quests_override & 256) > 0) { + if(vis_flags > 1) + vis_flags = 1; + } if (MeetsSpawnAccessRequirements(player)) { vis_packet->setDataByName("hand_flag", appearance.display_hand_icon); } - else { - if ((req_quests_override & 256) > 0) + else if ((req_quests_override & 256) > 0) { vis_packet->setDataByName("hand_flag", 1); } + + vis_packet->setDataByName("vis_flags", vis_flags); + if ((version == 546 || version == 561) && GetMerchantID() > 0) { vis_packet->setDataByName("guild", ""); }