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 +++++++++--
System/Compose/New/ComposeWinModel.cs | 24 ++++++-
System/KnapSack/New/RoleEquipWin.cs | 37 +++++++++---
System/KnapSack/Logic/PlayerPackModels.cs | 27 ++++++--
4 files changed, 92 insertions(+), 31 deletions(-)
diff --git a/System/Compose/New/ComposeWinModel.cs b/System/Compose/New/ComposeWinModel.cs
index 73153e0..23f42f2 100644
--- a/System/Compose/New/ComposeWinModel.cs
+++ b/System/Compose/New/ComposeWinModel.cs
@@ -31,7 +31,7 @@
{
get { return _itemPathModel ?? (_itemPathModel = ModelCenter.Instance.GetModel<GetItemPathModel>()); }
}
-
+ private bool isUpdatePlayerLv;
public override void Init()
{
ParseFuncConfig();
@@ -46,15 +46,19 @@
public void OnBeforePlayerDataInitialize()
{
+ isUpdatePlayerLv = false;
secondType = 0;
thirdType = 0;
+ GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
+ playerPack.RefreshItemCountAct -= OnItemCntRefresh;
+ PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerLvUpdate;
+
}
public void OnPlayerLoginOk()
{
- playerPack.RefreshItemCountAct -= OnItemCntRefresh;
+ GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
playerPack.RefreshItemCountAct += OnItemCntRefresh;
- PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= PlayerLvUpdate;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent += PlayerLvUpdate;
UpdateComposeDataByLevel();
RefreshComposeRed();
@@ -68,12 +72,22 @@
}
}
+
+ private void UpdateSecond()
+ {
+ if(isUpdatePlayerLv)
+ {
+ UpdateComposeDataByLevel();
+ RefreshComposeRed();
+ isUpdatePlayerLv = false;
+ }
+ }
+
private void PlayerLvUpdate(PlayerDataRefresh type)
{
if (type != PlayerDataRefresh.LV) return;
- UpdateComposeDataByLevel();
- RefreshComposeRed();
+ isUpdatePlayerLv = true;
}
#region 瑙f瀽鏈湴鏁版嵁
diff --git a/System/KnapSack/Logic/PlayerPackModels.cs b/System/KnapSack/Logic/PlayerPackModels.cs
index e4026b3..ef5a7fc 100644
--- a/System/KnapSack/Logic/PlayerPackModels.cs
+++ b/System/KnapSack/Logic/PlayerPackModels.cs
@@ -26,7 +26,7 @@
BlastFurnaceModel FurnaceModel { get { return ModelCenter.Instance.GetModel<BlastFurnaceModel>(); } }
public List<int> LocalSavePlaceArray { get; private set; }
public Dictionary<int, List<int>> ShareUseCntItemDict { get; private set;}
-
+ private bool isUpdatePlayerLv = false;
public override void Init()
{
ParseConfig();
@@ -107,6 +107,7 @@
public void OnBeforePlayerDataInitialize()
{
+ GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerLv;
LocalSave.DeleteKey(RecordKnapsackTitle);
cacheMapId = 0;
@@ -146,9 +147,9 @@
{
LocalSavePlaceArray = null;
}
-
+ GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerLv;
- UpdatePlayerLv(PlayerDataRefresh.LV);
+ isUpdatePlayerLv = true;
}
public override void UnInit()
@@ -699,14 +700,24 @@
return 0;
}
+ private void UpdateSecond()
+ {
+ if(isUpdatePlayerLv)
+ {
+ for (int i = 1; i < 13; i++)
+ {
+ CheckRoleEquipByPlace((RoleEquipType)i);
+ }
+ UpdateRoleEquipRed();
+ isUpdatePlayerLv = false;
+ }
+ }
+
private void UpdatePlayerLv(PlayerDataRefresh type)
{
if (type != PlayerDataRefresh.LV) return;
- for (int i = 1; i < 13; i++)
- {
- CheckRoleEquipByPlace((RoleEquipType)i);
- }
- UpdateRoleEquipRed();
+
+ isUpdatePlayerLv = true;
}
public bool IsShowAddEquipByPlace(int equipPlace)
diff --git a/System/KnapSack/New/RoleEquipWin.cs b/System/KnapSack/New/RoleEquipWin.cs
index 7f18be5..eb662ae 100644
--- a/System/KnapSack/New/RoleEquipWin.cs
+++ b/System/KnapSack/New/RoleEquipWin.cs
@@ -64,7 +64,7 @@
{
get { return _modelInterface ?? (_modelInterface = ModelCenter.Instance.GetModel<PackModelInterface>()); }
}
-
+ private bool isUpdatePlayerLv;
protected override void BindController()
{
_oneKeySellBtn.onClick.AddListener(OnClickOneKeySell);
@@ -78,14 +78,14 @@
protected override void OnPreOpen()
{
+ isUpdatePlayerLv = false;
UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job);
playerPack.RefreshAttrActiveAct += ControlEffect;
playerPack.ItemCntAddAct += PutOnEquip;
playerPack.ItemCntReduceAct += PutOffEquip;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent += UpdatePlayerLv;
- PlayerDatas.Instance.RefreshPlayerInfoEvent += OnFrenshBagInfo;
WindowCenter.Instance.windowBeforeCloseEvent += BeforeWindowClose;
-
+ GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
TimeDownMgr.CoolTimeData data;
if (TimeDownMgr.Instance.Get(TimeDownMgr.CoolTimeType.BagSort, out data))
{
@@ -105,7 +105,6 @@
UIEventTrigger.Get(_equipIntensifyBtn.gameObject).OnDown = OnClickEquipIntensify;
OnFrenshBagInfo();
}
-
private void BeforeWindowClose(Window window)
{
if (typeof(PetMatInfoWin).Name != window.name && typeof(ItemInfoWin).Name != window.name) return;
@@ -130,9 +129,9 @@
protected override void OnPreClose()
{
+ GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
playerPack.ItemCntAddAct -= PutOnEquip;
playerPack.ItemCntReduceAct -= PutOffEquip;
- PlayerDatas.Instance.RefreshPlayerInfoEvent -= OnFrenshBagInfo;
WindowCenter.Instance.windowBeforeCloseEvent -= BeforeWindowClose;
PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= UpdatePlayerLv;
UI3DModelExhibition.Instance.StopShow();
@@ -143,6 +142,18 @@
}
+
+ private void UpdateSecond()
+ {
+ if (isUpdatePlayerLv)
+ {
+ for (int i = 1; i < 13; i++)
+ {
+ UpdateRoleEquip(i);
+ }
+ isUpdatePlayerLv = false;
+ }
+ }
private void ControlEffect(int type, bool isActive)
{
@@ -185,6 +196,7 @@
UI3DModelExhibition.Instance.ShowPlayer(RoleShowBG, PlayerDatas.Instance.baseData.Job);
}
+
public void PutOnEquip(PackType type,int index, int Id)
{
//涓存椂鏉′欢鍒ゆ柇
@@ -202,12 +214,17 @@
private void UpdatePlayerLv(PlayerDataRefresh type)
{
- if (type != PlayerDataRefresh.LV) return;
-
-
- for (int i = 1; i < 13; i++)
+ switch (type)
{
- UpdateRoleEquip(i);
+ case PlayerDataRefresh.LV:
+ isUpdatePlayerLv = true;
+ break;
+ case PlayerDataRefresh.Gold:
+ case PlayerDataRefresh.GoldPaper:
+ case PlayerDataRefresh.Silver:
+ case PlayerDataRefresh.ExAttr6:
+ OnFrenshBagInfo();
+ break;
}
}
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