少年修仙传客户端代码仓库
client_Hale
2018-09-03 6fc305e2b59c946a444ed884f1d3a3d82ac0e987
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
37个文件已修改
718 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/TreasureUpConfig.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/TrialExchangeConfig.cs 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/TrialExchangeConfig.cs.meta 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Achievement/AchievementGotoPart1.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Achievement/AchievementModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/BlastFurnaceModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCenter.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonTargetBehaviour.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/MultipleDifficultyDungeonWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialDungeonModel.cs 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialExchangeBehaviour.cs 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialExchangeWin.cs 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossWin.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/HallTipsWin.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/MethodToWin.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/PlayerFairyAuTreasureData.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/PlayerMethodData.cs 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/RoleElixirTipWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/CombatModeWin.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/HeadPortraitTip.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainInterfaceWin.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/PlayerTaskDatas.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskListTip.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/Logic/BuyEquipTip.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreModel.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureAnimation.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureCollectBriefInfoBehaviour.cs 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureData.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureLevelUpWin.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureModel.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/FairyJadeInvestmentModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/VipInvestModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/TreasureUpConfig.cs
@@ -1,6 +1,6 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Thursday, August 16, 2018
//    [  Date ]:           Monday, September 03, 2018
//--------------------------------------------------------
using UnityEngine;
@@ -20,6 +20,7 @@
        public int UnLockFuncID { get ; private set ; }
        public int ActiveMWID { get ; private set ; }
        public string ItemAward { get ; private set; } 
        public string DescriptionMainWin { get ; private set; }
        public override string getKey()
        {
@@ -51,6 +52,8 @@
                ActiveMWID=IsNumeric(rawContents[7]) ? int.Parse(rawContents[7]):0; 
            
                ItemAward = rawContents[8].Trim();
                DescriptionMainWin = rawContents[9].Trim();
            }
            catch (Exception ex)
            {
Core/GameEngine/Model/Config/TreasureUpConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 882666fd713678849aebb360643bfe19
timeCreated: 1534419056
timeCreated: 1535946483
licenseType: Pro
MonoImporter:
  serializedVersion: 2
Core/GameEngine/Model/Config/TrialExchangeConfig.cs
@@ -1,16 +1,16 @@
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Monday, August 20, 2018
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class TrialExchangeConfig : ConfigBase {
//--------------------------------------------------------
//    [Author]:            第二世界
//    [  Date ]:           Monday, September 03, 2018
//--------------------------------------------------------
using UnityEngine;
using System;
namespace TableConfig {
    public partial class TrialExchangeConfig : ConfigBase {
        public int id { get ; private set ; }
        public int[] exchangeItemID;
        public int exchangeItemCount { get ; private set ; }
@@ -18,15 +18,16 @@
        public int tokenId { get ; private set ; }
        public int tokenCount { get ; private set ; }
        public string description { get ; private set; } 
        public override string getKey()
        {
            return id.ToString();
        }
        public override void Parse() {
            try
            {
        public string chestDesc { get ; private set; }
        public override string getKey()
        {
            return id.ToString();
        }
        public override void Parse() {
            try
            {
                id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; 
            
                string[] exchangeItemIDStringArray = rawContents[1].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
@@ -45,17 +46,19 @@
                tokenCount=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; 
            
                description = rawContents[6].Trim();
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
                chestDesc = rawContents[7].Trim();
            }
            catch (Exception ex)
            {
                DebugEx.Log(ex);
            }
        }
    }
}
Core/GameEngine/Model/Config/TrialExchangeConfig.cs.meta
@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 95c6c6944c394ac4381e86d9ce3006fb
timeCreated: 1534744580
timeCreated: 1535958653
licenseType: Pro
MonoImporter:
  serializedVersion: 2
System/Achievement/AchievementGotoPart1.cs
@@ -218,7 +218,7 @@
        }
        public static void GotoKylin(int _achievementId)
        public static void GotoKylin_7(int _achievementId)
        {
            dailyQuestModel.currentDailyQuest = (int)DailyQuestType.Kirin;
            var dailyQuestState = dailyQuestModel.GetQuestState((int)DailyQuestType.Kirin);
@@ -236,6 +236,15 @@
            }
        }
        public static void GotoKylin_49(int _achievementId)
        {
            var config = Config.Instance.Get<SuccessConfig>(_achievementId);
            var dungeon = new Dungeon(31190, config.Condition[0] - 1);
            dungeonModel.currentDungeon = dungeon;
            dungeonModel.selectedKylinDungeon = dungeon;
            guideAchievementId = _achievementId;
        }
        //日常界面本身有特效,这个是不要的
        public static void GotoGetDailyActiveValueAward(int _achievementId)
        {
System/Achievement/AchievementModel.cs
@@ -599,8 +599,10 @@
                    AchievementGoto.GotoFairyLand(_achievementId);
                    break;
                case 7:
                    AchievementGoto.GotoKylin_7(_achievementId);
                    break;
                case 49:
                    AchievementGoto.GotoKylin(_achievementId);
                    AchievementGoto.GotoKylin_49(_achievementId);
                    break;
                case 50:
                    AchievementGoto.Goto50(_achievementId);
System/BlastFurnace/BlastFurnaceModel.cs
@@ -751,7 +751,7 @@
            blastFurnacePromoteUpdate();
        }
    }
    public bool IsMakeDrugWin { get;set; }
    public void CheckMakeDrugRedPoint(bool isLogin = false,bool isClick = false)
    {
        bool isCheckRed = false;
@@ -761,7 +761,7 @@
            {
                isCheckRed = true;
            }
            else if(PlayerDatas.Instance.baseData.LV > 151 && !isLogin)
            else if(PlayerDatas.Instance.baseData.LV > 151 && !isLogin && !IsMakeDrugWin)
            {
                isCheckRed = true;
            }
System/Chat/ChatCenter.cs
@@ -9,6 +9,7 @@
{
    public class ChatCenter : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, ISwitchAccount
    {
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
        public override void Init()
        {
            ParseConfig();
@@ -764,6 +765,40 @@
        }
        #endregion
        #region 境界渡劫私聊感谢
        private string[] realmThankChats = new string[7] {"ThankMessage1", "ThankMessage2", "ThankMessage3", "ThankMessage4",
                          "ThankMessage5","ThankMessage6","ThankMessage7"};
        public void CheckSendRealmThanks()
        {
            try
            {
                var model = ModelCenter.Instance.GetModel<DungeonModel>();
                var realmConfig = Config.Instance.Get<RealmConfig>(realmModel.cacheRealmLv);
                if (model.dungeonResult.leaderID == PlayerDatas.Instance.baseData.PlayerID
                    && realmConfig != null && realmConfig.IsBigRealm == 1)
                {
                    var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
                    for (int i = 0; i < teamModel.myTeam.memberCount; i++)
                    {
                        Teammate teammate;
                        if (teamModel.myTeam.TryGetMember(i, out teammate)
                            && teammate.id != PlayerDatas.Instance.baseData.PlayerID && teammate.online)
                        {
                            ChatCtrl.Inst.PteChatID = (int)teammate.id;
                            ChatCtrl.Inst.PteChatName = teammate.mateName;
                            var content = realmThankChats[UnityEngine.Random.Range(0, 7)];
                            ChatCtrl.Inst.SendChatInfo(ChatInfoType.Friend, Language.Get(content));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                DebugEx.Log(e.Message);
            }
        }
        #endregion
    }
}
System/Dungeon/DungeonModel.cs
@@ -987,6 +987,7 @@
                                && dungeonResult.leaderID == PlayerDatas.Instance.baseData.PlayerID)
                            {
                                RealmBossShow.Instance.Open(realmModel.cacheRealmLv);
                                ModelCenter.Instance.GetModel<ChatCenter>().CheckSendRealmThanks();
                            }
                            else
                            {
System/Dungeon/DungeonTargetBehaviour.cs
@@ -100,7 +100,8 @@
                        m_TargetNums[_index].text=StringUtility.Contact(UIHelper.ReplaceLargeNum((ulong)model.mission.totalExp), "/", UIHelper.ReplaceLargeNum((ulong)_targetValue));
                        break;
                    }
                    m_TargetNums[_index].text = UIHelper.ReplaceLargeNum((ulong)model.mission.totalExp);
                    m_TargetNums[_index].text = StringUtility.Contact(UIHelper.ReplaceLargeNum((ulong)model.mission.totalExp),
                        model.mission.isFullExp == 1 ? StringUtility.Contact("  ", Language.Get("FullExp")) : string.Empty);
                    break;
                case DungeonTargetType.Score:
                    if (_targetValue > 0) {
System/Dungeon/MultipleDifficultyDungeonWin.cs
@@ -307,7 +307,7 @@
                if (condition)
                {
                    var guideEffect = AchievementGuideEffectPool.Require(1);
                    var guideEffect = AchievementGuideEffectPool.Require(6);
                    guideEffect.transform.SetParentEx(m_SingleStart.transform, Vector3.zero, Vector3.zero, Vector3.one);
                }
            }
System/Dungeon/TrialDungeonModel.cs
@@ -209,17 +209,17 @@
            {
                NewBieCenter.Instance.RemoveNewBieGuide(TRIALEXCHANGE_GUIDE);
            }
            var tokenConfig = Config.Instance.Get<ItemConfig>(config.tokenId);
            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
                Language.Get("TokenUseConfirm", config.tokenCount, tokenConfig.ItemName, config.description), (bool isOk) =>
                   {
                       if (isOk)
                       {
                           CA32F_tagCMTrialExchange pak = new CA32F_tagCMTrialExchange();
                           pak.ID = (uint)_id;
                           GameNetSystem.Instance.SendInfo(pak);
                       }
                   });
            //var tokenConfig = Config.Instance.Get<ItemConfig>(config.tokenId);
            //ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
            //    Language.Get("TokenUseConfirm", config.tokenCount, tokenConfig.ItemName, config.description), (bool isOk) =>
            //       {
            //           if (isOk)
            //           {
            CA32F_tagCMTrialExchange pak = new CA32F_tagCMTrialExchange();
            pak.ID = (uint)_id;
            GameNetSystem.Instance.SendInfo(pak);
            //           }
            //       });
            return true;
        }
System/Dungeon/TrialExchangeBehaviour.cs
@@ -9,11 +9,15 @@
{
    public class TrialExchangeBehaviour : MonoBehaviour
    {
        [SerializeField] RectTransform m_ContainerSpecial;
        [SerializeField] RectTransform m_ContainerNormal;
        [SerializeField] Image m_Bottom;
        [SerializeField] ItemCell m_Item;
        [SerializeField] Text m_Description;
        [SerializeField] Text m_SpecialDescription;
        [SerializeField] Text m_ChestDescription;
        [SerializeField] ItemBehaviour m_Token;
        [SerializeField] Button m_Exchange;
        [SerializeField] LongPressButton m_Exchange;
        [SerializeField] Image m_Redpoint;
        [SerializeField] Image m_Up;
        [SerializeField] Image m_Down;
@@ -25,7 +29,8 @@
        int trialExchangeId = 0;
        private void Awake()
        {
            m_Exchange.AddListener(Exchange);
            m_Exchange.onClick.AddListener(Exchange);
            m_Exchange.onPress.AddListener(LongPress);
        }
        private void Exchange()
@@ -33,23 +38,54 @@
            if (trialExchangeId != 0)
            {
                int error = 0;
                if (!model.TrialSendExchange(trialExchangeId, out error))
                var config = Config.Instance.Get<TrialExchangeConfig>(trialExchangeId);
                if (config != null)
                {
                    if (error == 1)
                    var itemConfig = Config.Instance.Get<ItemConfig>(model.GetExchangeItemByJob(config));
                    ItemAttrData itemAttrData = new ItemAttrData(itemConfig.ID, true, (ulong)config.exchangeItemCount, -1, config.exchangeItemIsBind);
                    ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData, false);
                    ModelCenter.Instance.GetModel<ItemTipsModel>().curAttrData.SetTipsFuncBtn(ItemWinBtnType.exchange,
                        (ItemWinBtnType btnType, string value) =>
                     {
                         if (btnType == ItemWinBtnType.exchange)
                         {
                             if (!model.TrialSendExchange(trialExchangeId, out error))
                             {
                                 if (error == 1)
                                 {
                                     ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(config.tokenId);
                                 }
                             }
                         }
                     });
                    ModelCenter.Instance.GetModel<ItemTipsModel>().ShowUICtrl();
                }
            }
        }
        private void LongPress()
        {
            if (trialExchangeId != 0)
            {
                var config = Config.Instance.Get<TrialExchangeConfig>(trialExchangeId);
                if (config != null)
                {
                    var itemConfig = Config.Instance.Get<ItemConfig>(model.GetExchangeItemByJob(config));
                    if (itemConfig.EquipPlace == 0)
                    {
                        var config = Config.Instance.Get<TrialExchangeConfig>(trialExchangeId);
                        if (config != null)
                        {
                            ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(config.tokenId);
                        }
                        return;
                    }
                    ItemAttrData itemAttrData = new ItemAttrData(itemConfig.ID, true, (ulong)config.exchangeItemCount, -1, config.exchangeItemIsBind, true);
                    ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
                }
            }
        }
        public void Display(int id, bool equipBetter = true, bool first = false)
        {
            m_Bottom.SetSprite(first ? "SpecialExchangeBottom" : "Title_PopupWindow");
            m_Bottom.SetSprite(first ? "XT_VIP_63" : "XT_VIP_63");
            m_ContainerSpecial.gameObject.SetActive(first);
            m_ContainerNormal.gameObject.SetActive(!first);
            trialExchangeId = id;
            var config = Config.Instance.Get<TrialExchangeConfig>(id);
            if (config == null)
@@ -67,9 +103,18 @@
                ModelCenter.Instance.GetModel<ItemTipsModel>().SetItemTipsModel(itemAttrData);
            });
            m_Description.text = config.description;
            if (m_SpecialDescription != null)
            {
                m_SpecialDescription.text = config.description;
            }
            if (m_ChestDescription != null)
            {
                m_ChestDescription.text = config.chestDesc;
            }
            m_Token.SetItem(config.tokenId, config.tokenCount);
            var count = model.GetTrialTokenCount(config.tokenId);
            m_Token.count.color = UIHelper.GetUIColor(count >= config.tokenCount ? TextColType.Green : TextColType.NavyBrown, true);
            m_Token.count.text = StringUtility.Contact(count >= config.tokenCount ? "<color=#109d06>" : string.Empty, count,
                count >= config.tokenCount ? "</color>" : string.Empty, "/", config.tokenCount);
            var equipCompare = model.EquipCompare(model.GetExchangeItemByJob(config));
            m_Up.gameObject.SetActive(equipCompare == 1);
            m_Down.gameObject.SetActive(equipCompare == -1);
System/Dungeon/TrialExchangeWin.cs
@@ -18,8 +18,8 @@
        [SerializeField] Text m_SelectClass;
        [SerializeField] Button m_SelectClassUp;
        [SerializeField] TrialSelectClassBehaviour m_SelectClassBehaviour;
        [SerializeField] ItemBehaviour[] m_Tokens;
        [SerializeField] Text[] m_TokenCounts;
        //[SerializeField] ItemBehaviour[] m_Tokens;
        //[SerializeField] Text[] m_TokenCounts;
        [SerializeField] Button m_Close;
        TrialDungeonModel model { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } }
