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 +++++++++++++++++++++--
 System/Treasure/UI3DTreasureSelectStage.cs |   30 ++++++++++----
 System/Rank/RankPanel.cs                   |    4 ++
 System/FairyAu/FairyGrabBossModel.cs       |   14 +++++++
 4 files changed, 81 insertions(+), 13 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))
             {
diff --git a/System/FairyAu/FairyGrabBossModel.cs b/System/FairyAu/FairyGrabBossModel.cs
index 170bae3..2450ebb 100644
--- a/System/FairyAu/FairyGrabBossModel.cs
+++ b/System/FairyAu/FairyGrabBossModel.cs
@@ -107,6 +107,7 @@
             SysNotifyMgr.Instance.sysNotifyEvent += SystemNotifyEvent;
             GlobalTimeEvent.Instance.secondEvent += SecondEvent;
             TimeMgr.Instance.OnMinuteEvent += MinuteEvent;
+            TimeUtility.OnServerOpenDayRefresh += OnServerOpenDayRefresh;
             OpenServerActivityCenter.Instance.Register(13, this);
         }
 
@@ -135,6 +136,19 @@
             SysNotifyMgr.Instance.sysNotifyEvent -= SystemNotifyEvent;
             GlobalTimeEvent.Instance.secondEvent -= SecondEvent;
             TimeMgr.Instance.OnMinuteEvent -= MinuteEvent;
+            TimeUtility.OnServerOpenDayRefresh -= OnServerOpenDayRefresh;
+        }
+
+        private void OnServerOpenDayRefresh()
+        {
+            if (cacheNoticeOpen != IsOpen)
+            {
+                cacheNoticeOpen = !cacheNoticeOpen;
+                if (onStateUpate != null)
+                {
+                    onStateUpate((int)OpenServerActivityCenter.OSActivityType.FairyGrabBossNotice);
+                }
+            }
         }
 
         private void MinuteEvent()
diff --git a/System/Rank/RankPanel.cs b/System/Rank/RankPanel.cs
index a062ae9..1121846 100644
--- a/System/Rank/RankPanel.cs
+++ b/System/Rank/RankPanel.cs
@@ -278,6 +278,10 @@
         private void OnRankListClick(CellView cell)
         {
             int index = cell.index;
+            if (model.rankList == null)
+            {
+                return;
+            }
             if (index < model.rankList.Count)
             {
                 if (model.rankList[index].ID == PlayerDatas.Instance.baseData.PlayerID)
diff --git a/System/Treasure/UI3DTreasureSelectStage.cs b/System/Treasure/UI3DTreasureSelectStage.cs
index 2ac024b..00ea3a4 100644
--- a/System/Treasure/UI3DTreasureSelectStage.cs
+++ b/System/Treasure/UI3DTreasureSelectStage.cs
@@ -219,6 +219,7 @@
         private Dictionary<TreasureCategory, List<TreasureComponent>> m_Treasures = new Dictionary<TreasureCategory, List<TreasureComponent>>();
         private Dictionary<TreasureCategory, bool> m_PreloadDict = new Dictionary<TreasureCategory, bool>();
 
+        Coroutine preloadCoroutine = null;
         private void InitTreasure()
         {
             Load(TreasureCategory.Human);
@@ -417,6 +418,12 @@
             HideAllTreasure();
             InitScene();
 
+            if (preloadCoroutine != null)
+            {
+                StopCoroutine(preloadCoroutine);
+                preloadCoroutine = null;
+            }
+
             if (!m_PreloadDict.ContainsKey(currentCategory) && !_closer)
             {
                 Preloading = true;
@@ -424,15 +431,16 @@
                 current_angle = 0;
                 before_angle = 0;
                 before_drag_angle = current_angle;
-                StartCoroutine(Co_PreLoad(currentCategory, () =>
-                {
-                    if (!m_PreloadDict.ContainsKey(currentCategory))
-                    {
-                        m_PreloadDict.Add(currentCategory, true);
-                    }
-                    GoTreasureFromHeader(_index);
-                    Preloading = false;
-                }));
+                preloadCoroutine = StartCoroutine(Co_PreLoad(currentCategory, () =>
+                  {
+                      if (!m_PreloadDict.ContainsKey(currentCategory))
+                      {
+                          m_PreloadDict.Add(currentCategory, true);
+                      }
+                      GoTreasureFromHeader(_index);
+                      Preloading = false;
+                      preloadCoroutine = null;
+                  }));
             }
             else
             {
@@ -596,6 +604,10 @@
         public void Goto(int _index, bool _force = false)
         {
             var _list = m_Treasures[currentCategory];
+            if (_index < 0 || _index >= _list.Count)
+            {
+                _index = 0;
+            }
             jumpTreasure = _list[_index].treasureId;
             if (!_force && _index == presentSelectIndex)
             {

--
Gitblit v1.8.0