少年修仙传客户端代码仓库
hch
2020-01-31 2bb0f9f654006d17df8e7bde8dfead183b922f60
0312 改成判断日常活动ID不在定制中配置则定制期间正常开启
2个文件已修改
78 ■■■■■ 已修改文件
System/DailyQuest/DailyQuestData.cs 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestData.cs
@@ -74,8 +74,10 @@
        this.id = _id;
    }
    public void ParseQuestNormalOpenTime(string timeString, int duration)
    public void ParseQuestNormalOpenTime(DailyQuestOpenTimeConfig activityOpenTime)
    {
        string timeString = activityOpenTime.OpenTime;
        int duration = activityOpenTime.Duration;
        var matches = Regex.Matches(timeString, "\\\"[0-9]\\\":\\[[0-9|,|\\[|\\]]+");
        always = matches.Count == 0;
@@ -180,6 +182,7 @@
            {
                hourMinutes.Add(new HourMinute(matches[i].Value, duration));
            }
        }
    }
@@ -253,6 +256,7 @@
            var hourMinutes = dayIndexOpenTimes[dayIndex];
            hourMinutes.Add(new HourMinute(config.StartHour, config.StartMinute, config.EndHour, config.EndMinute));
        }
    }
@@ -290,6 +294,8 @@
        return true;
    }
    // 改成判断日常活动ID不在定制中配置则定制期间正常开启
    public bool InOpenTime()
    {
        if (always)
@@ -324,7 +330,7 @@
            var isSpecialDay = TimeUtility.OpenWeekCnt <= 1 && (DailyQuestType)id != DailyQuestType.CrossServerPk;
            var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
            var dayIndex = TimeUtility.OpenDay + 1;
            if (isSpecialDay)
            if (isSpecialDay && specialOpenTimes.Count > 0)
            {
                if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
                {
@@ -346,28 +352,35 @@
            }
            else
            {
                var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
                if (!openTimes.ContainsKey(dayOfWeek))
                {
                    return false;
                }
                else
                {
                    var hourMinutes = openTimes[dayOfWeek];
                    for (int i = 0; i < hourMinutes.Count; i++)
                    {
                        if (hourMinutes[i].InOpenTime())
                        {
                            return true;
                        }
                    }
                    return false;
                }
                return IsNormalOpenTime();
            }
        }
    }
    //日常活动开启判断
    private bool IsNormalOpenTime()
    {
        var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
        if (!openTimes.ContainsKey(dayOfWeek))
        {
            return false;
        }
        else
        {
            var hourMinutes = openTimes[dayOfWeek];
            for (int i = 0; i < hourMinutes.Count; i++)
            {
                if (hourMinutes[i].InOpenTime())
                {
                    return true;
                }
            }
            return false;
        }
    }
    public bool TryGetTodayNearestOpenTime(out HourMinute _hourMinute)
    {
@@ -403,7 +416,7 @@
            var isSpecialDay = TimeUtility.OpenWeekCnt <= 1 && (DailyQuestType)id != DailyQuestType.CrossServerPk;
            var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
            var dayIndex = TimeUtility.OpenDay + 1;
            if (isSpecialDay)
            if (isSpecialDay && specialOpenTimes.Count > 0)
            {
                if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
                {
@@ -472,7 +485,7 @@
        {
            List<HourMinute> hourminutes = null;
            var days = dayIndex + i;
            if (IsInMixServerCustomDay(days, out mixDayIndex))
            if (mixServerOpenTimes.Count > 0 && IsInMixServerCustomDay(days, out mixDayIndex))
            {
                if (!mixServerOpenTimes.ContainsKey(mixDayIndex))
                {
@@ -480,7 +493,7 @@
                }
                hourminutes = mixServerOpenTimes[mixDayIndex];
            }
            else if (days <= maxSpecialDays)
            else if (specialOpenTimes.Count > 0 && days <= maxSpecialDays)
            {
                if (!specialOpenTimes.ContainsKey(openDayWeek)
                || !specialOpenTimes[openDayWeek].ContainsKey(days))
@@ -550,7 +563,7 @@
        {
            List<HourMinute> hourminutes = null;
            var days = dayIndex + i;
            if (IsInMixServerCustomDay(days, out mixDayIndex))
            if (mixServerOpenTimes.Count > 0 && IsInMixServerCustomDay(days, out mixDayIndex))
            {
                if (!mixServerOpenTimes.ContainsKey(mixDayIndex))
                {
@@ -558,7 +571,7 @@
                }
                hourminutes = mixServerOpenTimes[mixDayIndex];
            }
            else if (days <= maxSpecialDays)
            else if (specialOpenTimes.Count > 0 && days <= maxSpecialDays)
            {
                if (!specialOpenTimes.ContainsKey(openDayWeek)
                || !specialOpenTimes[openDayWeek].ContainsKey(days))
@@ -609,14 +622,14 @@
        var beginDay = (int)(beginTime - openServerDay).TotalDays + 1;
        List<HourMinute> hourMinutes = null;
        if (IsInMixServerCustomDay(beginDay, out mixDayIndex))
        if (mixServerOpenTimes.Count > 0 && IsInMixServerCustomDay(beginDay, out mixDayIndex))
        {
            if (mixServerOpenTimes.ContainsKey(mixDayIndex))
            {
                hourMinutes = mixServerOpenTimes[mixDayIndex];
            }
        }
        else if (beginDay <= maxSpecialDays)
        else if (specialOpenTimes.Count > 0 && beginDay <= maxSpecialDays)
        {
            if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(beginDay))
            {
@@ -645,14 +658,14 @@
        for (int i = beginDay; i <= dayIndex; i++)
        {
            hourMinutes = null;
            if (IsInMixServerCustomDay(i, out mixDayIndex))
            if (mixServerOpenTimes.Count > 0 && IsInMixServerCustomDay(i, out mixDayIndex))
            {
                if (mixServerOpenTimes.ContainsKey(mixDayIndex))
                {
                    hourMinutes = mixServerOpenTimes[mixDayIndex];
                }
            }
            else if (i <= maxSpecialDays)
            else if (specialOpenTimes.Count > 0 && i <= maxSpecialDays)
            {
                if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(i))
                {
@@ -704,7 +717,7 @@
            var todayWeek = (int)TimeUtility.ServerNow.DayOfWeek;
            todayWeek = todayWeek == 0 ? 7 : todayWeek;
            var targetMixOpenDay = week - todayWeek + TimeUtility.MixOpenDay;
            if (targetMixOpenDay >= 0 && targetMixOpenDay < GeneralDefine.mixServerCustomDays)
            if (mixServerOpenTimes.Count > 0 && targetMixOpenDay >= 0 && targetMixOpenDay < GeneralDefine.mixServerCustomDays)
            {
                mixServerOpenTimes.TryGetValue(targetMixOpenDay + 1, out hourMinutes);
            }
@@ -834,7 +847,7 @@
        else
        {
            var isSpecificDay = TimeUtility.OpenWeekCnt <= 1;
            if (isSpecificDay)
            if (isSpecificDay && specialOpenTimes.Count > 0)
            {
                var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
                var todayWeek = (int)TimeUtility.ServerNow.DayOfWeek;
@@ -912,6 +925,7 @@
        minuteEnd = _minuteEnd;
        wholeDay = hourBegin == 0 && minuteBegin == 0 && hourEnd == 0 && minuteEnd == 0;
    }
    public bool InOpenTime()
System/DailyQuest/DailyQuestModel.cs
@@ -1766,7 +1766,7 @@
                        var activityOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
                        openTime = dailyQuestOpenTimes[config.ID] = new DailyQuestOpenTime(config.ID);
                        openTime.ParseQuestNormalOpenTime(activityOpenTime.OpenTime, activityOpenTime.Duration);
                        openTime.ParseQuestNormalOpenTime(activityOpenTime);
                        openTime.ParseQuestSpecialOpenTimes(DailyQuestSpecialOpenTimeConfig.GetDailyQuestTimes(config.RelatedID));
                        openTime.ParseQuestMixServerOpenTime(DailyQuestMixServerStateTimeConfig.GetDailyQuestTimes(config.RelatedID));
                        dailyActionToDailyQuestTable[config.RelatedID] = config.ID;