@@ -189,23 +189,23 @@
        void DisplayTokens()
        {
            var list = model.trialClassTokens.ContainsKey(model.selectEquipClass) ? model.trialClassTokens[model.selectEquipClass] : null;
            for (int i = 0; i < m_Tokens.Length; i++)
            {
                if (list != null && i < list.Count)
                {
                    m_Tokens[i].gameObject.SetActive(model.selectEquipClass != 1);
                    if (model.selectEquipClass != 1)
                    {
                        m_Tokens[i].SetItem(list[i], 0);
                        m_TokenCounts[i].text = model.GetTrialTokenCount(list[i]).ToString();
                    }
                }
                else
                {
                    m_Tokens[i].gameObject.SetActive(false);
                }
            }
            //var list = model.trialClassTokens.ContainsKey(model.selectEquipClass) ? model.trialClassTokens[model.selectEquipClass] : null;
            //for (int i = 0; i < m_Tokens.Length; i++)
            //{
            //    if (list != null && i < list.Count)
            //    {
            //        m_Tokens[i].gameObject.SetActive(model.selectEquipClass != 1);
            //        if (model.selectEquipClass != 1)
            //        {
            //            m_Tokens[i].SetItem(list[i], 0);
            //            m_TokenCounts[i].text = model.GetTrialTokenCount(list[i]).ToString();
            //        }
            //    }
            //    else
            //    {
            //        m_Tokens[i].gameObject.SetActive(false);
            //    }
            //}
        }
        private void SelectEquipClassEvent()
