少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-07 9c97cf8a1b348cb1786ea86b3b402af8f69b2b3b
3243  【开发】开服限时活动定制
4个文件已修改
84 ■■■■■ 已修改文件
Core/NetworkPackage/ServerPack/HA0_Sys/HA005_tagOpenServerDay.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestData.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/TimeUtility.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | 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();