少年修仙传客户端代码仓库
client_linchunjie
2019-01-04 e1951576fae6e2dcba2a331f614b47d77156b24f
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
21个文件已修改
466 ■■■■ 已修改文件
Core/GameEngine/DataToCtl/NeverConnectState.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/LoginStage.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GAStaticDefine.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GA_NpcFightNorm.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GActor.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/PrepareHandler.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerOneVsOne/FightingPKWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/FBHelpPointExchageModel.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/BoxInfoWin.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/EquipTip.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/GuardTip.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemInfoWin.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/UnionWarehouseEquipTip.cs 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/WingsTip.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/New/GetWingsPathTips.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/CrossServerLogin.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/CoinTaskTipModel.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Mount/PlayerMountDatas.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/PlayerPetDatas.cs 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreModel.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/NeverConnectState.cs
@@ -1,6 +1,7 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Snxxz.UI;
public class NeverConnectState : NetState
{
@@ -8,6 +9,7 @@
    public override void OnEnter()
    {
        base.OnEnter();
        NetLinkWin.Hide();
    }
    protected override void Update()
Core/GameEngine/Login/LoginStage.cs
@@ -13,8 +13,9 @@
        checkClientTimer = Time.time + 60f;
        checkAssetVersionTimer = Time.time + 70f;
        WindowCenter.Instance.Close<FightingPKWin>();
        WindowCenter.Instance.Open<LaunchBackGroundWin>(true);
        var backGroundWin = WindowCenter.Instance.Get<LaunchBackGroundWin>();
        if (backGroundWin != null)
        {
Fight/GameActor/GAStaticDefine.cs
@@ -257,7 +257,8 @@
    public static void PopHp(GActor caster, GActor target, int attackType, int value)
    {
        if (target == null
         || CameraController.Instance == null)
         || CameraController.Instance == null
         || PlayerDatas.Instance.hero == null)
        {
            return;
        }
@@ -280,6 +281,12 @@
        ///** 闪避 9*/
        //Miss,
        if (attackType == (int)HurtAttackType.Recovery
            && target is GA_Player && target != PlayerDatas.Instance.hero.SelectTarget)
        {
            return;
        }
        // 判断伤血的归属是否为玩家或者玩家的召唤物或者宠物
        //bool _isHurtHero = target.ServerInstID == PlayerDatas.Instance.PlayerId;
        //if (!_isHurtHero)
@@ -295,7 +302,7 @@
         || (attackType == (int)HurtAttackType.Recovery
          && (target.ActorType == GameObjType.gotNPC
          || (PlayerDatas.Instance.hero != null && target == PlayerDatas.Instance.hero.SelectTarget)))// npc和当前选中目标的回血显示
         ||(caster == null && target.ActorInfo.ownerSID == 0))
         || (caster == null && target.ActorInfo.ownerSID == 0))
        {
            // 决定显示的类型
            int _base = (int)PopUpNum.Pattern.PlayerAttack;
Fight/GameActor/GA_NpcFightNorm.cs
@@ -57,7 +57,7 @@
        else
        {
            // 初始化坐标
            AdjustPos(_h0406.PosX, _h0406.PosY, false);
            AdjustPos(_h0406.PosX, _h0406.PosY, NpcConfig.IsBoss > 1);
        }
        GAStaticDefine.NPCLocation _npcLocation;
Fight/GameActor/GActor.cs
@@ -67,7 +67,7 @@
                    //}
                    //Debug.Log(_content);
                //Debug.Log("转向了.......: " + m_Forward);
                    //Debug.Log("转向了.......: " + m_Forward);
                }
            }
        }