System/FairyAu/FairyGrabBossBehaviour.cs
@@ -128,7 +128,7 @@
            }
            m_ContainerKilled.gameObject.SetActive(killed && opened);
            m_ContainerKilling.gameObject.SetActive(!killed && opened);
            m_BossPortrait.material = opened ? m_SmoothMask.imageMaterials[0] : m_SmoothMask.imageMaterials[1];
            m_BossPortrait.material = opened && !killed ? m_SmoothMask.imageMaterials[0] : m_SmoothMask.imageMaterials[1];
            m_ContainerMapName.gameObject.SetActive(!opened);
        }
System/FairyAu/FairyGrabBossWin.cs
@@ -180,6 +180,10 @@
            var error = 0;
            if (model.TestEnterDungeon(model.selectBoss, out error))
            {
                if (IsBossKilled(model.selectBoss))
                {
                    SysNotifyMgr.Instance.ShowTip("FairyGrabBossOver");
                }
                WindowJumpMgr.Instance.ClearJumpData();
                WindowCenter.Instance.Close<LootPreciousFrameWin>();
                MapTransferUtility.Instance.MoveToNPC(model.selectBoss);
@@ -188,6 +192,18 @@
            {
                model.DisplayErrorTip(error);
            }
        }
        bool IsBossKilled(int bossId)
        {
            FairyGrabBossModel.BossProgressInfo bossProgress;
            bool killed = false;
            if (model.TryGetBossProgress(bossId, out bossProgress))
            {
                var progress = 1 - (float)bossProgress.currentHp / bossProgress.totalHp;
                killed = progress >= 1;
            }
            return killed;
        }
        private void KillRecord()
@@ -221,10 +237,11 @@
        void BossAllProgressUpdate()
        {
            if (!autoSelect)
            if (!autoSelect && model.InActivityTime)
            {
                AutoSelect();
            }
            autoSelect = true;
        }
        private void StateUpdate()
