From b40605ecf3ed374f208d985c4c141a4b01b1fdf1 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 10 十月 2018 20:48:15 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/DailyQuest/DailyQuestData.cs |   46 ++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 42 insertions(+), 4 deletions(-)

diff --git a/System/DailyQuest/DailyQuestData.cs b/System/DailyQuest/DailyQuestData.cs
index 3da5b1e..8b45358 100644
--- a/System/DailyQuest/DailyQuestData.cs
+++ b/System/DailyQuest/DailyQuestData.cs
@@ -291,7 +291,7 @@
                 for (int i = 0; i < hourMinutes.Count; i++)
                 {
                     var hourMinute = hourMinutes[i];
-                    if (hour <= hourMinute.hourEnd && minute <= hourMinute.minuteEnd)
+                    if (hour < hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute <= hourMinute.minuteEnd))
                     {
                         _hourMinute = hourMinute;
                         break;
@@ -322,7 +322,7 @@
             for (int i = 0; i < hourMinutes.Count; i++)
             {
                 var hourMinute = hourMinutes[i];
-                if (hour <= hourMinute.hourEnd && minute <= hourMinute.minuteEnd)
+                if (hour < hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute <= hourMinute.minuteEnd))
                 {
                     _hourMinute = hourMinute;
                     break;
@@ -343,7 +343,26 @@
         var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
         var dayIndex = TimeUtility.OpenDay + 1;
         var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
-        for (int i = dayIndex; i <= maxDays; i++)
+        var startDay = dayIndex;
+        var createRoleTime = TimeUtility.createRoleTime;
+        if (dayIndex == 1 && specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
+        {
+            var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
+            if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
+                && createRoleTime.Day == openServerDay.Day)
+            {
+                var hourMinutes = specialOpenTimes[openDayWeek][1];
+                var hourMinute = hourMinutes[hourMinutes.Count - 1];
+                var hour = createRoleTime.Hour;
+                var minute = createRoleTime.Minute;
+                if (hour > hourMinute.hourEnd ||
+                    (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd))
+                {
+                    startDay++;
+                }
+            }
+        }
+        for (int i = startDay; i <= maxDays; i++)
         {
             if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
             {
@@ -370,7 +389,26 @@
         var openDayWeek = (int)TimeUtility.openServerDayOfWeek;
         var dayIndex = TimeUtility.OpenDay + 1;
         var maxDays = 15 - openDayWeek == 0 ? 7 : openDayWeek;
-        for (int i = 1; i <= maxDays; i++)
+        var startDay = 1;
+        var createRoleTime = TimeUtility.createRoleTime;
+        if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(1))
+        {
+            var openServerDay = TimeUtility.ServerNow.AddTicks(-TimeUtility.OpenDay * TimeSpan.TicksPerDay);
+            if (createRoleTime.Year == openServerDay.Year && createRoleTime.Month == openServerDay.Month
+                && createRoleTime.Day == openServerDay.Day)
+            {
+                var hourMinutes = specialOpenTimes[openDayWeek][1];
+                var hourMinute = hourMinutes[hourMinutes.Count - 1];
+                var hour = createRoleTime.Hour;
+                var minute = createRoleTime.Minute;
+                if (hour > hourMinute.hourEnd ||
+                    (hour == hourMinute.hourEnd && minute >= hourMinute.minuteEnd))
+                {
+                    startDay = 2;
+                }
+            }
+        }
+        for (int i = startDay; i <= maxDays; i++)
         {
             if (specialOpenTimes.ContainsKey(openDayWeek) && specialOpenTimes[openDayWeek].ContainsKey(dayIndex))
             {

--
Gitblit v1.8.0