少年修仙传客户端代码仓库
Client_PangDeRong
2018-08-17 5c6ce9e0d68f1b8f9b9f3bd0380a3bc2260ede48
[2588]寻宝增加请求超时处理,防止卡死在界面
3个文件已修改
68 ■■■■ 已修改文件
System/HappyXB/BestXBWin.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/HappyXBModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/RuneXBWin.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/BestXBWin.cs
@@ -54,6 +54,7 @@
        HappyXBModel XBModel { get { return ModelCenter.Instance.GetModel<HappyXBModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        XBFuncSet funcSet;
        float coolTime = 3;
        protected override void BindController()
        {
@@ -99,6 +100,7 @@
            XBModel.RefreshXBResultAct += RefreshXBResult;
            playerPack.RefreshItemCountAct += RefreshItemCount;
            getItemlist = XBModel.GetXBGetItemByID(1).Values.ToList();
            GlobalTimeEvent.Instance.secondEvent += RefreshSecond;
            isHaveFreeTime = XBModel.IsHaveFreeXBTime(1);
            InitUI();
            TimeDownMgr.CoolTimeData data;
@@ -125,10 +127,30 @@
            XBModel.RefreshXBTypeInfoAct -= RefreshXBTypeInfo;
            XBModel.RefreshAgainXBAct -= RefreshAgainXB;
            playerPack.RefreshItemCountAct -= RefreshItemCount;
            GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
        }
        protected override void OnAfterClose()
        {
        }
        private void RefreshSecond()
        {
            if(XBModel.isXBCoolTime)
            {
                coolTime -= 1;
                if(coolTime < 0)
                {
                    XBModel.isXBCoolTime = false;
                    ResetXBItemState();
                    coolTime = 3;
                    DebugEx.Log("请求超时服务端未回包");
                }
            }
            else
            {
                coolTime = 3;
            }
        }
        private void InitUI()
@@ -383,7 +405,8 @@
                {
                    if (index == xbResultItemBasiclist.Count - 1)
                    {
                        RestXBItemState();
                        ResetXBItemState();
                        WindowCenter.Instance.Open<HappyXBGetItemWin>();
                    }
                });
                if (xbResultItemBasiclist[index].itemConfig != null)
@@ -465,7 +488,8 @@
                }
                else
                {
                    RestXBItemState();
                    ResetXBItemState();
                    WindowCenter.Instance.Open<HappyXBGetItemWin>();
                }
            }
            else
@@ -475,7 +499,7 @@
            }
        }
        private void RestXBItemState()
        private void ResetXBItemState()
        {
            luckDesObj.SetActive(true);
            maskObj.SetActive(false);
@@ -484,8 +508,6 @@
            {
                xbItemlist[i].RefreshSelectIcon(0);
            }
            WindowCenter.Instance.Open<HappyXBGetItemWin>();
        }
    }
}
System/HappyXB/HappyXBModel.cs
@@ -26,6 +26,7 @@
        public static string HAPPYXBITEMKEY;
        public List<ArrayList> XBNotifyParms = new List<ArrayList>();
        public bool isXBCoolTime { get; set; }
        public override void Init()
        {
@@ -63,6 +64,7 @@
        public void OnBeforePlayerDataInitialize()
        {
            isXBCoolTime = false;
            XBNotifyParms.Clear();
            xbTypeInfoDict.Clear();
        }
@@ -326,6 +328,7 @@
                }
            }
            SetXBResultRecord();
            isXBCoolTime = false;
            if (RefreshXBResultAct != null)
            {
                RefreshXBResultAct();
@@ -476,6 +479,7 @@
        /// <param name="index"></param>
        public void SendXBQuest(int type,int index,int costType)
        {
            isXBCoolTime = true;
            CA568_tagCMRequestTreasure treasure = new CA568_tagCMRequestTreasure();
            treasure.TreasureType = (byte)type;
            treasure.TreasureIndex = (byte)index;
System/HappyXB/RuneXBWin.cs
@@ -56,6 +56,7 @@
        HappyXBModel XBModel { get { return ModelCenter.Instance.GetModel<HappyXBModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        XBFuncSet funcSet;
        float coolTime = 3;
        protected override void BindController()
        {
            xbItemlist.Clear();
@@ -106,6 +107,7 @@
            XBModel.RefreshRuneXBTimeAct += RefreshFreeTime;
            XBModel.RefreshXBTypeInfoAct += RefreshXBTypeInfo;
            XBModel.RefreshXBResultAct += RefreshXBResult;
            GlobalTimeEvent.Instance.secondEvent += RefreshSecond;
            getItemlist = XBModel.GetXBGetItemByID(2).Values.ToList();
            isHaveFreeTime = XBModel.IsHaveFreeXBTime(2);
            InitUI();
@@ -133,10 +135,30 @@
            XBModel.RefreshXBResultAct -= RefreshXBResult;
            XBModel.RefreshXBTypeInfoAct -= RefreshXBTypeInfo;
            playerPack.RefreshItemCountAct -= RefreshItemCount;
            GlobalTimeEvent.Instance.secondEvent -= RefreshSecond;
        }
        protected override void OnAfterClose()
        {
        }
        private void RefreshSecond()
        {
            if (XBModel.isXBCoolTime)
            {
                coolTime -= 1;
                if (coolTime < 0)
                {
                    XBModel.isXBCoolTime = false;
                    ResetXBItemState();
                    coolTime = 3;
                    DebugEx.Log("请求超时服务端未回包");
                }
            }
            else
            {
                coolTime = 3;
            }
        }
        private void InitUI()
@@ -387,7 +409,8 @@
                {
                    if (index == xbResultItemBasiclist.Count - 1)
                    {
                        RestXBItemState();
                        ResetXBItemState();
                        WindowCenter.Instance.Open<HappyXBGetItemWin>();
                    }
                }); ;
                if(xbResultItemBasiclist[index].itemConfig != null)
@@ -467,7 +490,8 @@
                }
                else
                {
                    RestXBItemState();
                    ResetXBItemState();
                    WindowCenter.Instance.Open<HappyXBGetItemWin>();
                }
            }
            else
@@ -477,7 +501,7 @@
            }
        }
        private void RestXBItemState()
        private void ResetXBItemState()
        {
            luckDesObj.SetActive(true);
            maskObj.SetActive(false);
@@ -486,8 +510,6 @@
            {
                xbItemlist[i].RefreshSelectIcon(0);
            }
            WindowCenter.Instance.Open<HappyXBGetItemWin>();
        }
    }
}