@@ -234,7 +251,6 @@
        void AutoSelect()
        {
            autoSelect = true;
            var index = 0;
            for (int i = 0; i < model.bosses.Count; i++)
            {
System/FairyAu/HallTipsWin.cs
@@ -80,6 +80,14 @@
        {
            if (PlayerDatas.Instance.fairyData.fairy == null) return;
            _FamilyPosition = (int)PlayerDatas.Instance.fairyData.mine.FamilyLV;
            if (_FamilyPosition >= 2)
            {
                _UpdateBtn.gameObject.SetActive(true);
            }
            else
            {
                _UpdateBtn.gameObject.SetActive(false);
            }
            AssignValueToRefresh();//属性赋值和刷新
        }
System/FairyAu/MethodToWin.cs
@@ -330,7 +330,7 @@
                    CA607_tagCMFamilyTechLVUP tag_CA607 = new CA607_tagCMFamilyTechLVUP();
                    tag_CA607.TechID = (uint)indexID;
                    GameNetSystem.Instance.SendInfo(tag_CA607);
                    DebugEx.LogError("输出心法科技需要提升的技能IndexID"+ indexID);
                }
                else
                {
System/FairyAu/PlayerFairyAuTreasureData.cs
@@ -243,7 +243,7 @@
    private void IsShowRedPoint()
    {
        int GetDayOfYear = DateTime.Now.DayOfYear;
        string strKey= "Treasure"+ PlayerDatas.Instance.baseData.LV;
        string strKey= "Treasure"+ PlayerDatas.Instance.baseData.PlayerID;
        int day = LocalSave.GetInt(strKey);
        if (day != GetDayOfYear && IsEquipmentComparison())
        {
System/FairyAu/PlayerMethodData.cs
@@ -5,7 +5,7 @@
using UnityEngine;
using System;
//心法科技
public  class SkillsInformation
public class SkillsInformation
{
    public int id;//单位数id
    public int SkillID;//技能ID
@@ -14,7 +14,7 @@
public class PlayerMethodData : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
  public  Dictionary<int, SkillsInformation> _DicSkill = new Dictionary<int, SkillsInformation>();//存储心法
    public Dictionary<int, SkillsInformation> _DicSkill = new Dictionary<int, SkillsInformation>();//存储心法
    public Dictionary<int, Redpoint> MethodRedPointDic = new Dictionary<int, Redpoint>();//心法列表红点
    public Dictionary<int, Redpoint> MethodRedPointBtnDic = new Dictionary<int, Redpoint>();//心法按钮红点
@@ -32,18 +32,18 @@
    {
        string str = Config.Instance.Get<FuncConfigConfig>("FamilyTechNeedLV").Numerical1;
        MethodDataNeedLVDic = ConfigParse.GetDic<int, int>(str);
    }
    public override void UnInit()
    {
    }
    public void OnBeforePlayerDataInitialize()
    {
        _ContributionNumber = 0;
    }
@@ -74,14 +74,14 @@
            }
        }
    }
    private const int RedPoint_key1= 1070101;//心法红点
    private const int RedPoint_key1 = 1070101;//心法红点
    private Redpoint redPointStre1 = new Redpoint(MainRedDot.FAIRY_REDPOINT_KEY2, RedPoint_key1);
    public Redpoint fairyHeartRedpoint { get { return redPointStre1; } }
    private const int RedPoint_key2 = 1070104;//仙盟大厅红点
    private Redpoint redPointStre2 = new Redpoint(MainRedDot.FAIRY_REDPOINT_KEY2, RedPoint_key2);
    private void FairyAuMethodDic()//仙盟心法列表红点
    {
        if ( MethodRedPointDic.Count!=0)
        if (MethodRedPointDic.Count != 0)
        {
            return;
        }
@@ -98,9 +98,9 @@
            }
        }
    }
    private void  FairyAuMethodRedPoint()//仙盟心法红点
    private void FairyAuMethodRedPoint()//仙盟心法红点
    {
        if (!fairyModel.fairyMethodToOpen || MethodRedPointBtnDic.Count == 0)
        if (MethodRedPointBtnDic.Count == 0)
        {
            return;
        }
@@ -108,7 +108,10 @@
        {
            MethodRedPointBtnDic[key].state = RedPointState.None;
        }
        if (!fairyModel.fairyMethodToOpen)
        {
            return;
        }
        foreach (var key in _DicSkill.Keys)
        {
            if (MethodDataNeedLVDic.ContainsKey(_DicSkill[key].id) && PlayerDatas.Instance.baseData.LV >= MethodDataNeedLVDic[_DicSkill[key].id])
@@ -116,7 +119,7 @@
                var familyTechConfig = Config.Instance.Get<FamilyTechConfig>(_DicSkill[key].SkillID + 1);
                if (_DicSkill[key].SkillLV > 0)
                {
                    if (familyTechConfig == null)
                    {
                        continue;
@@ -162,16 +165,16 @@
    {
        for (int i = 0; i < info.TechCnt; i++)
        {
            if (!_DicSkill.ContainsKey(info.TechInfoList[i].TechID))
            {
                SkillsInformation _skill = new SkillsInformation();
                _skill.id = info.TechInfoList[i].TechID;
                _skill.SkillID = Skill_ID(info.TechInfoList[i].TechID, info.TechInfoList[i].TechLV);
                _skill.SkillLV = info.TechInfoList[i].TechLV;
                _DicSkill.Add(info.TechInfoList[i].TechID, _skill);
            }
            else
            {
@@ -181,10 +184,10 @@
                _DicSkill[info.TechInfoList[i].TechID].SkillLV = info.TechInfoList[i].TechLV;
                if (EventHA504 != null)
                    EventHA504();
            }
        }
        FairyAuMethodRedPoint();
        FairyAuMethodDic();
    }
@@ -217,5 +220,5 @@
            Event_CepaContribution();
    }
}
System/KnapSack/Logic/ItemTipsModel.cs
@@ -271,8 +271,6 @@
            FuncConfigConfig expFormula = Config.Instance.Get<FuncConfigConfig>("ExpValueDes");
            expValueFormula = expFormula.Numerical1;
            FuncConfigConfig funcConfig = Config.Instance.Get<FuncConfigConfig>("VipGiftTreasureEffect");
            #region 灵宠坐骑解锁
            unlockPetDict = new Dictionary<int, PetInfoConfig>();
            petSkillDict.Clear();
System/KnapSack/Logic/RoleElixirTipWin.cs
@@ -30,11 +30,13 @@
            presentIndex = 0;
            CreateCell();
            CheckJumpToModel();
            ModelCenter.Instance.GetModel<BlastFurnaceModel>().IsMakeDrugWin = true;
        }
        private void OnDisable()
        {
            ctrl.OnRefreshCell -= RefreshMakeDrugCell;
            ModelCenter.Instance.GetModel<BlastFurnaceModel>().IsMakeDrugWin = false;
        }
        private void CheckJumpToModel()
System/MainInterfacePanel/CombatModeWin.cs
@@ -50,7 +50,9 @@
        {
            int MapID = PlayerDatas.Instance.baseData.MapID;
            var config = Config.Instance.Get<MapConfig>(MapID);
            if (fairyGrabBossModel.grabBossHintOpen)//再前四章新手地图且在活动区域
            var activityline = 0;
            fairyGrabBossModel.TryGetFairyGrabBossLine(out activityline);
            if (activityline == PlayerDatas.Instance.baseData.FBID)//再前四章新手地图且在活动区域
            {
                AtkTypeList = new int[] { 0, 5 };
            }
@@ -110,18 +112,7 @@
            _PkButton.StateSelection.RemoveAllListeners();
            bool IsBossBool = MapArea.IsInMapArea(PlayerDatas.Instance.hero.CurMapArea, MapArea.E_Type.Boss);//是否在Boss区域
            _PkButton.StateSelection.AddListener(() =>
            {
                if (PlayerDatas.Instance.baseData.MapID == 10040 && IsBossBool)//御剑山庄boss区域特殊处理(可切换状态)
                {
                    DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)cell.index);
                    Close();
                    return;
                }
                if (onMainModel.ActivityList.Contains(PlayerDatas.Instance.baseData.MapID) && !fairyGrabBossModel.grabBossHintOpen)//再前四章新手地图且不在活动区域
                {
                    Close();//不允许切换
                    return;
                }
            {
                DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)cell.index);
                Close();
            });
@@ -166,12 +157,8 @@
                    break;
                default:
                    break;
            }
        }
    }
System/MainInterfacePanel/HeadPortraitTip.cs
@@ -190,6 +190,7 @@
        private void OnSwitchAttackMode(E_AttackMode obj)//PK状态切换
        {
            TextSwitch((int)obj);
        }
        void PatternButton(GameObject obj)
        {
@@ -208,7 +209,9 @@
                    }
                    return;
                }
                if (onMainModel.ActivityList.Contains(PlayerDatas.Instance.baseData.MapID) && !fairyGrabBossModel.grabBossHintOpen)//再前四章新手地图且不在活动区域
                var activityline = 0;
                fairyGrabBossModel.TryGetFairyGrabBossLine(out activityline);
                if (onMainModel.ActivityList.Contains(PlayerDatas.Instance.baseData.MapID) && activityline!=PlayerDatas.Instance.baseData.FBID)//再前四章新手地图且不在活动区域
                {
                    SysNotifyMgr.Instance.ShowTip("Map_AtkType");
                    return;
@@ -224,7 +227,6 @@
            {
                SysNotifyMgr.Instance.ShowTip("Map_AtkType");
            }
        }
        void TextSwitch(int _EnumType)
        {
@@ -270,10 +272,7 @@
                    break;
                default:
                    break;
            }
        }
        void BuffButton(GameObject obj)
@@ -394,10 +393,7 @@
                    break;
                default:
                    break;
            }
        }
System/MainInterfacePanel/MainInterfaceWin.cs
@@ -1056,22 +1056,6 @@
        private void bossGrabHintEvent()
        {
            IsShowTaskPanel();
            int mapID = PlayerDatas.Instance.baseData.MapID;
            var config = Config.Instance.Get<MapConfig>(mapID);
            if (fairyGrabBossModel.grabBossHintOpen)
            {
                if (Buffmodel.PkType != config.Camp)
                {
                    DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)config.Camp);
                }
            }
            else
            {
                if (Buffmodel.PkType != config.Camp)
                {
                    DTCA202_tagMCAttackMode.Send_SwitchAttackMode((E_AttackMode)config.Camp);
                }
            }
        }
    }
System/MainInterfacePanel/PlayerTaskDatas.cs
@@ -286,6 +286,10 @@
    void DefaultDialogue()//关于打开默认对话界面
    {
        if (NewBieCenter.Instance.inGuiding || ModelCenter.Instance.GetModel<TreasureModel>().newGotShowing)
        {
            return;
        }
        bool IsOpenMain = WindowCenter.Instance.CheckOpen<MainInterfaceWin>();
        if (!WindowCenter.Instance.CheckOpen<DefaultDialogueBoxWin>() && IsOpenMain)
        {
System/MainInterfacePanel/TaskListTip.cs
@@ -37,7 +37,6 @@
        PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
        PlayerMainDate m_MainModel;
        PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
        List<int> RenzhuTaskIDList = new List<int>();//法宝任务数组ID
        List<int> ListSort = new List<int>();//用于排列顺序(未卡级)
        List<int> ListSort1 = new List<int>();//用于排序(卡级)
        private void Start()
@@ -95,15 +94,6 @@
                    ListSort1.Add(TaskSortType2[i]);
                }
            }
            if (RenzhuTaskIDList.Count <= 0)
            {
                int[] RenzhuTaskID1 = ConfigParse.GetMultipleStr<int>(RenzhuTaskID.Numerical1);
                for (int i = 0; i < RenzhuTaskID1.Length; i++)
                {
                    RenzhuTaskIDList.Add(RenzhuTaskID1[i]);
                }
            }
            PlayerTaskDatas.Event_TaskToAdd += TaskToAdd;//任务的添加
            PlayerTaskDatas.Event_TaskRefreshes += TaskRefreshes;//任务的刷新
            PlayerTaskDatas.Event_TaskToDelete += OnTaskToDelete;//任务的删除
