| Core/NetworkPackage/ServerPack/HA0_Sys/HA005_tagOpenServerDay.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DailyQuest/DailyQuestData.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/DailyQuest/DailyQuestModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Utility/TimeUtility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/NetworkPackage/ServerPack/HA0_Sys/HA005_tagOpenServerDay.cs
@@ -1,21 +1,26 @@ using UnityEngine; using System.Collections; //A0 05 同步开服天数 #tagOpenServerDay public class HA005_tagOpenServerDay : GameNetPackBasic { public ushort Day; // 已开服天数,从0开始 public byte IsMixServer; //是否是合服服务器 public ushort MixDay; // 已合服天数,从0开始 public HA005_tagOpenServerDay () { _cmd = (ushort)0xA005; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out Day, vBytes, NetDataType.WORD); TransBytes (out IsMixServer, vBytes, NetDataType.BYTE); TransBytes (out MixDay, vBytes, NetDataType.WORD); } } //A0 05 同步开服天数 #tagOpenServerDay public class HA005_tagOpenServerDay : GameNetPackBasic { public ushort Day; // 已开服天数,从0开始 public byte IsMixServer; //是否是合服服务器 public ushort MixDay; // 已合服天数,从0开始 public string OpenServerTime; //开服时间yyyy-MM-dd HH:mm:ss public HA005_tagOpenServerDay() { _cmd = (ushort)0xA005; } public override void ReadFromBytes(byte[] vBytes) { TransBytes(out Day, vBytes, NetDataType.WORD); TransBytes(out IsMixServer, vBytes, NetDataType.BYTE); TransBytes(out MixDay, vBytes, NetDataType.WORD); TransBytes(out OpenServerTime, vBytes, NetDataType.Chars, 19); } } System/DailyQuest/DailyQuestData.cs
@@ -214,7 +214,7 @@ } var isSpecificDay = TimeUtility.OpenWeekCnt <= 1; var openDayWeek = (int)(TimeUtility.ServerNow - new TimeSpan(TimeUtility.OpenDay * TimeSpan.TicksPerDay)).DayOfWeek; var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek; var dayIndex = TimeUtility.OpenDay + 1; if (isSpecificDay && specificOpenTimes.ContainsKey(openDayWeek) && specificOpenTimes.ContainsKey(dayIndex)) { @@ -256,7 +256,7 @@ public bool TryGetTodayNearestOpenTime(out HourMinute _hourMinute) { var isSpecificDay = TimeUtility.OpenWeekCnt <= 1; var openDayWeek = (int)(TimeUtility.ServerNow - new TimeSpan(TimeUtility.OpenDay * TimeSpan.TicksPerDay)).DayOfWeek; var openDayWeek = (int)TimeUtility.openServerTime.DayOfWeek; var dayIndex = TimeUtility.OpenDay + 1; if (isSpecificDay && specificOpenTimes.ContainsKey(openDayWeek) && specificOpenTimes.ContainsKey(dayIndex)) { @@ -302,6 +302,23 @@ return true; } } public bool ContainTimeNode(int week, int timeNode) { var hourMinutes = GetHourMinuteByWeek(week); if (hourMinutes != null) { foreach (var item in hourMinutes) { if (item.hourBegin * 60 + item.minuteBegin == timeNode) { return true; } } } return false; } public string ToOpenTimeString() @@ -451,7 +468,6 @@ { return StringUtility.Contact(hourBegin, ":", minuteBegin); } } public static int Compare(HourMinute _lhs, HourMinute _rhs) System/DailyQuest/DailyQuestModel.cs
@@ -451,22 +451,16 @@ public List<int> GetQuestByWeekTimeNode(int _week, int _timeNode) { if (questCalendar.ContainsKey(_week)) var quests = new List<int>(); foreach (var item in dailyQuestOpenTimes.Values) { var timeNodeToQuests = questCalendar[_week]; if (timeNodeToQuests.ContainsKey(_timeNode)) if (item.ContainTimeNode(_week, _timeNode)) { return questCalendar[_week][_timeNode]; } else { return null; quests.Add(item.id); } } else { return null; } return quests; } /// <summary> Utility/TimeUtility.cs
@@ -95,6 +95,8 @@ get; private set; } public static DateTime openServerTime; public static int OpenWeekCnt { get @@ -151,6 +153,7 @@ OpenDay = package.Day; IsMixServer = package.IsMixServer == 1; MixOpenDay = package.MixDay; DateTime.TryParse(package.OpenServerTime, out openServerTime); if (OnServerOpenDayRefresh != null) { OnServerOpenDayRefresh();