From 4c4eeb432666df3353baabe5fdacea99dbddc7b3 Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期三, 16 一月 2019 23:49:23 +0800
Subject: [PATCH] 3335  玩家升级性能优化

---
 System/Store/StoreModel.cs |   35 +++++++++++++++++++++++++++--------
 1 files changed, 27 insertions(+), 8 deletions(-)

diff --git a/System/Store/StoreModel.cs b/System/Store/StoreModel.cs
index fe3615d..083e955 100644
--- a/System/Store/StoreModel.cs
+++ b/System/Store/StoreModel.cs
@@ -53,6 +53,7 @@
             return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>());
         }
     }
+    private bool isUpdatePlayerLv;
 
     public override void Init()
     {
@@ -72,6 +73,7 @@
 
     public void OnBeforePlayerDataInitialize()
     {
+        isUpdatePlayerLv = false;
         IsMustBuyDay = false;
         isLogin = true;
         ClearJumpModel();
@@ -81,8 +83,9 @@
         WindowCenter.Instance.windowAfterCloseEvent -= windowAfterClose;
         PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= RefreshServerHour;
         PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= RefreshFamilyLv;
-        RefreshTCBPlayerDataEvent -= RefreshPlayerLv;
+        RefreshTCBPlayerDataEvent -= RefreshPlayerData;
         TimeMgr.Instance.OnHourEvent -= RefreshServerHour;
+        GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
         NewBieCenter.Instance.guideBeginEvent -= GuidBegin;
         playerPack.RefreshItemCountAct -= UpdateFairyEquip;
         shopItemlimitDict.Clear();
@@ -106,8 +109,9 @@
         PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += RefreshFamilyLv;
         PlayerDatas.Instance.fairyData.OnRefreshFairyMine += RefreshServerHour;
         FuncOpen.Instance.OnFuncStateChangeEvent += FuncStateChange;
-        RefreshTCBPlayerDataEvent += RefreshPlayerLv;
+        RefreshTCBPlayerDataEvent += RefreshPlayerData;
         TimeMgr.Instance.OnHourEvent += RefreshServerHour;
+        GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
         StageManager.Instance.onStageLoadFinish += OnStageLoadFinish;
         WindowCenter.Instance.windowAfterOpenEvent += windowAfterOpen;
         WindowCenter.Instance.windowAfterCloseEvent += windowAfterClose;
@@ -615,16 +619,31 @@
         return remainSecond;
     }
 
-    private void RefreshPlayerLv(PlayerDataRefresh type)
+
+    private void UpdateSecond()
+    {
+        if(isUpdatePlayerLv)
+        {
+            UpdatePlayerLv();
+            isUpdatePlayerLv = false;
+        }
+    }
+
+    private void UpdatePlayerLv()
+    {
+        UpdateShowStore();
+        UpdateFreeShopRedpoint();
+        UpdateCanBuyRedpoint();
+        UpdateMustBuyRedpoint();
+        UpdatePetAndMountPutAwayRedpoint();
+    }
+
+    private void RefreshPlayerData(PlayerDataRefresh type)
     {
         switch(type)
         {
             case PlayerDataRefresh.LV:
-                UpdateShowStore();
-                UpdateFreeShopRedpoint();
-                UpdateCanBuyRedpoint();
-                UpdateMustBuyRedpoint();
-                UpdatePetAndMountPutAwayRedpoint();
+                isUpdatePlayerLv = true;
                 break;
             case PlayerDataRefresh.VIPLv:
             case PlayerDataRefresh.Gold:

--
Gitblit v1.8.0