@@ -211,7 +201,7 @@
            TaskScheduling();
            bool IsDefault = true;
            var State = taskmodel.GetTaskStatus(_id);
            if (State == PlayerTaskDatas.TaskStatus.CardLevel || (State == PlayerTaskDatas.TaskStatus.TreasureCardLevel && !RenzhuTaskIDList.Contains(_id)))
            if (State == PlayerTaskDatas.TaskStatus.CardLevel)
            {
                IsDefault = false;
            }
@@ -399,7 +389,7 @@
            foreach (var key in taskmodel.MainTaskDic.Keys)
            {
                var State = taskmodel.GetTaskStatus(key);
                if (State == PlayerTaskDatas.TaskStatus.CardLevel || (State == PlayerTaskDatas.TaskStatus.TreasureCardLevel && !RenzhuTaskIDList.Contains(key)))
                if (State == PlayerTaskDatas.TaskStatus.CardLevel)
                {
                    IsDefault = false;
                }
System/Store/Logic/BuyEquipTip.cs
@@ -124,10 +124,12 @@
        [SerializeField]
        Button buyCountBtn;
        #endregion
        [SerializeField]
        Button buyBtn;
        RectTransform btnGroup;
        [SerializeField]
        GameObject operateBtn;
        #endregion
        [SerializeField] Text buyBtnText;
@@ -171,7 +173,6 @@
            shopItemLimit = m_storeModel.GetBuyShopLimit((uint)buyItem.storeConfig.ID);
            InitUI();
            closeBtn.AddListener(OnClickCloseBtn);
            buyBtn.AddListener(OnClickBuyBtn);
            reduceBtn.onClick.AddListener(OnClickReduceBuyNum);
            plusBtn.onClick.AddListener(OnClickPlusBuyNum);
            buyCountBtn.onClick.AddListener(OnClickCountBtn);
@@ -251,12 +252,12 @@
            }
            #endregion
            CreateFuncBtn();
        }
        private void OnDisable()
        {
            closeBtn.RemoveAllListeners();
            buyBtn.RemoveAllListeners();
            reduceBtn.RemoveAllListeners();
            plusBtn.RemoveAllListeners();
            buyCountBtn.RemoveAllListeners();
@@ -661,27 +662,59 @@
                if (curVipIndex != -1)
                {
                    buyBtn.gameObject.SetActive(true);
                    btnGroup.gameObject.SetActive(true);
                    buyCnt = buyItem.GetCurBuyCnt(1, canBuyCnt, isVipBuy, out isReachUpper);
                }
                else
                {
                    buyBtn.gameObject.SetActive(false);
                    btnGroup.gameObject.SetActive(false);
                    buyCnt = buyItem.GetCurBuyCnt(0, canBuyCnt, isVipBuy, out isReachUpper);
                }
            }
            else
            {
                vipInfoText.gameObject.SetActive(false);
                buyBtn.gameObject.SetActive(true);
                btnGroup.gameObject.SetActive(true);
                buyCnt = buyItem.GetCurBuyCnt(1, canBuyCnt, isVipBuy, out isReachUpper);
            }
            buyCountText.text = buyCnt.ToString();
            RefreshBuyPrice(buyCnt);
            moneyIcon.SetIconWithMoneyType(buyItem.storeConfig.MoneyType);
            m_storeModel.SetBuyCnt(buyCnt);
        }
        private void CreateFuncBtn()
        {
            btnGroup.anchoredPosition3D = Vector3.zero;
            if (itemAttrData.tipsFuncBtnDic.Count > 0)
            {
                foreach (ItemWinBtnType key in itemAttrData.tipsFuncBtnDic.Keys)
                {
                    Button btn = OnGUIButton(btnGroup.gameObject, operateBtn, key.ToString(), Language.Get(StringUtility.Contact("ItemHandle_", key.ToString())));
                    btn.RemoveAllListeners();
                    btn.onClick.AddListener(() => {
                        OnClickCloseBtn();
                        itemAttrData.tipsFuncBtnDic[key](key, "");
                    });
                }
            }
        }
        private Button OnGUIButton(GameObject parent, GameObject sourceBtn, string btnName, string textName)
        {
            GameObject go = Instantiate(sourceBtn);
            go.name = btnName;
            go.transform.SetParent(parent.transform);
            go.transform.Find("BtnText").GetComponent<Text>().text = textName;
            go.transform.localPosition = Vector3.zero;
            go.transform.localScale = Vector3.one;
            Button btn = go.GetComponent<Button>();
            go.SetActive(true);
            KnapSackEventMgr.Instance.SetEquipWinTempObj(go);
            return btn;
        }
        private void SetBottomText(EquipSource source)
        {
@@ -766,7 +799,8 @@
            {
                buyCountText.text = buyCnt.ToString();
                numKeyboard.gameObject.SetActive(false);
            }
                m_storeModel.SetBuyCnt(buyCnt);
            }
        }
        private void OnClickPlusBuyNum()
@@ -776,6 +810,7 @@
            buyCnt = buyItem.GetCurBuyCnt(buyCnt, GetRemainBuyCnt(), isVipBuy, out isReachUpper);
            buyCountText.text = buyCnt.ToString();
            RefreshBuyPrice(buyCnt);
            m_storeModel.SetBuyCnt(buyCnt);
            if (isReachUpper)
            {
                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
@@ -790,31 +825,7 @@
            buyCnt = buyItem.GetCurBuyCnt(buyCnt, GetRemainBuyCnt(), isVipBuy, out isReachUpper);
            buyCountText.text = buyCnt.ToString();
            RefreshBuyPrice(buyCnt);
        }
        private void OnClickBuyBtn()
        {
            if (shopItemLimit != null)
            {
                int remainNum = 0;
                if (isVipBuy)
                {
                    remainNum = buyItem.storeConfig.PurchaseNumber[curVipIndex] - shopItemLimit.BuyCnt;
                }
                else
                {
                    remainNum = buyItem.storeConfig.PurchaseNumber[0] - shopItemLimit.BuyCnt;
                }
                if (remainNum < 1)
                {
                    MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
                    return;
                }
            }
            m_storeModel.SendBuyShopItem(buyItem.storeConfig, buyCnt);
            OnClickCloseBtn();
            m_storeModel.SetBuyCnt(buyCnt);
        }
        private void OnClickCloseBtn()