@@ -305,7 +305,7 @@
        }
    }
    public void MoveToPosition(Vector3 destPos, float keepDist = 0,bool force = false)
    public void MoveToPosition(Vector3 destPos, float keepDist = 0, bool force = false)
    {
        if (PathFindStatus == E_PathFindStatus.Moving
         && m_SearchType == E_SearchType.Static
@@ -640,20 +640,19 @@
        }
        else
        {
            //Debug.LogErrorFormat("服务端给定坐标: {0} 映射至客户端坐标: {1} 为客户端无法矫正的障碍点...当前地图: {2}",
            //    new Vector2(sPosX, sPosY), new Vector2(_clntPos.x, _clntPos.z), PlayerDatas.Instance.baseData.MapID);
            if (!TryGetValidPos(_clntPos, ref _adjustPos))
            {
                Debug.LogErrorFormat("服务端给定坐标: {0} 映射至客户端坐标: {1} 为客户端无法矫正的障碍点...当前地图: {2}",
                    new Vector2(sPosX, sPosY), new Vector2(_clntPos.x, _clntPos.z), PlayerDatas.Instance.baseData.MapID);
                return;
            }
        }
        float _groundHeight;
        float _groundHeight = Pos.y;
        if (!CollisionUtility.TryGetGroundHeight(_adjustPos, out _groundHeight))
        {
            Debug.LogErrorFormat("服务端给定坐标: {0} 映射至客户端坐标: {1} 客户端无法从此点计算出地板高度...",
                new Vector2(sPosX, sPosY), new Vector2(_clntPos.x, _clntPos.z));
            return;
            Debug.LogErrorFormat("服务端给定坐标: {0} 映射至客户端坐标: {1} 并且矫正后: {2}客户端无法从此点计算出地板高度...",
                new Vector2(sPosX, sPosY), new Vector2(_clntPos.x, _clntPos.y), new Vector2(_adjustPos.x, _adjustPos.z));
        }
        _adjustPos.y = _groundHeight;
Fight/PrepareHandler.cs
@@ -93,6 +93,14 @@
                    _player.Collect();
                }
                if (H0812.PlayerID == PlayerDatas.Instance.PlayerId)
                {
                    if (PlayerDatas.Instance.hero != null)
                    {
                        PlayerDatas.Instance.hero.Behaviour.StopHandupAI(true);
                    }
                }
                break;
            case E_PrepareType.pstCatching:
                break;
System/CrossServerOneVsOne/FightingPKWin.cs
@@ -126,7 +126,7 @@
        }
        protected override void LateUpdate()
        {
            if (PlayerDatas.Instance.hero.aiHandler.IsAuto())
            if (PlayerDatas.Instance.hero!=null && PlayerDatas.Instance.hero.aiHandler.IsAuto())
            {
                m_AutoImg.SetActive(false);
            }
System/KnapSack/FBHelpPointExchageModel.cs
@@ -31,6 +31,7 @@
            currentShopId = 0;
            helpPointShoplist.Clear();
            storeModel.RefreshTCBPlayerDataEvent -= UpdateFBHelpPoint;
            storeModel.RefreshBuyShopLimitEvent -= UpdateBuyShop;
            TimeMgr.Instance.OnDayEvent -= UpdateDay;
        }
@@ -41,6 +42,7 @@
            shopLifeLocalSave = StringUtility.Contact("ShopLifeLocalSave",playerId);
            curDayLocalSave = StringUtility.Contact("CurDayLocalSave",playerId);
            storeModel.RefreshTCBPlayerDataEvent += UpdateFBHelpPoint;
            storeModel.RefreshBuyShopLimitEvent += UpdateBuyShop;
            TimeMgr.Instance.OnDayEvent += UpdateDay;
            GetLocalSaveData();
        }
@@ -119,6 +121,12 @@
            ClearShopDayLocalSave();
        }
        private void UpdateBuyShop()
        {
            UpdateFBHelpPoint(PlayerDataRefresh.FBHelpPoint);
        }
        private void UpdateFBHelpPoint(PlayerDataRefresh type)
        {
            if (type != PlayerDataRefresh.FBHelpPoint 
System/KnapSack/Logic/BoxInfoWin.cs
@@ -180,25 +180,7 @@
            operateBtn.SetActive(false);
            CreateFuncBtn();
            if (itemTipsModel.curAttrData.itemConfig.ExpireTime > 0)
            {
                List<int> itemEffectTime = itemTipsModel.curAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                if (itemEffectTime != null && itemEffectTime[0] != 0 && itemTipsModel.curAttrData.guid != "")
                {
                    RefreshRemainTime(itemTipsModel.curAttrData.guid);
                }
                else
                {
                    SetDateLimitUI(itemTipsModel.curAttrData.itemConfig.ExpireTime);
                }
            }
            else
            {
                dateText.gameObject.SetActive(false);
            }
            RefreshRemainTime(itemTipsModel.curAttrData.guid);
        }
        private void CheckUselimit()
@@ -282,14 +264,12 @@
            {
                return;
            }
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if (cool != null)
            double remainTime = 0;
            bool isRemain = itemTipsModel.curAttrData.TryGetItemRemainTime(out remainTime);
            dateText.gameObject.SetActive(isRemain);
            if (isRemain)
            {
                SetDateLimitUI(cool.GetRemainTime());
            }
            else
            {
                SetDateLimitUI(0);
                SetDateLimitUI(remainTime);
            }
        }
