diff --git a/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs b/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs index 9901f26d..f572065e 100644 --- a/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs +++ b/GameServer/Server/Packet/Recv/MarkChest/HandlerUpdateMarkChestCsReq.cs @@ -26,6 +26,14 @@ public class HandlerUpdateMarkChestCsReq : Handler }); } + foreach (var chestData in (player.SceneData!.MarkedChestData.GetValueOrDefault((int)req.FuncId) ?? []).Where(chestData => markedChestData.All(x => + !(x.ConfigId == chestData.ConfigId && x.FloorId == chestData.FloorId && + x.GroupId == chestData.GroupId)))) + { + // Add the existing marked chest data if it is not in the new marked chest data + markedChestData.Add(chestData); + } + player.SceneData!.MarkedChestData[(int)req.FuncId] = markedChestData; await connection.SendPacket(new PacketUpdateMarkChestScRsp(req.FuncId, player));