From a2c5b957715dd684e48108e16784b2080cdb4952 Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期五, 04 一月 2019 17:28:17 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs |   46 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
index 01e1250..a450329 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerOneVsOneModel.cs
@@ -35,7 +35,7 @@
         public DateTime matchStartTime { get; set; }
         public DateTime roundEndTime { get; private set; }
         StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
-
+        public string LocalSaveThirdTypeKey = string.Empty;
         public override void Init()
         {
             IsMatching = false;
@@ -45,6 +45,8 @@
 
         public void OnBeforePlayerDataInitialize()
         {
+            storeModel.RefreshBuyShopLimitEvent -= UpdateBuyShop;
+            TimeUtility.OnServerOpenDayRefresh -= UpdateServerOpenDay;
             PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerData;
             CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo;
             CrossServerOneVsOnePKSeason.Instance.updateSelfSeasonEvent -= UpdateSeason;
@@ -59,6 +61,7 @@
         {
             int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
             PkResultLocalSaveKey = StringUtility.Contact("PkResultLocalSaveKey", playerId);
+            LocalSaveThirdTypeKey = StringUtility.Contact("HonorStoreThirdType",playerId);
             GetLocalSaveData();
         }
 
@@ -69,6 +72,8 @@
 
         public void OnPlayerLoginOk()
         {
+            storeModel.RefreshBuyShopLimitEvent += UpdateBuyShop;
+            TimeUtility.OnServerOpenDayRefresh += UpdateServerOpenDay;
             PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerData;
             CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo;
             CrossServerOneVsOnePKSeason.Instance.updateSelfSeasonEvent += UpdateSeason;
@@ -76,6 +81,7 @@
             rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState;
             CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState;
             dungeonModel.updateMissionEvent += UpdateFBHelp;
+            UpdateServerOpenDay();
             UpdateDayAwardState();
             if(IsMatching && CrossServerOneVsOnePKSeason.Instance.InOpenTime())
             {
@@ -146,6 +152,14 @@
             UpdateCanBuyRedpoint();
         }
 
+        private void UpdateBuyShop()
+        {
+            var pkSeason = CrossServerOneVsOnePKSeason.Instance;
+            if (!pkSeason.IsEnterCrossServer()) return;
+
+            UpdateCanBuyRedpoint();
+        }
+
         private void UpdatePlayerInfo()
         {
             UpdateCrossDayAwardsRedpoint();
@@ -211,6 +225,32 @@
             if (x.CompareTo(y) != 0) return x.CompareTo(y);
 
             return 0;
+        }
+
+        public bool IsNewDay { get; private set;}
+        private void UpdateServerOpenDay()
+        {
+            var pkSeason = CrossServerOneVsOnePKSeason.Instance;
+            if (!pkSeason.IsEnterCrossServer()) return;
+
+            IsNewDay = false;
+            int openDay = TimeUtility.OpenDay;
+            if(!PlayerPrefs.HasKey(LocalSaveThirdTypeKey))
+            {
+                IsNewDay = true;
+                LocalSave.SetInt(LocalSaveThirdTypeKey,openDay);
+            }
+            else
+            {
+                int localOpenDay = LocalSave.GetInt(LocalSaveThirdTypeKey);
+                if(openDay != localOpenDay)
+                {
+                    IsNewDay = true;
+                    LocalSave.SetInt(LocalSaveThirdTypeKey, openDay);
+                }
+            }
+
+            UpdateCanBuyRedpoint();
         }
 
         #region 琛ㄦ暟鎹�
@@ -577,6 +617,7 @@
         }
 
         #region 鑽h獕鍟嗗簵绾㈢偣
+     
         public const int CrossHonorStoreRedKey = 2130104;
         public Redpoint crossHonorStoreRedpoint = new Redpoint(CrossOneVsOneRedKey, CrossHonorStoreRedKey);
         private Dictionary<int, Redpoint> honorRedpointDict = new Dictionary<int, Redpoint>();
@@ -637,7 +678,7 @@
                         honorRedpointDict[storeConfig.ID].state = RedPointState.None;
                         if (!storeModel.TryGetIsSellOut(storeConfig, out remainNum))
                         {
-                            if(!PlayerPrefs.HasKey(key))
+                            if(!PlayerPrefs.HasKey(key)|| IsNewDay)
                             {
                                 if (UIHelper.GetMoneyCnt(storeConfig.MoneyType) >= (ulong)storeConfig.MoneyNumber)
                                 {
@@ -679,6 +720,7 @@
 
         public void ClearRedpoint(int shopId)
         {
+            IsNewDay = false;
             string record = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", shopId);
             if(honorRedpointDict[shopId].state != RedPointState.None)
             {

--
Gitblit v1.8.0