System/KnapSack/Logic/EquipTip.cs
@@ -225,23 +225,7 @@
            container_FightPower.SetActive(itemTipsModel.IsPeerlessEquip(itemAttrData.itemId));
            fightPowerText.text = itemTipsModel.GetEquipFightPower(itemAttrData.score).ToString();
            CheckUselimit();
            if (itemAttrData.itemConfig.ExpireTime > 0)
            {
                List<int> itemEffectTime = itemAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                if(itemEffectTime != null && itemEffectTime[0] != 0 && itemAttrData.guid != "")
                {
                    RefreshRemainTime(itemAttrData.guid);
                }
                else
                {
                    SetDateLimitUI(itemAttrData.itemConfig.ExpireTime);
                }
            }
            else
            {
                dateText.gameObject.SetActive(false);
            }
            RefreshRemainTime(itemAttrData.guid);
            #endregion
            #region 设置MidUI
@@ -379,14 +363,13 @@
            {
                return;
            }
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if (cool != null)
            double remainTime = 0;
            bool isRemain = itemAttrData.TryGetItemRemainTime(out remainTime);
            dateText.gameObject.SetActive(isRemain);
            if(isRemain)
            {
                SetDateLimitUI(cool.GetRemainTime());
            }
            else
            {
                SetDateLimitUI(0);
                SetDateLimitUI(remainTime);
            }
        }
System/KnapSack/Logic/GuardTip.cs
@@ -195,23 +195,7 @@
                needLvValue.color = conditionColor;
            }
            if (itemAttrData.itemConfig.ExpireTime > 0)
            {
                List<int> itemEffectTime = itemAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                if (itemEffectTime != null && itemEffectTime[0] != 0 && itemAttrData.guid != "")
                {
                    RefreshRemainTime(itemAttrData.guid);
                }
                else
                {
                    SetDateLimitUI(itemAttrData.itemConfig.ExpireTime);
                }
            }
            else
            {
                dateText.gameObject.SetActive(false);
            }
            RefreshRemainTime(itemAttrData.guid);
            #endregion
            #region 设置MidUI
@@ -245,14 +229,12 @@
            {
                return;
            }
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if (cool != null)
            double remainTime = 0;
            bool isRemain = itemAttrData.TryGetItemRemainTime(out remainTime);
            dateText.gameObject.SetActive(isRemain);
            if (isRemain)
            {
                SetDateLimitUI(cool.GetRemainTime());
            }
            else
            {
                SetDateLimitUI(0);
                SetDateLimitUI(remainTime);
            }
        }
System/KnapSack/Logic/ItemInfoWin.cs
@@ -163,25 +163,7 @@
            CreateFuncBtn();
            if (itemTipsModel.curAttrData.itemConfig.ExpireTime > 0)
            {
                List<int> itemEffectTime = itemTipsModel.curAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                if (itemEffectTime != null && itemEffectTime[0] != 0 && itemTipsModel.curAttrData.guid != "")
                {
                    RefreshRemainTime(itemTipsModel.curAttrData.guid);
                }
                else
                {
                    SetDateLimitUI(itemTipsModel.curAttrData.itemConfig.ExpireTime);
                }
            }
            else
            {
                dateText.gameObject.SetActive(false);
            }
            RefreshRemainTime(itemTipsModel.curAttrData.guid);
            switch (itemTipsModel.curAttrData.itemConfig.Type)
            {
                case 125:
@@ -291,14 +273,12 @@
            {
                return;
            }
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if (cool != null)
            double remainTime = 0;
            bool isRemain = itemTipsModel.curAttrData.TryGetItemRemainTime(out remainTime);
            dateText.gameObject.SetActive(isRemain);
            if (isRemain)
            {
                SetDateLimitUI(cool.GetRemainTime());
            }
            else
            {
                SetDateLimitUI(0);
                SetDateLimitUI(remainTime);
            }
        }
System/KnapSack/Logic/ItemTipsModel.cs
@@ -36,7 +36,8 @@
        public Dictionary<int, string> petAndMountQualityDict = new Dictionary<int, string>();
        public Dictionary<int, List<int>> itemParamsDict { get; private set; }
        public string expValueFormula = "";
        public Dictionary<int, string> exhaustedAttrFormula { get; private set; }
        public Dictionary<int, int> exhaustedMaxLvDict { get; private set; }
        public int[] guardAutoDrops;
        public int[] gemOpenLvs { get; private set; }