System/Store/StoreModel.cs
@@ -367,7 +367,42 @@
        //SetOpenBuyType(chinModel);
        ItemAttrData attrData = new ItemAttrData(ReplaceItemIdByJob(shopInfo.ID,shopInfo.ItemID),true, (ulong)shopInfo.ItemCnt,-1,shopInfo.IsBind,true,PackType.rptDeleted
            ,"",null,ItemTipChildType.Buy);
        itemTipsModel.SetItemTipsModel(attrData);
        itemTipsModel.SetItemTipsModel(attrData,false);
        attrData.SetTipsFuncBtn(ItemWinBtnType.buy,(ItemWinBtnType type ,string id) => { OnClickBuyBtn(ItemWinBtnType.buy, shopInfo.ID); });
        itemTipsModel.ShowUICtrl();
    }
    public int BuyCnt { get; private set; }
    public void SetBuyCnt(int buyCnt)
    {
        BuyCnt = buyCnt;
    }
    private void OnClickBuyBtn(ItemWinBtnType type, int shopId)
    {
        BuyShopItemLimit shopItemLimit = GetBuyShopLimit((uint)shopId);
        StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(shopId);
        int curVipIndex = -1;
        int nextVipIndex = -1;
        bool isVipBuy = BuyItemPopModel.Instance.CheckIsVipBuy(storeConfig, out curVipIndex, out nextVipIndex);
        if (shopItemLimit != null)
        {
            int remainNum = 0;
            if (isVipBuy)
            {
                remainNum = storeConfig.PurchaseNumber[curVipIndex] - shopItemLimit.BuyCnt;
            }
            else
            {
                remainNum = storeConfig.PurchaseNumber[0] - shopItemLimit.BuyCnt;
            }
            if (remainNum < 1)
            {
                MessageWin.Inst.ShowFixedTip(Language.Get("StoreWin109"));
                return;
            }
        }
        SendBuyShopItem(storeConfig,BuyCnt);
    }
    #endregion
System/Treasure/TreasureAnimation.cs
@@ -98,6 +98,7 @@
                    if (value == TreasureShowStep.UnLock)
                    {
                        m_ProgressPosTween.SetEndState();
                        m_PotentialSclTween.SetEndState();
                        UI3DTreasureSelectStage.Instance.SetEndState();
                    }
                    return;
