少年修仙传客户端代码仓库
client_Wu Xijin
2018-09-30 0a08d799f9e86384dc64adc573cdbdce8ae5cf53
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
6个文件已修改
746 ■■■■ 已修改文件
Fight/PreFightMission.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipWashModel.cs 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastSlidingList.cs 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WashTips.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 585 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/PreFightMission.cs
@@ -1556,12 +1556,12 @@
    private IEnumerator Co_Destroy()
    {
        WindowCenter.Instance.Close<MainInterfaceWin>();
        if (IsFinished())
        {
            yield break;
        }
        WindowCenter.Instance.Close<MainInterfaceWin>();
        
        CameraController.Instance.MaskCamera.gameObject.SetActive(false);
        
System/Login/LoginModel.cs
@@ -278,6 +278,8 @@
                    send.Extra = "";
                    break;
                case VersionAuthority.Release:
                    send.ExtraLen = 0;
                    send.Extra = "";
                    if (SDKUtility.Instance.ChannelPlatform == SDKUtility.E_ChannelPlatform.Free)
                    {
                        send.IDType = 1;
System/Strengthening/EquipWashModel.cs
@@ -44,9 +44,13 @@
    public delegate void OnRefreshWashModel();
    public event OnRefreshWashModel RefreshWashModelEvent;
    public int[] washGroups1 { get; private set; }
    public int[] washGroups2 { get; private set; }
    public int[] washGroups3 { get; private set; }
    private Dictionary<int, WashProCount> washEquipProDict = new Dictionary<int, WashProCount>();
    private FuncConfigConfig funcModel;
    private Dictionary<int, int> _equipWashLimitDict;
    private Dictionary<int, Dictionary<int, int>> _equipWashLimitDict = new Dictionary<int, Dictionary<int, int>>();
    private List<WashProCount> orderWashProlist = new List<WashProCount>();
    PlayerPackModel _playerPack;
    PlayerPackModel playerPack
@@ -88,10 +92,31 @@
    public override void Init()
    {
        _equipWashLimitDict = null;
        funcModel = Config.Instance.Get<FuncConfigConfig>("EquipWashMaxLV");
        if (funcModel != null)
            _equipWashLimitDict = ConfigParse.GetDic<int, int>(funcModel.Numerical1);
        _equipWashLimitDict.Clear();
        FuncConfigConfig washGroup1Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup1");
        FuncConfigConfig washGroup2Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup2");
        FuncConfigConfig washGroup3Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup3");
        washGroups1 = ConfigParse.GetMultipleStr<int>(washGroup1Model.Numerical1);
        washGroups2 = ConfigParse.GetMultipleStr<int>(washGroup2Model.Numerical1);
        washGroups3 = ConfigParse.GetMultipleStr<int>(washGroup3Model.Numerical1);
        SetEquipWashMaxLV(washGroups1, washGroup1Model.Numerical2);
        SetEquipWashMaxLV(washGroups2, washGroup2Model.Numerical2);
        SetEquipWashMaxLV(washGroups3, washGroup3Model.Numerical2);
    }
    private void SetEquipWashMaxLV(int[] groups,string limit)
    {
        Dictionary<int,int> limitDict = ConfigParse.GetDic<int, int>(limit);
        if (groups != null && limitDict != null)
        {
            for (int i = 0; i < groups.Length; i++)
            {
                if (!_equipWashLimitDict.ContainsKey(groups[i]))
                {
                    _equipWashLimitDict.Add(groups[i], limitDict);
                }
            }
        }
    }
    public override void UnInit()
@@ -302,28 +327,22 @@
    //得到洗练群组类型
    public int OnGetWashType(int itemPlace)
    {
        FuncConfigConfig washGroup1Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup1");
        FuncConfigConfig washGroup2Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup2");
        FuncConfigConfig washGroup3Model = Config.Instance.Get<FuncConfigConfig>("EquipWashGroup3");
        int[] _equipPlacelist1 = ConfigParse.GetMultipleStr<int>(washGroup1Model.Numerical1);
        int[] _equipPlacelist2 = ConfigParse.GetMultipleStr<int>(washGroup2Model.Numerical1);
        int[] _equipPlacelist3 = ConfigParse.GetMultipleStr<int>(washGroup3Model.Numerical1);
        int i = 0;
        for (i = 0; i < _equipPlacelist1.Length; i++)
        for (i = 0; i < washGroups1.Length; i++)
        {
            if (_equipPlacelist1[i] == itemPlace)
            if (washGroups1[i] == itemPlace)
                return 1;
        }
        for (i = 0; i < _equipPlacelist2.Length; i++)
        for (i = 0; i < washGroups2.Length; i++)
        {
            if (_equipPlacelist2[i] == itemPlace)
            if (washGroups2[i] == itemPlace)
                return 2;
        }
        for (i = 0; i < _equipPlacelist3.Length; i++)
        for (i = 0; i < washGroups3.Length; i++)
        {
            if (_equipPlacelist3[i] == itemPlace)
            if (washGroups3[i] == itemPlace)
                return 3;
        }
        return 0;
@@ -391,16 +410,31 @@
    /// </summary>
    /// <param name="equipLv"></param>
    /// <returns></returns>
    public int GetWashFullLv(int equipLv)
    public int GetWashFullLv(int equipPlace,int equipLv)
    {
        if (_equipWashLimitDict == null)
            return 0;
        if (_equipWashLimitDict.ContainsKey(equipLv))
            return _equipWashLimitDict[equipLv];
        else
            return 0;
        if (_equipWashLimitDict.ContainsKey(equipPlace))
        {
            if(_equipWashLimitDict[equipPlace].ContainsKey(equipLv))
            {
                return _equipWashLimitDict[equipPlace][equipLv];
            }
        }
        return 0;
    }
    public int GetEquipWashMinLv(int equipPlace)
    {
        if (_equipWashLimitDict.ContainsKey(equipPlace))
        {
            List<int> lvlist = _equipWashLimitDict[equipPlace].Keys.ToList();
            if (lvlist != null && lvlist.Count > 0)
            {
                return lvlist[0];
            }
        }
        return 0;
    }
    /// <summary>
    /// 判断当前装备是否洗练满阶
@@ -413,7 +447,7 @@
            return false;
        chinItemModel = Config.Instance.Get<ItemConfig>((int)model.itemInfo.ItemID);
        int fullLv = GetWashFullLv(chinItemModel.LV);
        int fullLv = GetWashFullLv(chinItemModel.EquipPlace,chinItemModel.LV);
        if (washPro.XLAttrLV == fullLv)
        {
            if (washPro.proValuelist[0].XLAttrValue < tagEquipWash.attMax1)
@@ -443,41 +477,37 @@
    public bool IsCanWash(ItemModel model)
    {
        if (model == null || _equipWashLimitDict == null)
        if (model == null)
            return false;
        chinItemModel = Config.Instance.Get<ItemConfig>((int)model.itemInfo.ItemID);
        int[] equipLvs = _equipWashLimitDict.Keys.ToArray();
        if (chinItemModel.LV >= equipLvs[0])
        if(chinItemModel.LV >= GetEquipWashMinLv(chinItemModel.EquipPlace))
        {
            return true;
        else
            return false;
    }
    public int WashMinLV()
    {
        if (_equipWashLimitDict == null)
            return -1;
        int[] equipLvs = _equipWashLimitDict.Keys.ToArray();
        return equipLvs[0];
        }
        return false;
    }
    /// <summary>
    /// 得到装备位最大洗练等级
    /// </summary>
    /// <returns></returns>
    public int GetMaxWashLv()
    public int GetMaxWashLv(int equipPlace)
    {
        if (_equipWashLimitDict == null)
            return 0;
        int[] washLvs = _equipWashLimitDict.Values.ToArray();
        return washLvs[washLvs.Length - 1];
        if (_equipWashLimitDict.ContainsKey(equipPlace))
        {
            List<int> washLvlist = _equipWashLimitDict[equipPlace].Values.ToList();
            if (washLvlist != null && washLvlist.Count > 0)
            {
                return washLvlist[washLvlist.Count - 1];
            }
        }
        return 0;
    }
    public string GetCurWashLvStr(WashProCount washPro, EquipWashConfig tagEquipWash)
    {
        int maxWashLv = GetMaxWashLv();
        int maxWashLv = GetMaxWashLv(washPro.EquipPlace);
        if (washPro.XLAttrLV < maxWashLv)
        {
System/Strengthening/GodBeastSlidingList.cs
@@ -411,7 +411,7 @@
                    if (godBeastModel.Absorption_Dic.ContainsKey(godBeastBagClass.Index))
                    {
                        GodBeastChildNodes.ChoosenImg.SetActive(true);
                        if (itemModel.EquipPlace <= 0)
                        if (itemModel.EquipPlace <= 0 && itemModel.itemInfo.ItemCount>1)
                        {
                            GodBeastChildNodes.NumberNow.gameObject.SetActive(true);
                            GodBeastChildNodes.NumberNow.text = godBeastModel.Absorption_Dic[godBeastBagClass.Index].ToString();
@@ -434,9 +434,26 @@
                        }
                        else//选中的物品为水晶
                        {
                            godBeastModel.Crystal_ItemModel = itemModel;
                            godBeastModel.ItemInde = godBeastBagClass.Index;
                            WindowCenter.Instance.Open<CrystalSelectionWin>();
                            if (itemModel.itemInfo.ItemCount <= 1)
                            {
                                if (godBeastModel.Absorption_Dic.ContainsKey(godBeastBagClass.Index))
                                {
                                    godBeastModel.Absorption_Dic.Remove(godBeastBagClass.Index);
                                }
                                else
                                {
                                    godBeastModel.Absorption_Dic.Add(godBeastBagClass.Index, 1);
                                }
                                m_ScrollerController.m_Scorller.RefreshActiveCellViews();//刷新可见
                            }
                            else
                            {
                                godBeastModel.Crystal_ItemModel = itemModel;
                                godBeastModel.ItemInde = godBeastBagClass.Index;
                                WindowCenter.Instance.Open<CrystalSelectionWin>();
                            }
                        }
                        godBeastModel.AbsorbEventUpdate();
                    });
System/Strengthening/WashTips.cs
@@ -490,14 +490,14 @@
                {
                    if (equipWashModel.IsWashFull(_itemModel, _washProModel, _tagWashModel))
                    {
                        if(_washProModel.XLAttrLV  >= equipWashModel.GetMaxWashLv()
                            && _washProModel.XLAttrLV <= equipWashModel.GetWashFullLv(_itemModel.chinItemModel.LV))
                        if(_washProModel.XLAttrLV  >= equipWashModel.GetMaxWashLv(_itemModel.chinItemModel.EquipPlace)
                            && _washProModel.XLAttrLV <= equipWashModel.GetWashFullLv(_itemModel.chinItemModel.EquipPlace, _itemModel.chinItemModel.LV))
                        {
                            _washFullLvText.text = Language.Get("WashLevelFulled");
                        }
                        else
                        {
                            _washFullLvText.text = Language.Get("EquipWash113", _itemModel.chinItemModel.LV, equipWashModel.GetWashFullLv(_itemModel.chinItemModel.LV));
                            _washFullLvText.text = Language.Get("EquipWash113", _itemModel.chinItemModel.LV, equipWashModel.GetWashFullLv(_itemModel.chinItemModel.EquipPlace, _itemModel.chinItemModel.LV));
                        }
                        ObjHideOrShow(false, false, false, false, true);
                    }
@@ -536,7 +536,7 @@
            }
            else
            {
                _washFullLvText.text = Language.Get("EquipWash114", equipWashModel.WashMinLV());
                _washFullLvText.text = Language.Get("EquipWash114", equipWashModel.GetEquipWashMinLv(_itemModel.chinItemModel.EquipPlace));
                ObjHideOrShow(false, false, false, false, true);
            }
System/WindowJump/WindowJumpMgr.cs
@@ -87,279 +87,8 @@
    public void WindowJumpTo(JumpUIType jumpType)
    {
        _tagWinSearchModel = Config.Instance.Get<WindowSearchConfig>((int)jumpType);
        if (_tagWinSearchModel == null)
        {
            return;
        }
        if (!FuncOpen.Instance.IsFuncOpen(_tagWinSearchModel.Lv) && _tagWinSearchModel.Lv != 0)
        {
            FuncOpen.Instance.ProcessorFuncErrorTip(_tagWinSearchModel.Lv);
            return;
        }
        switch (jumpType)
        {
            case JumpUIType.UnionFunc1:
            case JumpUIType.UnionFunc2:
            case JumpUIType.UnionWarehouse:
            case JumpUIType.UnionHall:
            case JumpUIType.UnionTask:
            case JumpUIType.UnionTask2:
            case JumpUIType.UnionActive1:
            case JumpUIType.UnionActive2:
            case JumpUIType.UnionBoss:
                if (!PlayerDatas.Instance.fairyData.HasFairy)
                {
                    SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
                    return;
                }
                break;
            case JumpUIType.UnionMethod:
                if (!fairyModel.fairyMethodToOpen)
                {
                    fairyModel.ProcessMethodToErrorTip();
                    return;
                }
                break;
            case JumpUIType.UnionStore:
                if (!fairyModel.fairyStoreOpen)
                {
                    fairyModel.ProcessErrorTip();
                    return;
                }
                break;
            case JumpUIType.BigMap:
                if(!mapModel.CanOpenLocalMapWin(PlayerDatas.Instance.baseData.MapID))
                {
                    return;
                }
                break;
            case JumpUIType.TreasureFindHostFunc1:
            case JumpUIType.TreasureFindHostFunc2:
            case JumpUIType.TreasureFindHostFunc3:
            case JumpUIType.TreasureFindHostFunc1Type2:
            case JumpUIType.TreasureFindHostFunc2Type2:
            case JumpUIType.TreasureFindHostFunc3Type2:
                bool isUnlock = hostModel.IsUnlockTreasure(int.Parse(_tagWinSearchModel.SelectActive));
                if (!isUnlock)
                {
                    hostModel.jumpTreasureId = 0;
                    return;
                }
                break;
            case JumpUIType.FirstRecharge:
                var model = ModelCenter.Instance.GetModel<VipModel>();
                if (model.firstChargeRewardGet)
                {
                    model.AreadyGetFirstRecharge();
                    return;
                }
                break;
            case JumpUIType.XMZZBattle:
            case JumpUIType.AncientBattle:
            case JumpUIType.IceCrystal:
            case JumpUIType.FairyLand:
                DailyQuestConfig dailyConfig = Config.Instance.Get<DailyQuestConfig>(_tagWinSearchModel.SelectActive);
                if (dailyQuestModel.GetQuestState(dailyConfig.ID) != DailyQuestModel.DailyQuestState.Normal)
                {
                    SysNotifyMgr.Instance.ShowTip("FBIsNotOpen");
                    return;
                }
                break;
            case JumpUIType.PlotTaskFunc3:
                var taskmodel = ModelCenter.Instance.GetModel<PlayerTaskDatas>();
                if (taskmodel.SideQuestsDic.Count < 1)
                {
                    SysNotifyMgr.Instance.ShowTip("SideQuest_None");
                    return;
                }
                break;
            case JumpUIType.PrayforDrug:
                var prayModel = ModelCenter.Instance.GetModel<PrayForDurgModel>();
                if(!prayModel.CheckPrayDrugIsOpen())
                {
                    return;
                }
                break;
            case JumpUIType.FaBaoSoul_BenYuan:
            case JumpUIType.FaBaoSoul_FengMo:
            case JumpUIType.FaBaoSoul_Strength:
            case JumpUIType.FaBaoSoul_Rune:
            case JumpUIType.FaBaoSoul_Mount:
            case JumpUIType.FaBaoSoul_Pet:
            case JumpUIType.FaBaoSoul_Boss:
            case JumpUIType.FaBaoSoul_Wings:
            case JumpUIType.FaBaoSoul_Suit:
            case JumpUIType.FaBaoSoul_Wash:
                var soulId = 0;
                if (int.TryParse(_tagWinSearchModel.SelectActive, out soulId))
                {
                    var soulModel = ModelCenter.Instance.GetModel<TreasureSoulModel>();
                    if (!soulModel.IsOpenTreasureSoul(soulId))
                    {
                        return;
                    }
                }
                else
                {
                    return;
                }
                break;
            case JumpUIType.TrialExchange:
                if (!trialDungeonModel.CompleteTrialFloor(0))
                {
                    trialDungeonModel.ProcessOpenTrialExchangeError();
                    return;
                }
                break;
            case JumpUIType.Kylin:
            case JumpUIType.Kylin1:
            case JumpUIType.Kylin2:
            case JumpUIType.Kylin3:
            case JumpUIType.Kylin4:
            case JumpUIType.Kylin5:
            case JumpUIType.Kylin6:
                if (!FuncOpen.Instance.IsFuncOpen(85))
                {
                    FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Kylin);
                    return;
                }
                break;
            case JumpUIType.OpenServerMountRank:
                var type = int.Parse(_tagWinSearchModel.SelectActive);
                if (rankModel.IsLock(type))
                {
                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
                    return;
                }
                if (TimeUtility.OpenDay >= rankModel.openServerActivityDays)
                {
                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
                    return;
                }
                break;
            case JumpUIType.FlashSale:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.FlashSale);
                        return;
                    }
                }
                break;
            case JumpUIType.ConsumreRebate:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.ConsumeRebate);
                        return;
                    }
                }
                break;
            case JumpUIType.LimitedTimePackage:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.GiftPackage);
                        return;
                    }
                }
                break;
            case JumpUIType.BossReborn:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.BossReborn);
                        return;
                    }
                }
                break;
            case JumpUIType.VipRechargeFunc3:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>().MessageNotification();
                        return;
                    }
                }
                break;
            case JumpUIType.VipRechargeFunc5:
                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                {
                    return;
                }
                break;
            case JumpUIType.OpenServerRank:
            case JumpUIType.OSTimeLimitGift:
            case JumpUIType.OpenServerActivityFunc2_1:
            case JumpUIType.OpenServerActivityFunc2_2:
                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                {
                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
                    return;
                }
                break;
            case JumpUIType.OpenServerGift1:
            case JumpUIType.OpenServerGift2:
            case JumpUIType.OpenServerGift3:
                var giftModel = ModelCenter.Instance.GetModel<OSGiftModel>();
                int giftId = 0;
                int.TryParse(_tagWinSearchModel.SelectActive, out giftId);
                if (!giftModel.CheckActivate())
                {
                    if (PlayerDatas.Instance.baseData.coinPointTotal <= 0
                        || !ModelCenter.Instance.GetModel<VipModel>().firstChargeRewardGet)
                    {
                        SysNotifyMgr.Instance.ShowTip("GiftNoOpen");
                    }
                    else if (giftModel.IsGiftBuy(giftId))
                    {
                        SysNotifyMgr.Instance.ShowTip("GiftAlreadyBuy");
                    }
                    else if (giftModel.IsGiftOverdue(giftId))
                    {
                        SysNotifyMgr.Instance.ShowTip("MissSell");
                    }
                    return;
                }
                break;
            case JumpUIType.OpenServerGift:
                return;
            case JumpUIType.EquipCompose1:
            case JumpUIType.EquipCompose2:
            case JumpUIType.EquipCompose3:
            case JumpUIType.EquipCompose4:
            case JumpUIType.ComposeTicketFairy:
            case JumpUIType.ComposeTicketGod:
            case JumpUIType.ComposeTicketIce:
                int[] types = ConfigParse.GetMultipleStr<int>(_tagWinSearchModel.SelectActive);
                if (types.Length > 0)
                {
                    if (!composeModel.CheckIsComposeByType(_tagWinSearchModel.TABID+1,types[0],types[1]))
                    {
                        return;
                    }
                }
                break;
            case JumpUIType.CeremonyRecharge:
            case JumpUIType.CeremonyFire:
            case JumpUIType.CeremonyPeopleToHi:
            case JumpUIType.CeremonyOutof:
                if (!OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.FairyCeremony))
                {
                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
                    return;
                }
                break;
        }
        if (!CheckIsJump(jumpType)) return;
        DebugEx.Log("WindowJumpTo" + jumpType);
        GetPreAllOpenWin();
        #region 条件判段
        switch (jumpType)
        {
@@ -867,6 +596,286 @@
    }
    private bool CheckIsJump(JumpUIType jumpType)
    {
        _tagWinSearchModel = Config.Instance.Get<WindowSearchConfig>((int)jumpType);
        if (_tagWinSearchModel == null)
        {
            return false;
        }
        if (!FuncOpen.Instance.IsFuncOpen(_tagWinSearchModel.Lv) && _tagWinSearchModel.Lv != 0)
        {
            FuncOpen.Instance.ProcessorFuncErrorTip(_tagWinSearchModel.Lv);
            return false;
        }
        switch (jumpType)
        {
            case JumpUIType.UnionFunc1:
            case JumpUIType.UnionFunc2:
            case JumpUIType.UnionWarehouse:
            case JumpUIType.UnionHall:
            case JumpUIType.UnionTask:
            case JumpUIType.UnionTask2:
            case JumpUIType.UnionActive1:
            case JumpUIType.UnionActive2:
            case JumpUIType.UnionBoss:
                if (!PlayerDatas.Instance.fairyData.HasFairy)
                {
                    SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
                    return false;
                }
                break;
            case JumpUIType.UnionMethod:
                if (!fairyModel.fairyMethodToOpen)
                {
                    fairyModel.ProcessMethodToErrorTip();
                    return false;
                }
                break;
            case JumpUIType.UnionStore:
                if (!fairyModel.fairyStoreOpen)
                {
                    fairyModel.ProcessErrorTip();
                    return false;
                }
                break;
            case JumpUIType.BigMap:
                if (!mapModel.CanOpenLocalMapWin(PlayerDatas.Instance.baseData.MapID))
                {
                    SysNotifyMgr.Instance.ShowTip("MapInfo1");
                    return false;
                }
                break;
            case JumpUIType.TreasureFindHostFunc1:
            case JumpUIType.TreasureFindHostFunc2:
            case JumpUIType.TreasureFindHostFunc3:
            case JumpUIType.TreasureFindHostFunc1Type2:
            case JumpUIType.TreasureFindHostFunc2Type2:
            case JumpUIType.TreasureFindHostFunc3Type2:
                bool isUnlock = hostModel.IsUnlockTreasure(int.Parse(_tagWinSearchModel.SelectActive));
                if (!isUnlock)
                {
                    hostModel.jumpTreasureId = 0;
                    return false;
                }
                break;
            case JumpUIType.FirstRecharge:
                var model = ModelCenter.Instance.GetModel<VipModel>();
                if (model.firstChargeRewardGet)
                {
                    model.AreadyGetFirstRecharge();
                    return false;
                }
                break;
            case JumpUIType.XMZZBattle:
            case JumpUIType.AncientBattle:
            case JumpUIType.IceCrystal:
            case JumpUIType.FairyLand:
                DailyQuestConfig dailyConfig = Config.Instance.Get<DailyQuestConfig>(_tagWinSearchModel.SelectActive);
                if (dailyQuestModel.GetQuestState(dailyConfig.ID) != DailyQuestModel.DailyQuestState.Normal)
                {
                    SysNotifyMgr.Instance.ShowTip("FBIsNotOpen");
                    return false;
                }
                break;
            case JumpUIType.PlotTaskFunc3:
                var taskmodel = ModelCenter.Instance.GetModel<PlayerTaskDatas>();
                if (taskmodel.SideQuestsDic.Count < 1)
                {
                    SysNotifyMgr.Instance.ShowTip("SideQuest_None");
                    return false;
                }
                break;
            case JumpUIType.PrayforDrug:
                var prayModel = ModelCenter.Instance.GetModel<PrayForDurgModel>();
                if (!prayModel.CheckPrayDrugIsOpen())
                {
                    return false;
                }
                break;
            case JumpUIType.FaBaoSoul_BenYuan:
            case JumpUIType.FaBaoSoul_FengMo:
            case JumpUIType.FaBaoSoul_Strength:
            case JumpUIType.FaBaoSoul_Rune:
            case JumpUIType.FaBaoSoul_Mount:
            case JumpUIType.FaBaoSoul_Pet:
            case JumpUIType.FaBaoSoul_Boss:
            case JumpUIType.FaBaoSoul_Wings:
            case JumpUIType.FaBaoSoul_Suit:
            case JumpUIType.FaBaoSoul_Wash:
                var soulId = 0;
                if (int.TryParse(_tagWinSearchModel.SelectActive, out soulId))
                {
                    var soulModel = ModelCenter.Instance.GetModel<TreasureSoulModel>();
                    if (!soulModel.IsOpenTreasureSoul(soulId))
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
                break;
            case JumpUIType.TrialExchange:
                if (!trialDungeonModel.CompleteTrialFloor(0))
                {
                    trialDungeonModel.ProcessOpenTrialExchangeError();
                    return false;
                }
                break;
            case JumpUIType.Kylin:
            case JumpUIType.Kylin1:
            case JumpUIType.Kylin2:
            case JumpUIType.Kylin3:
            case JumpUIType.Kylin4:
            case JumpUIType.Kylin5:
            case JumpUIType.Kylin6:
                if (!FuncOpen.Instance.IsFuncOpen(85))
                {
                    FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Kylin);
                    return false;
                }
                break;
            case JumpUIType.OpenServerMountRank:
                var type = int.Parse(_tagWinSearchModel.SelectActive);
                if (rankModel.IsLock(type))
                {
                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
                    return false;
                }
                if (TimeUtility.OpenDay >= rankModel.openServerActivityDays)
                {
                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
                    return false;
                }
                break;
            case JumpUIType.FlashSale:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.FlashSale);
                        return false;
                    }
                }
                break;
            case JumpUIType.ConsumreRebate:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.ConsumeRebate);
                        return false;
                    }
                }
                break;
            case JumpUIType.LimitedTimePackage:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.GiftPackage);
                        return false;
                    }
                }
                break;
            case JumpUIType.BossReborn:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        OperationTimeHepler.Instance.ProcessConditionError(Operation.BossReborn);
                        return false;
                    }
                }
                break;
            case JumpUIType.VipRechargeFunc3:
                {
                    if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                    {
                        ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>().MessageNotification();
                        return false;
                    }
                }
                break;
            case JumpUIType.VipRechargeFunc5:
                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                {
                    return false;
                }
                break;
            case JumpUIType.OpenServerRank:
            case JumpUIType.OSTimeLimitGift:
            case JumpUIType.OpenServerActivityFunc2_1:
            case JumpUIType.OpenServerActivityFunc2_2:
                if (!OpenServerActivityCenter.Instance.IsActivityOpen(_tagWinSearchModel.TABID))
                {
                    SysNotifyMgr.Instance.ShowTip("ActiveOutTime");
                    return false;
                }
                break;
            case JumpUIType.OpenServerGift1:
            case JumpUIType.OpenServerGift2:
            case JumpUIType.OpenServerGift3:
                var giftModel = ModelCenter.Instance.GetModel<OSGiftModel>();
                int giftId = 0;
                int.TryParse(_tagWinSearchModel.SelectActive, out giftId);
                if (!giftModel.CheckActivate())
                {
                    if (PlayerDatas.Instance.baseData.coinPointTotal <= 0
                        || !ModelCenter.Instance.GetModel<VipModel>().firstChargeRewardGet)
                    {
                        SysNotifyMgr.Instance.ShowTip("GiftNoOpen");
                    }
                    else if (giftModel.IsGiftBuy(giftId))
                    {
                        SysNotifyMgr.Instance.ShowTip("GiftAlreadyBuy");
                    }
                    else if (giftModel.IsGiftOverdue(giftId))
                    {
                        SysNotifyMgr.Instance.ShowTip("MissSell");
                    }
                    return false;
                }
                break;
            case JumpUIType.OpenServerGift:
                return false;
            case JumpUIType.EquipCompose1:
            case JumpUIType.EquipCompose2:
            case JumpUIType.EquipCompose3:
            case JumpUIType.EquipCompose4:
            case JumpUIType.ComposeTicketFairy:
            case JumpUIType.ComposeTicketGod:
            case JumpUIType.ComposeTicketIce:
                int[] types = ConfigParse.GetMultipleStr<int>(_tagWinSearchModel.SelectActive);
                if (types.Length > 0)
                {
                    if (!composeModel.CheckIsComposeByType(_tagWinSearchModel.TABID + 1, types[0], types[1]))
                    {
                        return false;
                    }
                }
                break;
            case JumpUIType.CeremonyRecharge:
            case JumpUIType.CeremonyFire:
            case JumpUIType.CeremonyPeopleToHi:
            case JumpUIType.CeremonyOutof:
                if (!OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.FairyCeremony))
                {
                    SysNotifyMgr.Instance.ShowTip("InOperationTimeError");
                    return false;
                }
                break;
        }
        return true;
    }
    private void CheckJumpWin<T>(int _functionalOrder = 0, bool _forceSync = true) where T : Window
    {
        string curOpenWin = typeof(T).Name;
    }
    private void GotoNormalDungeon(int _dailyQuestId, int _lineId = 0)
    {
        var config = Config.Instance.Get<DailyQuestConfig>(_dailyQuestId);
@@ -901,26 +910,20 @@
        SetJumpLogic<MultipleDifficultyDungeonWin>(0);
    }
    private void SetJumpLogic<T>(int _functionalOrder = 0, bool _forceSync = true) where T : Window
    {
        string curOpenWin = typeof(T).Name;
        if(jumpWinNameDict.ContainsKey(jumpPhase - 1))
        if (WindowCenter.Instance.IsOpen(curOpenWin))
        {
            if(jumpWinNameDict[jumpPhase - 1] != curOpenWin)
            {
                jumpWinNameDict.Add(jumpPhase, curOpenWin);
            }
            else
            {
                openWindows[jumpPhase].Clear();
                jumpPhase -= 1;
            }
            Window window = WindowCenter.Instance.Get(curOpenWin);
            window.functionOrder = _functionalOrder;
            window.ChildActive();
            return;
        }
        else
        {
            jumpWinNameDict.Add(jumpPhase, curOpenWin);
        }
        GetPreAllOpenWin();
        jumpWinNameDict.Add(jumpPhase, curOpenWin);
        jumpType = _tagWinSearchModel.Type;
        switch (_tagWinSearchModel.Type)
        {
@@ -972,6 +975,10 @@
            case 1:
            case 4:
                openWinlist = openWindows[jumpPhase];
                if(openWinlist.Contains(obj.name))
                {
                    openWinlist.Remove(obj.name);
                }
                WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
                for (i = 0; i < openWinlist.Count; i++)
                {
@@ -1019,6 +1026,10 @@
                break;
            case 2:
                openWinlist = openWindows[1];
                if (openWinlist.Contains(obj.name))
                {
                    openWinlist.Remove(obj.name);
                }
                WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
                if (!WindowCenter.Instance.IsOpen<MainInterfaceWin>())
                {