@@ -82,6 +83,17 @@
            m_storeModel.RefreshTCBPlayerDataEvent += RefreshOfflinePluginTime;
            exhaustedFunc = Config.Instance.Get<FuncConfigConfig>("OutOfPrintValue");
            exhaustedAttrFormula = new Dictionary<int, string>();
            JsonData exhaustedJsonData = JsonMapper.ToObject(exhaustedFunc.Numerical2);
            foreach(var key in exhaustedJsonData.Keys)
            {
                int attrId = int.Parse(key);
                exhaustedAttrFormula.Add(attrId,exhaustedJsonData[key].ToString());
            }
            FuncConfigConfig OutOfPrintValueDes = Config.Instance.Get<FuncConfigConfig>("OutOfPrintValueDes");
            exhaustedMaxLvDict = ConfigParse.GetDic<int, int>(OutOfPrintValueDes.Numerical1);
            FuncConfigConfig suitlimitModel = Config.Instance.Get<FuncConfigConfig>("EquipSuitLimit");
            equipSuitStar = int.Parse(suitlimitModel.Numerical2);
@@ -1726,16 +1738,17 @@
        #region 设置绝版属性
        public string GetExhaustedAtrr(ItemAttrData attrData)
        {
            return SetExhaustedAttr(attrData.exhaustedMaxDataDict.Keys.ToList(),attrData.exhaustedMaxDataDict.Values.ToList());
            return SetExhaustedAttr(attrData,attrData.exhaustedMaxDataDict.Keys.ToList(),attrData.exhaustedMaxDataDict.Values.ToList());
        }
        //即将丢弃
        public string GetEquipExhaustedAtrr(List<int> idlist, List<int> valuelist)
        {
            return SetExhaustedAttr(idlist, valuelist);
            //return SetExhaustedAttr(idlist, valuelist);
            return "";
        }
        private string SetExhaustedAttr(List<int> idlist, List<int> valuelist)
        private string SetExhaustedAttr(ItemAttrData attrData,List<int> idlist, List<int> valuelist)
        {
            if (idlist == null)
                return "";
@@ -1751,10 +1764,10 @@
                    switch ((AttrEnum)idlist[i])
                    {
                        case AttrEnum.OnlyFinalHurt:
                            s = Language.Get("EquipTip_ExtraDamage",GetExhaustedAttrValue(valuelist[i]),valuelist[i]);
                            s = Language.Get("EquipTip_ExtraDamage",GetExhaustedAttrValue(idlist[i],valuelist[i]),GetExhaustedMaxLv(attrData.itemConfig.LV),valuelist[i]);
                            break;
                        case AttrEnum.PVPAtkBackHP:
                            s = Language.Get("EquipTip_ExtraHpBack", GetExhaustedAttrValue(valuelist[i]), valuelist[i]);
                            s = Language.Get("EquipTip_ExtraHpBack", GetExhaustedAttrValue(idlist[i], valuelist[i]), GetExhaustedMaxLv(attrData.itemConfig.LV), valuelist[i]);
                            break;
                    }
                  
@@ -1772,12 +1785,24 @@
            return attrSB.ToString();
        }
        private int GetExhaustedAttrValue(int value)
        private int GetExhaustedAttrValue(int attrId,int value)
        {
            Equation.Instance.Clear();
            Equation.Instance.AddKeyValue("maxOOPValue",value);
            Equation.Instance.AddKeyValue("lv", PlayerDatas.Instance.baseData.LV);
            return Equation.Instance.Eval<int>(exhaustedFunc.Numerical1);
            string formula = string.Empty;
            if(exhaustedAttrFormula.ContainsKey(attrId))
            {
                formula = exhaustedAttrFormula[attrId];
            }
            return Equation.Instance.Eval<int>(formula);
        }
        public int GetExhaustedMaxLv(int equipLV)
        {
            int maxLv = 0;
            exhaustedMaxLvDict.TryGetValue(equipLV,out maxLv);
            return maxLv;
        }
        #endregion