@@ -643,6 +644,7 @@
            OnEnterPotential();
            m_ProgressPosTween.SetEndState();
            m_AchievementPosTween.SetEndState();
            m_PotentialSclTween.SetEndState();
            UI3DTreasureSelectStage.Instance.Tween(() =>
System/Treasure/TreasureCollectBriefInfoBehaviour.cs
@@ -8,6 +8,7 @@
using TableConfig;
using System;
using System.Collections.Generic;
using LitJson;
namespace Snxxz.UI
{
@@ -28,9 +29,11 @@
        bool dirty = false;
        int m_DisplayTreasureId = 0;
        int displayTreasureId {
        int displayTreasureId
        {
            get { return m_DisplayTreasureId; }
            set {
            set
            {
                if (m_DisplayTreasureId != value)
                {
                    m_DisplayTreasureId = value;
@@ -40,9 +43,11 @@
        }
        DisplayState m_DisplayState = DisplayState.None;
        DisplayState displayState {
        DisplayState displayState
        {
            get { return m_DisplayState; }
            set {
            set
            {
                if (m_DisplayState != value)
                {
                    m_DisplayState = value;
@@ -52,9 +57,11 @@
        }
        int m_EffectState = 0;
        int effectState {
        int effectState
        {
            get { return m_EffectState; }
            set {
            set
            {
                if (m_EffectState != value)
                {
                    m_EffectState = value;
@@ -293,13 +300,7 @@
                        m_Description.text = Language.Get("FabaoState_Text_3");
                        break;
                    case DisplayState.AwakenUnderway:
                        var progress = 1f;
                        if (treasure != null && config.PreferredStage != 0)
                        {
                            progress = (float)treasure.stage / config.PreferredStage;
                        }
                        m_Description.text = Language.Get("FabaoState_Text_4", Mathf.RoundToInt(progress * 100f));
                        DisplayTreasureUpStage(treasure.GetStageId(treasure.stage + 1));
                        break;
                    case DisplayState.WaitUnLock:
                        Achievement achievement = null;
@@ -534,6 +535,25 @@
            }
        }
        private void DisplayTreasureUpStage(int _stage)
        {
            var config = Config.Instance.Get<TreasureUpConfig>(_stage);
            if (config != null)
            {
                var json = JsonMapper.ToObject(config.DescriptionMainWin);
                var job = PlayerDatas.Instance.baseData.Job;
                if (json.Keys.Contains(job.ToString()))
                {
                    m_Description.text = json[job.ToString()].ToString();
                }
                else
                {
                    m_Description.text = json["0"].ToString();
                }
            }
        }
        enum DisplayState
        {
            None,
System/Treasure/TreasureData.cs
@@ -239,6 +239,8 @@
            treasureStages.Add(_stage);
        }
        public void UpdateTreasureLevelExp(int _lv, int _exp, bool _hasClickChallenge)
        {
            stage = _lv;
@@ -272,6 +274,19 @@
                return false;
            }
            return stage >= _stage.stage;
        }
        public int GetStageId(int _stageIndex)
        {
            foreach (var item in treasureStages)
            {
                if (item.stage == _stageIndex)
                {
                    return item.id;
                }
            }
            return 0;
        }
        public int GetStageIndex(int _stage)
@@ -516,7 +531,7 @@
        public int successRate;
        public int levelUpId;
        public PotentialBook(int _itemId, int _needCount, int _successRate,int _levelUpId)
        public PotentialBook(int _itemId, int _needCount, int _successRate, int _levelUpId)
        {
            this.itemId = _itemId;
            this.needCount = _needCount;
@@ -534,6 +549,8 @@
    public class TreasureStage
    {
        public int id { get; private set; }
        public int stage { get; set; }
        public TreasureStageUnlock unlockType { get; private set; }
        public Dictionary<int, int> propertyDict { get; private set; }
@@ -546,8 +563,10 @@
        public const int selectedSfxId = 5144;
        public string sfxGotState { get; private set; }
        public string sfxUnGotState { get; private set; }
        public TreasureStage(TreasureUpConfig _config)
        {
            id = _config.ID;
            unlockType = TreasureStageUnlock.None;
            if (_config.UnLockFuncID != 0)
            {
System/Treasure/TreasureLevelUpWin.cs
@@ -476,6 +476,13 @@
            }
            m_GetTreasureBtn.gameObject.SetActive(!_unlockAchievement || achievement.completed);
            m_ContainerLimit.gameObject.SetActive(_unlockAchievement && !achievement.completed);
            if (model.IsVersionUnOpenTreasure(m_Treasure.id))
            {
                m_TreasureChallengeLimit.text = Language.Get("TreasureNoOpen");
                return;
            }
            if (_unlockAchievement && !achievement.completed)
            {
                var _achievementConfig = Config.Instance.Get<SuccessConfig>(_achievementId);
System/Treasure/TreasureModel.cs
@@ -173,6 +173,7 @@
        List<int> eightFurnacesAchievements = new List<int>();
        List<int> m_CacheGotAchievements = new List<int>();
        Dictionary<int, int> treasureStageShowDict = new Dictionary<int, int>();
        List<int> treasureUnOpens = new List<int>();//版本未开放法宝
        public Dictionary<int, int> fairyTreasureGetDict { get; private set; }
@@ -1178,6 +1179,11 @@
            return eightFurnacesAchievements;
        }
        public bool IsVersionUnOpenTreasure(int _id)
        {
            return treasureUnOpens.Contains(_id);
        }
        private void ParseConfigs()
        {
            var treasureConfigs = Config.Instance.GetAllValues<TreasureConfig>();
@@ -1289,6 +1295,9 @@
            treasureBackPercent = float.Parse(funcConfig.Numerical2);
            funcConfig = Config.Instance.Get<FuncConfigConfig>("TreasureExitLimit");
            treasureExitLvLimit = int.Parse(funcConfig.Numerical1);
            funcConfig = Config.Instance.Get<FuncConfigConfig>("TreasureNoOpen");
            treasureUnOpens.AddRange(ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1));
        }
        const string pattern = "\\\"[0-9]\\\":\\[[0-9|,]*\\]";
System/Vip/FairyJadeInvestmentModel.cs
@@ -345,7 +345,7 @@
    private void IsShowRedPointSimple()
    {
        int GetDayOfYear = DateTime.Now.DayOfYear;
        string strKey = "IsOpenFiaryJadeRedPoint" + PlayerDatas.Instance.baseData.LV;
        string strKey = "IsOpenFiaryJadeRedPoint" + PlayerDatas.Instance.baseData.PlayerID;
        int day = LocalSave.GetInt(strKey);
        if (day != GetDayOfYear)
        {
System/Vip/VipInvest/VipInvestModel.cs
@@ -467,7 +467,7 @@
        private void IsShowRedPointSimple()
        {
            int GetDayOfYear = DateTime.Now.DayOfYear;
            string strKey = "IsOpenVipRedPoint" + PlayerDatas.Instance.baseData.LV;
            string strKey = "IsOpenVipRedPoint" + PlayerDatas.Instance.baseData.PlayerID;
            int day = LocalSave.GetInt(strKey);
            if (day != GetDayOfYear)
            {
System/WindowJump/WindowJumpMgr.cs
@@ -19,8 +19,10 @@
    private Dictionary<int, List<string>> openWindows = new Dictionary<int, List<string>>();
    private Dictionary<int, string> jumpWinNameDict = new Dictionary<int, string>();
    PlayerPetDatas m_petModel;
    PlayerPetDatas petmodel {
        get {
    PlayerPetDatas petmodel
    {
        get
        {
            return m_petModel ?? (m_petModel = ModelCenter.Instance.GetModel<PlayerPetDatas>());
        }
    }
@@ -44,7 +46,7 @@
    TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } }
    ImpactRankModel rankModel { get { return ModelCenter.Instance.GetModel<ImpactRankModel>(); } }
    public bool IsJumpState { get; private set;}
    public bool IsJumpState { get; private set; }
    private int jumpPhase = 0;
    public void GetPreAllOpenWin()
@@ -84,12 +86,12 @@
    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);
@@ -106,6 +108,7 @@
            case JumpUIType.UnionTask2:
            case JumpUIType.UnionActive1:
            case JumpUIType.UnionActive2:
            case JumpUIType.UnionBoss:
                if (!PlayerDatas.Instance.fairyData.HasFairy)
                {
                    SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
@@ -120,7 +123,7 @@
                }
                break;
            case JumpUIType.UnionStore:
                if(!fairyModel.fairyStoreOpen)
                if (!fairyModel.fairyStoreOpen)
                {
                    fairyModel.ProcessErrorTip();
                    return;
@@ -133,7 +136,7 @@
            case JumpUIType.TreasureFindHostFunc2Type2:
            case JumpUIType.TreasureFindHostFunc3Type2:
                bool isUnlock = hostModel.IsUnlockTreasure(int.Parse(_tagWinSearchModel.SelectActive));
                if(!isUnlock)
                if (!isUnlock)
                {
                    hostModel.jumpTreasureId = 0;
                    return;
@@ -194,6 +197,13 @@
                if (!trialDungeonModel.CompleteTrialFloor(0))
                {
                    trialDungeonModel.ProcessOpenTrialExchangeError();
                    return;
                }
                break;
            case JumpUIType.Kylin:
                if (!FuncOpen.Instance.IsFuncOpen(85))
                {
                    FuncOpen.Instance.ProcessorFuncErrorTip((int)FuncOpenEnum.Kylin);
                    return;
                }
                break;
@@ -260,7 +270,7 @@
        #region 条件判段
        switch (jumpType)
        {
            case JumpUIType.RoleFunc1:
            case JumpUIType.RoleFunc1:
            case JumpUIType.RoleFunc2:
            case JumpUIType.RoleFunc3:
            case JumpUIType.RoleFunc4:
@@ -290,7 +300,7 @@
            case JumpUIType.ComposeFunc1:
            case JumpUIType.ComposeFunc2:
            case JumpUIType.ComposeFunc3:
            case JumpUIType.ComposeFunc4:
            case JumpUIType.ComposeFunc4:
            case JumpUIType.ComposeFunc5:
            case JumpUIType.TicketCompose1:
            case JumpUIType.TicketCompose2:
@@ -307,8 +317,8 @@
                break;
            case JumpUIType.UnionFunc1:
            case JumpUIType.UnionFunc2:
            case JumpUIType.UnionFunc3:
            case JumpUIType.UnionFunc4:
            case JumpUIType.UnionFunc3:
            case JumpUIType.UnionFunc4:
            case JumpUIType.UnionFunc5:
                SetJumpLogic<UnionPanel>(_tagWinSearchModel.TABID);
                break;
@@ -317,7 +327,7 @@
                SetJumpLogic<PetWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.PetStone:
                if(PackSendQuestMgr.Instance.useItemModel != null)
                if (PackSendQuestMgr.Instance.useItemModel != null)
                {
                    petModel.PetStoneItemId = PackSendQuestMgr.Instance.useItemModel.itemId;
                }
@@ -463,12 +473,12 @@
                SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.LootPreciousFrameSpec:
                DemonJarWin.guideChallenge =true;
                DemonJarWin.guideChallenge = true;
                SetJumpLogic<LootPreciousFrameWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.MarketFunc1:
            case JumpUIType.MarketFunc2:
            case JumpUIType.MarketFunc3:
            case JumpUIType.MarketFunc3:
                SetJumpLogic<MarketWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.BlastFurnaceFunc1:
@@ -547,6 +557,9 @@
            case JumpUIType.UnionActive2:
                SetJumpLogic<UnionTaskWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.UnionBoss:
                SetJumpLogic<FairyBoss>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.RealmPractice1:
            case JumpUIType.RealmPractice2:
                SetJumpLogic<RealmWin>(_tagWinSearchModel.TABID);
@@ -558,7 +571,7 @@
                break;
            case JumpUIType.UnionChat1:
            case JumpUIType.UnionChat2:
                ChatCtrl.Inst.presentChatType =(ChatInfoType)(int.Parse(_tagWinSearchModel.SelectActive) - 1);
                ChatCtrl.Inst.presentChatType = (ChatInfoType)(int.Parse(_tagWinSearchModel.SelectActive) - 1);
                SetJumpLogic<ChatWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.MakeDrug:
@@ -578,7 +591,7 @@
                break;
            case JumpUIType.Alchemyrescripte104:
            case JumpUIType.Alchemyrescripte105:
                ModelCenter.Instance.GetModel<BlastFurnaceModel>().jumpToPrescripe =int.Parse(_tagWinSearchModel.SelectActive);
                ModelCenter.Instance.GetModel<BlastFurnaceModel>().jumpToPrescripe = int.Parse(_tagWinSearchModel.SelectActive);
                SetJumpLogic<BlastFurnaceWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.AttackMagicianType1:
@@ -591,6 +604,9 @@
                break;
            case JumpUIType.TreasureCollectSoul:
                SetJumpLogic<TreasureLevelUpWin>(0);
                break;
            case JumpUIType.Kylin:
                SetJumpLogic<MultipleDifficultyDungeonWin>(0);
                break;
            case JumpUIType.VipRechargeFunc3:
            case JumpUIType.OSTimeLimitGift:
@@ -633,7 +649,7 @@
            case JumpUIType.ComposeTicketIce:
                var composeModel = ModelCenter.Instance.GetModel<ComposeWinModel>();
                int[] composeTypelist = ConfigParse.GetMultipleStr<int>(_tagWinSearchModel.SelectActive);
                composeModel.SetJumpToModel((ComposeFuncType)_tagWinSearchModel.TABID +1,composeTypelist[0], composeTypelist[1]);
                composeModel.SetJumpToModel((ComposeFuncType)_tagWinSearchModel.TABID + 1, composeTypelist[0], composeTypelist[1]);
                SetJumpLogic<ComposeWin>(_tagWinSearchModel.TABID);
                break;
            case JumpUIType.TrialDungeonSelect:
@@ -704,7 +720,7 @@
                SetJumpLogic<FirstRechargeWin>(_tagWinSearchModel.TABID, true);
                break;
            default:
                DebugEx.Log("未添加此跳转界面:"+ jumpType);
                DebugEx.Log("未添加此跳转界面:" + jumpType);
                IsJumpState = false;
                openWindows.Clear();
                jumpWinNameDict.Clear();
@@ -746,7 +762,7 @@
    {
        string curOpenWin = typeof(T).Name;
        jumpWinNameDict.Add(jumpPhase,curOpenWin);
        jumpWinNameDict.Add(jumpPhase, curOpenWin);
        switch (_tagWinSearchModel.Type)
        {
            case 1:
@@ -789,7 +805,7 @@
        }
        DebugEx.Log("关闭界面类型:" + _tagWinSearchModel.Type);
        WindowCenter.Instance.jumpWindowCloseEvent -= CloseWindow;
        int i = 0;
        List<string> openWinlist = null;
        switch (_tagWinSearchModel.Type)
@@ -798,7 +814,7 @@
            case 4:
                openWinlist = openWindows[jumpPhase];
                WindowCenter.Instance.CloseAll(WindowCenter.CloseAllIgnoreType.SystemAndCustom);
                for (i = 0; i < openWinlist.Count; i++)
                for (i = 0; i < openWinlist.Count; i++)
                {
                    Window window = WindowCenter.Instance.Get(openWinlist[i]);
                    switch (window.name)
@@ -837,7 +853,7 @@
                            }
                            break;
                    }
                }
                jumpWinNameDict.Remove(jumpPhase);
                jumpPhase -= 1;
@@ -853,20 +869,20 @@
                for (i = 0; i < openWinlist.Count; i++)
                {
                    Window window = WindowCenter.Instance.Get(openWinlist[i]);
                    if(window != null && window.windowInfo.windowType == WindowType.Base)
                    if (window != null && window.windowInfo.windowType == WindowType.Base)
                    {
                        if(!WindowCenter.Instance.CheckOpen(openWinlist[i]))
                        if (!WindowCenter.Instance.CheckOpen(openWinlist[i]))
                        {
                            WindowCenter.Instance.Get(openWinlist[i]).Open();
                        }
                    }
                    else
                    {
                        switch(window.name)
                        switch (window.name)
                        {
                            case "RebornWin":
                                if(SettingEffectMgr.Instance.isPlayerDie)
                                if (SettingEffectMgr.Instance.isPlayerDie)
                                {
                                    if (!WindowCenter.Instance.CheckOpen(openWinlist[i]))
                                    {
@@ -910,23 +926,25 @@
                break;
        }
        if(jumpPhase <= 0)
        if (jumpPhase <= 0)
        {
            openWindows.Clear();
            IsJumpState = false;
            jumpWinNameDict.Clear();
            if(DeadModel.playerIsDie)
            if (DeadModel.playerIsDie)
            {
                DeadModel.PlayerDie(PlayerDatas.Instance.baseData.PlayerID);
            }
        }
    }
    private void SecondRefresh()
    {
        if (DeadModel.playerIsDie && WindowCenter.Instance.CheckOpen<MainInterfaceWin>())
        if (DeadModel.playerIsDie
            && WindowCenter.Instance.CheckOpen<MainInterfaceWin>()
            && dungeonModel.dungeonFightStage != DungeonFightStage.ExitPrepare)
        {
            if(!WindowCenter.Instance.CheckOpen<RebornWin>()
            if (!WindowCenter.Instance.CheckOpen<RebornWin>()
               && !WindowCenter.Instance.CheckOpen<ReliveWin>()
               && !WindowCenter.Instance.CheckOpen<ElderGodAreaExitWin>()
               && !WindowCenter.Instance.CheckOpen<ElderGodAreaRebornWin>())
@@ -944,7 +962,7 @@
        jumpPhase = 0;
        openWindows.Clear();
        IsJumpState = false;
        foreach(var key in jumpWinNameDict.Keys)
        foreach (var key in jumpWinNameDict.Keys)
        {
            WindowCenter.Instance.jumpWindowCloseEvent -= CloseWindow;
        }
@@ -999,7 +1017,7 @@
    Treasure = 35,
    WorldChat = 38,
    PrivateChat = 39,
    BountyInterface=40,//赏金界面
    BountyInterface = 40,//赏金界面
    DailyQuestFunc1 = 44,
    DailyQuestFunc2 = 45,
    DailyQuestFunc3 = 46,
@@ -1012,6 +1030,7 @@
    MountStone = 65,
    MountSkill = 66,
    MountAppearance = 67,
    UnionBoss = 68,  //仙盟Boss界面
    IceCrystal = 69,  //冰晶矿脉
    FairyLand = 70,  //仙界秘境
    GridExtend = 71,
@@ -1047,10 +1066,10 @@
    RebornOpenHourse = 115,//死亡复活打开坐骑
    RebornOpenStrength = 116,//死亡复活打开强化
    RebornOpenPet = 117,//死亡复活打开灵宠
    RedPacket=118,//红包
    RedPacket = 118,//红包
    TreasureFunc1 = 119, //入世法宝
    TreasureFunc2 = 120, //本源法宝
    Type1TreasureFunc1 = 121, //入世法宝
    Type1TreasureFunc2 = 122, //本源法宝
    UnionWarehouse = 123,  //仙盟宝库界面
@@ -1071,7 +1090,7 @@
    MakeDrug = 138, //丹药使用
    XianBaguaIntr = 139, //仙族法宝八卦炉介绍界面
    UnionTask2 = 140, //仙盟任务界面回到主界面
    OpenServerActivityFunc2_1 =141, //活动发红包(精彩活动)
    OpenServerActivityFunc2_1 = 141, //活动发红包(精彩活动)
    OpenServerActivityFunc2_2 = 142, //活动抢红包(精彩活动)
    FirstRecharge = 143,  // 首充界面
    KnapSackFunc1Type2 = 144, // 背包界面(返回)
@@ -1129,7 +1148,7 @@
    FaBaoSoul_Suit = 196, //法宝魂-套装之魂
    FaBaoSoul_Wash = 197, //法宝魂-洗炼之魂
    ConsumreRebate = 198, //福利—消费返利界面(精彩活动)
    OSTimeLimitGift=199, //开服活动开服特惠(精彩活动)
    OSTimeLimitGift = 199, //开服活动开服特惠(精彩活动)
    WelfareFunc2Type2 = 200,  //祈愿返回主界面
    LimitedTimePackage = 201, //限时礼包(精彩活动)
    BossReborn = 202, //Boss复活(精彩活动)
@@ -1143,7 +1162,7 @@
    XBStoreType2 = 210, //寻宝商店
    XBWarehouseType2 = 211, //寻宝仓库
    TrialExchange = 212, //宗门试练材料兑换
    ComposeTicketFairy =213, //合成-仙界密境通行证
    ComposeTicketFairy = 213, //合成-仙界密境通行证
    ComposeTicketGod = 214, //合成-古神通行证
    ComposeTicketIce = 215, //合成-冰晶矿脉通行证
    TrialDungeonSelect = 216, //宗门试练副本选择界面
@@ -1157,6 +1176,7 @@
    OpenServerGift2 = 224, //超值礼包2
    OpenServerGift3 = 225, //超值礼包3
    TreasureCollectSoul = 226,//法宝集魂
    Kylin = 227,//跳转到麒麟之府, 不配置选中任何层
    DhszTs = 1001,//定海神针功法提升界面
    HyqTs = 1002,//皓月枪功法提升界面
    GyzTs = 1003,//鬼牙刃功法提升界面