少年修仙传客户端代码仓库
lcy
2024-09-10 258f6c70c9c30fb02c87af71b794844cabe4eaf0
10250 仙宫 修复新晋仙官展示计算逻辑
1个文件已修改
12 ■■■■ 已修改文件
System/CelestialPalace/CelestialPalaceModel.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CelestialPalace/CelestialPalaceModel.cs
@@ -606,18 +606,24 @@
        public bool TryGetRoomNewPlayer(int xgId, out List<uint> newPlayerList)
        {
            newPlayerList = new List<uint>();
            var serverNow = TimeUtility.ServerNow;
            var serverNow = TimeUtility.GetTodayStartTime(); // 获取服务器当前时间的当天0点
            if (!XiangongConfig.Has(xgId) || allPlayerDict == null || !allPlayerDict.TryGetValue(xgId, out var list) || list == null || allPlayerInfoDict == null)
                return false;
            for (int i = 0; i < list.Count; i++)
            {
                if (!allPlayerInfoDict.TryGetValue(list[i], out var celestialPalacePlayer) || celestialPalacePlayer == null)
                    continue;
                uint showTimes = (uint)XiangongConfig.Get(xgId).ShowDays * 24 * 60 * 60;
                var overTime = TimeUtility.GetTime((uint)(celestialPalacePlayer.AddTime + showTimes));
                uint showTimes = (uint)XiangongConfig.Get(xgId).ShowDays;
                // 获取玩家晋升的时间点,并取该天的开始时间(0点)
                var addTime = TimeUtility.GetTime((uint)(celestialPalacePlayer.AddTime));
                var overTime = TimeUtility.GetDayStartTime(addTime.Year, addTime.Month, addTime.Day);
                // 计算展示期的结束时间
                overTime = overTime.AddDays(showTimes);
                // 比较展示期结束时间是否还在当前时间之后
                if (overTime >= serverNow)
                    newPlayerList.Add(list[i]);
            }
            return newPlayerList.Count > 0;
        }