@@ -2826,6 +2851,40 @@
            return cnt;
        }
        public bool TryGetItemRemainTime(out double remainTime)
        {
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if (cool != null)
            {
                remainTime = cool.GetRemainTime();
                return true;
            }
            else
            {
                remainTime = itemConfig.ExpireTime;
                var getTimes = GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                var serverSurplusTimes = GetUseDataModel((int)ItemUseDataKey.Def_IudetTotalTime);
                if(remainTime > 0)
                {
                    if (getTimes != null && serverSurplusTimes != null)
                    {
                        int getTime = getTimes[0];
                        int serverSurplusTime = serverSurplusTimes[0];
                        if (getTime > 0)
                        {
                            double time = modelInterface.GetTimeOffest(TimeUtility.GetTime((uint)getTime));
                            time = time > 0 ? time : 0;
                            remainTime = (serverSurplusTime > 0 ? serverSurplusTime : itemConfig.ExpireTime) - time;
                        }
                    }
                    return true;
                }
            }
            return false;
        }
        #region 预览定制属性逻辑处理
        public bool CheckIsCustomItem()
        {
System/KnapSack/Logic/UnionWarehouseEquipTip.cs
@@ -187,22 +187,7 @@
            container_FightPower.SetActive(itemTipsModel.IsPeerlessEquip(itemAttrData.itemId));
            fightPowerText.text = itemTipsModel.GetEquipFightPower(itemAttrData.score).ToString();
            CheckUselimit();
            if (itemAttrData.itemConfig.ExpireTime > 0)
            {
                List<int> itemEffectTime = itemAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                if (itemEffectTime != null && itemEffectTime[0] != 0 && itemAttrData.guid != "")
                {
                    RefreshRemainTime(itemAttrData.guid);
                }
                else
                {
                    SetDateLimitUI(itemAttrData.itemConfig.ExpireTime);
                }
            }
            else
            {
                dateText.gameObject.SetActive(false);
            }
            RefreshRemainTime(itemAttrData.guid);
            #endregion
            #region 设置MidUI
@@ -340,14 +325,12 @@
                return;
            }
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if(cool != null)
            double remainTime = 0;
            bool isRemain = itemAttrData.TryGetItemRemainTime(out remainTime);
            dateText.gameObject.SetActive(isRemain);
            if (isRemain)
            {
                SetDateLimitUI(cool.GetRemainTime());
            }
            else
            {
                SetDateLimitUI(0);
                SetDateLimitUI(remainTime);
            }
        }
System/KnapSack/Logic/WingsTip.cs
@@ -207,24 +207,8 @@
                conditionText.gameObject.SetActive(false);
                conditionValueText.gameObject.SetActive(false);
            }
            if (itemAttrData.itemConfig.ExpireTime > 0)
            {
                List<int> itemEffectTime = itemAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                if (itemEffectTime != null && itemEffectTime[0] != 0 && itemAttrData.guid != "")
                {
                    RefreshRemainTime(itemAttrData.guid);
                }
                else
                {
                    SetDateLimitUI(itemAttrData.itemConfig.ExpireTime);
                }
            }
            else
            {
                dateText.gameObject.SetActive(false);
            }
            RefreshRemainTime(itemAttrData.guid);
            #endregion
            #region 设置MidUI
@@ -271,14 +255,12 @@
            {
                return;
            }
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if (cool != null)
            double remainTime = 0;
            bool isRemain = itemAttrData.TryGetItemRemainTime(out remainTime);
            dateText.gameObject.SetActive(isRemain);
            if (isRemain)
            {
                SetDateLimitUI(cool.GetRemainTime());
            }
            else
            {
                SetDateLimitUI(0);
                SetDateLimitUI(remainTime);
            }
        }
System/KnapSack/New/GetWingsPathTips.cs
@@ -219,23 +219,7 @@
                conditionValueText.gameObject.SetActive(false);
            }
            if (itemAttrData.itemConfig.ExpireTime > 0)
            {
                List<int> itemEffectTime = itemAttrData.GetUseDataModel((int)ItemUseDataKey.Def_IudetCreateTime);
                if (itemEffectTime != null && itemEffectTime[0] != 0 && itemAttrData.guid != "")
                {
                    RefreshRemainTime(itemAttrData.guid);
                }
                else
                {
                    SetDateLimitUI(itemAttrData.itemConfig.ExpireTime);
                }
            }
            else
            {
                dateText.gameObject.SetActive(false);
            }
            RefreshRemainTime(itemAttrData.guid);
            #endregion
            #region 设置MidUI
@@ -266,14 +250,13 @@
            {
                return;
            }
            ItemCDCool cool = KnapsackTimeCDMgr.Instance.GetItemCoolById(guid);
            if (cool != null)
            double remainTime = 0;
            bool isRemain = itemAttrData.TryGetItemRemainTime(out remainTime);
            dateText.gameObject.SetActive(isRemain);
            if (isRemain)
            {
                SetDateLimitUI(cool.GetRemainTime());
            }
            else
            {
                SetDateLimitUI(0);
                SetDateLimitUI(remainTime);
            }
        }
System/Login/CrossServerLogin.cs
@@ -15,7 +15,6 @@
        public bool reconnectBackGround { get; set; }
        int reLoginTime = 0;
        Clock loginOverTimeClock;
        float lastLoginTime = 0f;
        int reLoginTimes = 0;
@@ -59,7 +58,7 @@
                MaxProDef = (int)matchOK.MatchPlayer[0].MaxProDef,
            };
            Clock.Create(DateTime.Now + new TimeSpan(5 * TimeSpan.TicksPerSecond), () =>
            Clock.Create(DateTime.Now + new TimeSpan(3 * TimeSpan.TicksPerSecond), () =>
            {
                if (oneVsOnePlayerData.waitForLoginCrossServer)
                {
@@ -246,11 +245,12 @@
        private void ProcessLoginFailure()
        {
            StopLoginOverTimeProcess();
            busy = false;
            ExceptionCatcher.ReportException("登录跨服出现异常", StringUtility.Contact("角色:", PlayerDatas.Instance.baseData.PlayerName));
            var sendInfo = new CC003_tagCGForceQuitCrossState();
            GameNetSystem.Instance.SendInfo(sendInfo);
            GameNetSystem.Instance.crossServerConnected_Loigc = false;
            Clock.Create(DateTime.Now + new TimeSpan(2 * TimeSpan.TicksPerSecond), () =>
            {
                loginModel.ReAccountLogin();
System/MainInterfacePanel/CoinTaskTipModel.cs
@@ -114,6 +114,10 @@
    private IEnumerator PopupPanel()
    {
        yield return WaitingForSecondConst.WaitMS1500;
        if (PlayerDatas.Instance.baseData.ExAttr5 == 1)//在跨服竞技场不打开
        {
            yield break;
        }
        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing || WindowCenter.Instance.IsOpen<TreasureBaseWin>())
        {
            yield break;
@@ -136,6 +140,10 @@
    private IEnumerator FairyAuTaskPanel()
    {
        yield return WaitingForSecondConst.WaitMS1500;
        if (PlayerDatas.Instance.baseData.ExAttr5 == 1)//在跨服竞技场不打开
        {
            yield break;
        }
        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing || WindowCenter.Instance.IsOpen<TreasureBaseWin>())
        {
            yield break;
System/Mount/PlayerMountDatas.cs
@@ -332,7 +332,27 @@
        }
        int GetMinLV = 100;
        int GetMountID = 0;
        for (int j = 0; j < SortMount.Count; j++)
        for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低且有未激活技能的坐骑
        {
            int Id = SortMount[j].HorseID;
            int GetHorseMaxLv = GetMountSkillMaxLV(Id);
            if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id))
            {
                if (_DicHorse[Id].Lv < GetMinLV && _DicHorse[Id].Lv< GetHorseMaxLv)
                {
                    GetMinLV = _DicHorse[Id].Lv;
                    GetMountID = Id;
                }
            }
        }
        if (GetMountID != 0 && ASingleFeedRedPoint.ContainsKey(GetMountID))
        {
            ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple;
            return;
        }
        for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低
        {
            int Id = SortMount[j].HorseID;
            if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id))
@@ -344,26 +364,10 @@
                }
            }
        }
        bool IsFullBool = true;
        foreach (var key in _DicHorse.Keys)
        if (GetMountID != 0 && ASingleFeedRedPoint.ContainsKey(GetMountID))
        {
            if (_DicHorse[key].Lv < 20)
            {
                IsFullBool = false;
            }
        }
        if (ASingleFeedRedPoint.ContainsKey(GetMountID))
        {
            if (_DicHorse[GetMountID].Lv < 20)
            {
                ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple;
                return;
            }
            else if (_DicHorse[GetMountID].Lv >= 20 && IsFullBool)
            {
                ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple;
                return;
            }
            ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple;
            return;
        }
    }
@@ -378,9 +382,11 @@
        }
        int GetMountID = 0;
        int MountLV = 999;
        foreach (var key in _DicHorse.Keys)//无红点时跳转选中最低阶数
        foreach (var key in _DicHorse.Keys)//无红点时跳转选中最低阶数且未满级
        {
            if (_DicHorse[key].Lv < MountLV)
            var mountConfig = Config.Instance.Get<HorseConfig>(key);
            if (_DicHorse[key].Lv < MountLV && _DicHorse[key].Lv< mountConfig.MaxLV)
            {
                GetMountID = key;
                MountLV = _DicHorse[key].Lv;
@@ -389,7 +395,7 @@
        return GetMountID;
    }
    public int GetMountSkillMaxLV(int MountId)//获取灵宠最大技能等级
    public int GetMountSkillMaxLV(int MountId)//获取坐骑最大技能等级
    {
        int SkillLv = 0;
        foreach (var key in GetMountSkillAndItem.Keys)
System/Pet/PlayerPetDatas.cs
@@ -356,7 +356,32 @@
                return;
            }
        }
        for (int i = 0; i < ListInt.Count; i++)
        for (int i = 0; i < ListInt.Count; i++)//选择出升级灵宠等级最低且有技能未解锁的
        {
            if (_DicPetBack.ContainsKey(ListInt[i]))
            {
                var PetConfig = Config.Instance.Get<PetInfoConfig>(ListInt[i]);
                if (PetConfig == null)
                {
                    return;
                }
                int[] SkillUnLockInt = PetConfig.SkillUnLock;
                int SkillLvMax = SkillUnLockInt[(SkillUnLockInt.Length-1)];
                if (_DicPetBack[(ListInt[i])].PetClass < petLv && _DicPetBack[(ListInt[i])].PetClass<SkillLvMax)
                {
                    petLv = _DicPetBack[(ListInt[i])].PetClass;
                    GetPetId = (ListInt[i]);
                }
            }
        }
        if (GetPetId != 0 && CultivateRedPoint.ContainsKey(GetPetId))
        {
            CultivateRedPoint[GetPetId].state = RedPointState.Simple;
            return;
        }
        for (int i = 0; i < ListInt.Count; i++)//选择出等级最低的灵宠
        {
            if (_DicPetBack.ContainsKey(ListInt[i]))
            {
@@ -367,26 +392,10 @@
                }
            }
        }
        bool IsFullBool = true;
        foreach (var key in _DicPetBack.Keys)
        if (GetPetId != 0 && CultivateRedPoint.ContainsKey(GetPetId))
        {
            if (_DicPetBack[key].PetClass < 20)
            {
                IsFullBool = false;
            }
        }
        if (CultivateRedPoint.ContainsKey(GetPetId))
        {
            if (_DicPetBack[GetPetId].PetClass < 20)
            {
                CultivateRedPoint[GetPetId].state = RedPointState.Simple;
                return;
            }
            else if (_DicPetBack[GetPetId].PetClass >= 20 && IsFullBool)
            {
                CultivateRedPoint[GetPetId].state = RedPointState.Simple;
                return;
            }
            CultivateRedPoint[GetPetId].state = RedPointState.Simple;
            return;
        }
    }
@@ -401,9 +410,11 @@
        }
        int GetPetId = 0;
        int GetPetLv = 999;
        foreach (var key in _DicPetBack.Keys)//无红点时跳转选中等级最低的
        {
            if (_DicPetBack[key].PetClass < GetPetLv)
            var config = Config.Instance.Get<PetInfoConfig>(key);
            if (_DicPetBack[key].PetClass < GetPetLv && _DicPetBack[key].PetClass < config.MaxRank)
            {
                GetPetId = key;
                GetPetLv = _DicPetBack[key].PetClass;
System/Store/StoreModel.cs
@@ -466,14 +466,14 @@
        bool isLimitBuy = TryGetLimitBuy(storeConfig, out canBuyCnt, out addBuyCnt);
        if (!isLimitBuy) return false;
        int remainNum = canBuyCnt;
        remainCnt = canBuyCnt;
        BuyShopItemLimit shopItemLimit = GetBuyShopLimit((uint)storeConfig.ID);
        if (shopItemLimit != null)
        {
            remainNum -= shopItemLimit.BuyCnt;
            remainCnt -= shopItemLimit.BuyCnt;
        }
        if (remainNum <= 0)
        if (remainCnt <= 0)
        {
            return true;
        }