From 5022f4efe76121df33dc81249befa7556e535418 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 19 六月 2025 22:35:42 +0800
Subject: [PATCH] 0312 红点增加“新”标识功能,其他代码优化

---
 Main/System/Chat/ChatManager.cs                |   48 
 Main/System/KnapSack/PackManager.cs            |  920 --------------
 Main/Utility/EnumHelper.cs                     |    1 
 Main/System/Redpoint/RedpointBehaviour.cs      |  213 +-
 Main/System/FairyUnion/FairyModel.cs           |    9 
 Main/System/Task/TaskManager.cs                |   54 
 Main/System/HappyXB/HappyXBModel.cs            |   22 
 Main/System/Main/HomeWin.cs.meta               |   11 
 Main/System/KnapSack/Logic/ItemLogicUtility.cs |  405 ------
 Main/System/Redpoint/MainRedDot.cs             |  115 +
 /dev/null                                      |  104 -
 Main/System/Recharge/RechargeManager.cs        |    6 
 Main/System/Redpoint/RedpointCenter.cs         |  244 +-
 Main/System/FairyUnion/PlayerFairyData.cs      |   22 
 Main/System/KnapSack/VirtualPackManager.cs     |    3 
 Main/System/GeneralConfig/GeneralDefine.cs     | 1368 ++++++++++----------
 Main/System/Main/HomeWin.cs                    |   62 
 Main/System/Main/MainWin.cs                    |   81 
 Main/System/Chat/ChatCenter.cs                 |   80 
 Main/System/Store/StoreModel.cs                |   44 
 Main/System/Redpoint/MainRedDot.cs.meta        |    0 
 21 files changed, 1,272 insertions(+), 2,540 deletions(-)

diff --git a/Main/System/Chat/ChatCenter.cs b/Main/System/Chat/ChatCenter.cs
index d01560b..2552fe7 100644
--- a/Main/System/Chat/ChatCenter.cs
+++ b/Main/System/Chat/ChatCenter.cs
@@ -49,8 +49,8 @@
         void ParseConfig()
         {
             chatCharacterLimit = int.Parse(FuncConfigConfig.Get("MessageLength").Numerical1);
-            var _funcCfg = FuncConfigConfig.Get("BugleItem");
-            bugleItem = int.Parse(_funcCfg.Numerical1);
+            // var _funcCfg = FuncConfigConfig.Get("BugleItem");
+            // bugleItem = int.Parse(_funcCfg.Numerical1);
             chatChannels = new List<ChatInfoType>();
             chatChannels.Add(ChatInfoType.System);
             chatChannels.Add(ChatInfoType.World);
@@ -63,16 +63,16 @@
             chatChannels.Add(ChatInfoType.Friend);
             chatChannels.Add(ChatInfoType.default1);
 
-            var config = FuncConfigConfig.Get("ClientChatBan");
-            banCheckSecond = int.Parse(config.Numerical1);
-            repeatCountLimit = int.Parse(config.Numerical2);
-            maliceCheckCount = int.Parse(config.Numerical3);
-            maliceLimitCount = int.Parse(config.Numerical4);
-            var array = ConfigParse.GetMultipleStr<int>(config.Numerical5);
-            singleBanSecond = array[0];
-            maxBanSecond = array[1];
+            // var config = FuncConfigConfig.Get("ClientChatBan");
+            // banCheckSecond = int.Parse(config.Numerical1);
+            // repeatCountLimit = int.Parse(config.Numerical2);
+            // maliceCheckCount = int.Parse(config.Numerical3);
+            // maliceLimitCount = int.Parse(config.Numerical4);
+            // var array = ConfigParse.GetMultipleStr<int>(config.Numerical5);
+            // singleBanSecond = array[0];
+            // maxBanSecond = array[1];
 
-            config = FuncConfigConfig.Get("LocalChatHistoryCount");
+            var config = FuncConfigConfig.Get("LocalChatHistoryCount");
             if (config != null)
             {
                 LocalChatHistory.localSaveCount = int.Parse(config.Numerical1);
@@ -479,36 +479,38 @@
         public int singleBanSecond = 1;
         public int maxBanSecond = 1;
 
-        public int banSecond {
-            get { return LocalSave.GetInt("ClientChatBanSecond", 0); }
-            set {
-                LocalSave.SetInt("ClientChatBanSecond", value);
-            }
-        }
+    public int banSecond;
+        // {
+        //     get { return LocalSave.GetInt("ClientChatBanSecond", 0); }
+        //     set {
+        //         LocalSave.SetInt("ClientChatBanSecond", value);
+        //     }
+        // }
 
         private int[] banTimeArray = new int[6];
-        private DateTime bandTime {
-            get {
-                var timeArray = LocalSave.GetIntArray("ClientChatBanTime");
-                if (null == timeArray)
-                {
-                    return TimeUtility.OriginalTime;
-                }
-                else
-                {
-                    return new DateTime(timeArray[0], timeArray[1], timeArray[2], timeArray[3], timeArray[4], timeArray[5]);
-                }
-            }
-            set {
-                banTimeArray[0] = value.Year;
-                banTimeArray[1] = value.Month;
-                banTimeArray[2] = value.Day;
-                banTimeArray[3] = value.Hour;
-                banTimeArray[4] = value.Minute;
-                banTimeArray[5] = value.Second;
-                LocalSave.SetIntArray("ClientChatBanTime", banTimeArray);
-            }
-        }
+    private DateTime bandTime;
+        // {
+        //     get {
+        //         var timeArray = LocalSave.GetIntArray("ClientChatBanTime");
+        //         if (null == timeArray)
+        //         {
+        //             return TimeUtility.OriginalTime;
+        //         }
+        //         else
+        //         {
+        //             return new DateTime(timeArray[0], timeArray[1], timeArray[2], timeArray[3], timeArray[4], timeArray[5]);
+        //         }
+        //     }
+        //     set {
+        //         banTimeArray[0] = value.Year;
+        //         banTimeArray[1] = value.Month;
+        //         banTimeArray[2] = value.Day;
+        //         banTimeArray[3] = value.Hour;
+        //         banTimeArray[4] = value.Minute;
+        //         banTimeArray[5] = value.Second;
+        //         LocalSave.SetIntArray("ClientChatBanTime", banTimeArray);
+        //     }
+        // }
 
         public void ChatClientBan()
         {
diff --git a/Main/System/Chat/ChatManager.cs b/Main/System/Chat/ChatManager.cs
index a1c46b2..105050c 100644
--- a/Main/System/Chat/ChatManager.cs
+++ b/Main/System/Chat/ChatManager.cs
@@ -155,8 +155,8 @@
         presentChatType = ChatInfoType.World;
         IsExtentOpen = false;
 
-        var _funcCfg = FuncConfigConfig.Get("BugleItem");
-        BugleItem = int.Parse(_funcCfg.Numerical1);
+        // var _funcCfg = FuncConfigConfig.Get("BugleItem");
+        // BugleItem = int.Parse(_funcCfg.Numerical1);
 
         DTC0102_tagCDBPlayer.switchAccountEvent += SwitchAccountEvent;
         // TODO YYL
@@ -165,28 +165,28 @@
 
         InitChatRedpoints();
 
-        FuncConfigConfig _cfg = FuncConfigConfig.Get("RandomWord");
-        try
-        {
-            achievementRandoms.Add(ChatInfoType.World, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical1)));
-            achievementRandoms.Add(ChatInfoType.Fairy, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical2)));
-            var json = LitJson.JsonMapper.ToObject(_cfg.Numerical3);
-            foreach (var key in json.Keys)
-            {
-                var type = int.Parse(key);
-                m_TaskRandomChats.Add(type, new List<string>(LitJson.JsonMapper.ToObject<string[]>(json[key].ToJson())));
-            }
-            assistThankLanguages.AddRange(ConfigParse.GetMultipleStr(_cfg.Numerical4));
-            if (!string.IsNullOrEmpty(_cfg.Numerical5))
-            {
-                var levelArray = ConfigParse.GetMultipleStr<int>(_cfg.Numerical5);
-                assistThankLevelLimit = new Int2(levelArray[0], levelArray[1]);
-            }
-        }
-        catch (Exception e)
-        {
-            Debug.LogError(e.Message);
-        }
+        // FuncConfigConfig _cfg = FuncConfigConfig.Get("RandomWord");
+        // try
+        // {
+        //     achievementRandoms.Add(ChatInfoType.World, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical1)));
+        //     achievementRandoms.Add(ChatInfoType.Fairy, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical2)));
+        //     var json = LitJson.JsonMapper.ToObject(_cfg.Numerical3);
+        //     foreach (var key in json.Keys)
+        //     {
+        //         var type = int.Parse(key);
+        //         m_TaskRandomChats.Add(type, new List<string>(LitJson.JsonMapper.ToObject<string[]>(json[key].ToJson())));
+        //     }
+        //     assistThankLanguages.AddRange(ConfigParse.GetMultipleStr(_cfg.Numerical4));
+        //     if (!string.IsNullOrEmpty(_cfg.Numerical5))
+        //     {
+        //         var levelArray = ConfigParse.GetMultipleStr<int>(_cfg.Numerical5);
+        //         assistThankLevelLimit = new Int2(levelArray[0], levelArray[1]);
+        //     }
+        // }
+        // catch (Exception e)
+        // {
+        //     Debug.LogError(e.Message);
+        // }
     }
 
     private void PlayerLoginOkEvent()
diff --git a/Main/System/FairyUnion/FairyModel.cs b/Main/System/FairyUnion/FairyModel.cs
index 379a138..6a50c74 100644
--- a/Main/System/FairyUnion/FairyModel.cs
+++ b/Main/System/FairyUnion/FairyModel.cs
@@ -163,19 +163,12 @@
     public readonly int changeFairyNameItem = 947;
     public int freeNotifyCount { get; private set; }
     public int changeNotifyCost { get; private set; }
-    public int fairyFeastDeskNpc { get; private set; }
     public int fairyCreateTimes { get; private set; }
     void ParseConfig()
     {
         var config = FuncConfigConfig.Get("CreateFamily");
         createFairyCost = int.Parse(config.Numerical1);
-        config = FuncConfigConfig.Get("FamilyBroadcast");
-        freeNotifyCount = int.Parse(config.Numerical1);
-        changeNotifyCost = int.Parse(config.Numerical2);
-        config = FuncConfigConfig.Get("FamilyShop");
-        fairyStoreLimit = int.Parse(config.Numerical2);
-        config = FuncConfigConfig.Get("FamilyPartyDeskNpcID");
-        fairyFeastDeskNpc = int.Parse(config.Numerical1);
+
         config = FuncConfigConfig.Get("FamilyMatchSet");
         fairyLeagueLimit = int.Parse(config.Numerical1);
     }
diff --git a/Main/System/FairyUnion/PlayerFairyData.cs b/Main/System/FairyUnion/PlayerFairyData.cs
index 7ca4ba6..1d68e16 100644
--- a/Main/System/FairyUnion/PlayerFairyData.cs
+++ b/Main/System/FairyUnion/PlayerFairyData.cs
@@ -344,17 +344,17 @@
     public int[] funcArray = null;
     public bool IsCanFunc(LimitFunc funcType)
     {
-        if (funcArray == null)
-        {
-            funcArray = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("FamilyPurview").Numerical1);
-        }
-        if (funcArray != null && funcArray.Length > 6)
-        {
-            if (mine != null)
-            {
-                return mine.FamilyLV >= funcArray[(int)funcType];
-            }
-        }
+        // if (funcArray == null)
+        // {
+        //     funcArray = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("FamilyPurview").Numerical1);
+        // }
+        // if (funcArray != null && funcArray.Length > 6)
+        // {
+        //     if (mine != null)
+        //     {
+        //         return mine.FamilyLV >= funcArray[(int)funcType];
+        //     }
+        // }
         return false;
     }
     #endregion
diff --git a/Main/System/GeneralConfig/GeneralDefine.cs b/Main/System/GeneralConfig/GeneralDefine.cs
index fe7b8c9..5051e0d 100644
--- a/Main/System/GeneralConfig/GeneralDefine.cs
+++ b/Main/System/GeneralConfig/GeneralDefine.cs
@@ -246,727 +246,727 @@
     {
         try
         {
-            equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0];
-            equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1];
+            // equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0];
+            // equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1];
 
-            normalEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 2)[0];
-            normalEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 2)[1];
+            // normalEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 2)[0];
+            // normalEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 2)[1];
 
-            suitEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 3)[0];
-            suitEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 3)[1];
+            // suitEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 3)[0];
+            // suitEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 3)[1];
 
-            BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel");
-            initDepotGridCount = GetInt("InitDepotCellCount");
-            maxDepotGridCount = GetInt("MaxDepotCellCount");
-            initBagGridCount = GetInt("InitBagCellCount");
-            maxBagGridCount = GetInt("MaxBagCellCount");
-            maxXBGridCount = GetInt("TreasureSet", 3);
+            // BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel");
+            // initDepotGridCount = GetInt("InitDepotCellCount");
+            // maxDepotGridCount = GetInt("MaxDepotCellCount");
+            // initBagGridCount = GetInt("InitBagCellCount");
+            // maxBagGridCount = GetInt("MaxBagCellCount");
+            // maxXBGridCount = GetInt("TreasureSet", 3);
 
-            CompareEquipPlaces = GetIntArray("EquipUpType");
-            playerMaxLevel = GetInt("PlayerMaxLV");
-            kylinHomeCollectItems = GetIntArray("KirinNpc", 2);
-            dailyQuestOpenTime = GetTimeArray("ActionTime", 1);
-            flyBootItemId = GetInt("TransportPay");
-            flyBootItemMoney = GetInt("TransportPay", 2);
-            teamReadyTime = GetInt("TeamReadyTime");
-            playerNameLength = GetInt("RoleNameLength");
-            elderGodAreaAngerTotal = GetInt("AngryAdd", 4);
-            petRandomSpeak = GetFloat("PetRandomSpeak");
-            guardDungeonCageNPCID = GetInt("GuardFBCageNPCID");
-            guardBubbleInterval = GetFloat("GuardFBCageNPCID", 3);
-            autoRideHorse = GetFloat("AutoRideHorseTime") * Constants.F_DELTA;
-            moneyDisplayIds = ConfigParse.GetDic<int, int>(GetInputString("MoneyDisplayModel", 1));
-            expDisplayId = GetInt("MoneyDisplayModel", 2);
-            openJobs = GetIntArray("OpenJob");
-            xpGuideDelay = GetFloat("GuideConfig");
-            xpGuideDuration = GetFloat("GuideConfig", 2);
-            ResetComAtkTime = GetFloat("AtkWaitingTime");
-            autoOnHookMap = new List<int>(GetIntArray("AutoOnHookMap"));
-            GuardianPickUpID = new List<int>(GetIntArray("GuardianPickUpID"));
-            ArenaSetList = new List<int>(GetIntArray("ArenaSet"));
-            RotateSpeed = GetInt("RoleTurnedAngle");
-            CloseNpcDist = GetFloat("ConversationDistanc", 2);
-            FarawayNpcDist = GetFloat("ConversationDistanc");
-            SpecialNpcIDs = new List<int>(GetIntArray("SpecialCollectNpcs", 1));
-            PetDanceInterval = GetInt("PetDanceInterval") * Constants.F_GAMMA;
-            FuncNpcDanceInterval = GetInt("PetDanceInterval", 2) * Constants.F_GAMMA;
-            ruinsTranscriptMapId = GetInt("SpRewardMapID");
-            EarlierGetTreasure = new List<int>(GetIntArray("EarlierGetTreasure"));
-            BossSound = GetInt("BossSound");
-            PlayBossHurtInterval = GetFloat("BossSound", 2);
-            var jobHeadPortraitConfig1 = FuncConfigConfig.Get("Job1Head");
-            jobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical1);
-            otherjobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical2);
+            // CompareEquipPlaces = GetIntArray("EquipUpType");
+            // playerMaxLevel = GetInt("PlayerMaxLV");
+            // kylinHomeCollectItems = GetIntArray("KirinNpc", 2);
+            // dailyQuestOpenTime = GetTimeArray("ActionTime", 1);
+            // flyBootItemId = GetInt("TransportPay");
+            // flyBootItemMoney = GetInt("TransportPay", 2);
+            // teamReadyTime = GetInt("TeamReadyTime");
+            // playerNameLength = GetInt("RoleNameLength");
+            // elderGodAreaAngerTotal = GetInt("AngryAdd", 4);
+            // petRandomSpeak = GetFloat("PetRandomSpeak");
+            // guardDungeonCageNPCID = GetInt("GuardFBCageNPCID");
+            // guardBubbleInterval = GetFloat("GuardFBCageNPCID", 3);
+            // autoRideHorse = GetFloat("AutoRideHorseTime") * Constants.F_DELTA;
+            // moneyDisplayIds = ConfigParse.GetDic<int, int>(GetInputString("MoneyDisplayModel", 1));
+            // expDisplayId = GetInt("MoneyDisplayModel", 2);
+            // openJobs = GetIntArray("OpenJob");
+            // xpGuideDelay = GetFloat("GuideConfig");
+            // xpGuideDuration = GetFloat("GuideConfig", 2);
+            // ResetComAtkTime = GetFloat("AtkWaitingTime");
+            // autoOnHookMap = new List<int>(GetIntArray("AutoOnHookMap"));
+            // GuardianPickUpID = new List<int>(GetIntArray("GuardianPickUpID"));
+            // ArenaSetList = new List<int>(GetIntArray("ArenaSet"));
+            // RotateSpeed = GetInt("RoleTurnedAngle");
+            // CloseNpcDist = GetFloat("ConversationDistanc", 2);
+            // FarawayNpcDist = GetFloat("ConversationDistanc");
+            // SpecialNpcIDs = new List<int>(GetIntArray("SpecialCollectNpcs", 1));
+            // PetDanceInterval = GetInt("PetDanceInterval") * Constants.F_GAMMA;
+            // FuncNpcDanceInterval = GetInt("PetDanceInterval", 2) * Constants.F_GAMMA;
+            // ruinsTranscriptMapId = GetInt("SpRewardMapID");
+            // EarlierGetTreasure = new List<int>(GetIntArray("EarlierGetTreasure"));
+            // BossSound = GetInt("BossSound");
+            // PlayBossHurtInterval = GetFloat("BossSound", 2);
+            // var jobHeadPortraitConfig1 = FuncConfigConfig.Get("Job1Head");
+            // jobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical1);
+            // otherjobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical2);
 
-            var jobHeadPortraitConfig2 = FuncConfigConfig.Get("Job2Head");
-            jobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical1);
-            otherjobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical2);
+            // var jobHeadPortraitConfig2 = FuncConfigConfig.Get("Job2Head");
+            // jobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical1);
+            // otherjobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical2);
 
-            var jobHeadPortraitConfig3 = FuncConfigConfig.Get("Job3Head");
-            jobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical1);
-            otherjobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical2);
+            // var jobHeadPortraitConfig3 = FuncConfigConfig.Get("Job3Head");
+            // jobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical1);
+            // otherjobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical2);
 
-            bossWearyValues = ConfigParse.GetDic<int, int>(GetInputString("KillBossCntLimit", 2));
-            wingEquipLimits = ConfigParse.GetDic<int, int>(GetInputString("WingRealmLimit", 1));
-            int i = 0;
-            int[] equipPlaces = GetIntArray("EquipArea", 1);
-            string[] equipPlacesNames = GetStringArray("EquipArea", 2);
-            equipPlaceNameDict = new Dictionary<int, string>();
-            for (i = 0; i < equipPlaces.Length; i++)
-            {
-                if (!equipPlaceNameDict.ContainsKey(equipPlaces[i]))
-                {
-                    equipPlaceNameDict.Add(equipPlaces[i], equipPlacesNames[i]);
-                }
-                else
-                {
-                    Debug.LogError("EquipArea : 瑁呭浣嶇疆閲嶅");
-                }
-            }
-            var _trailBossJson = LitJson.JsonMapper.ToObject(GetInputString("MuneKadoTrialBossHead", 1));
-            trailBossHeadIcons = new Dictionary<int, string>();
-            foreach (var _key in _trailBossJson.Keys)
-            {
-                var _npcId = int.Parse(_key);
-                if (!trailBossHeadIcons.ContainsKey(_npcId))
-                {
-                    trailBossHeadIcons.Add(_npcId, _trailBossJson[_key].ToString());
-                }
-            }
-            FuncConfigConfig HorseTrainConfig = FuncConfigConfig.Get("HorseTrain");
-            HorseTrainIDList = LitJson.JsonMapper.ToObject<int[]>(HorseTrainConfig.Numerical1);
-            FuncConfigConfig PetTrainConfig = FuncConfigConfig.Get("PetUpItem");
-            PetTrainIDList = LitJson.JsonMapper.ToObject<int[]>(PetTrainConfig.Numerical3);
-            FuncConfigConfig LingQiTrainConfig = FuncConfigConfig.Get("HorseTrain");
-            var LingQiTrainJson = LitJson.JsonMapper.ToObject(GetInputString("LingQiTrain", 1));
-            LingQiTrainIDList = new Dictionary<int, List<int>>();
-            foreach (var key in LingQiTrainJson.Keys)
-            {
-                int attrId = int.Parse(key);
-                var skillIds = LingQiTrainJson[key];
-                foreach (var skillId in skillIds)
-                {
-                    int id = int.Parse(skillId.ToString());
-                    if (!LingQiTrainIDList.ContainsKey(attrId))
-                    {
-                        List<int> list = new List<int>();
-                        list.Add(id);
-                        LingQiTrainIDList.Add(attrId, list);
-                    }
-                    else
-                    {
-                        LingQiTrainIDList[attrId].Add(id);
-                    }
-                }
-
-            }
-
-            var skillPlusAttrIDJson = LitJson.JsonMapper.ToObject(GetInputString("SkillPlusAttrID", 2));
-            skillAttrIDDict = new Dictionary<int, List<int>>();
-            foreach (var key in skillPlusAttrIDJson.Keys)
-            {
-                int attrId = int.Parse(key);
-                var skillIds = skillPlusAttrIDJson[key];
-                foreach (var skillId in skillIds)
-                {
-                    int id = int.Parse(skillId.ToString());
-                    if (!skillAttrIDDict.ContainsKey(id))
-                    {
-                        List<int> list = new List<int>();
-                        list.Add(attrId);
-                        skillAttrIDDict.Add(id, list);
-                    }
-                    else
-                    {
-                        skillAttrIDDict[id].Add(attrId);
-                    }
-                }
-
-            }
-            
-            var BossAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 1));
-            BossAssistAward = new Dictionary<int, List<int>>();
-            foreach (var key in BossAssistAwardJson.Keys)
-            {
-                int bossID = int.Parse(key);
-                var awards = BossAssistAwardJson[key];
-                if (!BossAssistAward.ContainsKey(bossID))
-                {
-                    BossAssistAward[bossID] = new List<int>();
-                }
-                foreach (var award in awards)
-                {
-                    BossAssistAward[bossID].Add(int.Parse(award.ToString()));
-                }
-
-            }
-
-            var FBAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 2));
-            FBAssistAward = new Dictionary<int, List<int>>();
-            foreach (var key in FBAssistAwardJson.Keys)
-            {
-                int mapID = int.Parse(key);
-                var awards = FBAssistAwardJson[key];
-                if (!FBAssistAward.ContainsKey(mapID))
-                {
-                    FBAssistAward[mapID] = new List<int>();
-                }
-                foreach (var award in awards)
-                {
-                    FBAssistAward[mapID].Add(int.Parse(award.ToString()));
-                }
-
-            }
-
-            var _godWeaponJson = LitJson.JsonMapper.ToObject(GetInputString("GodModel", 1));
-            godWeaponMobs = new Dictionary<int, string>();
-            foreach (var _key in _godWeaponJson.Keys)
-            {
-                var _godWeaponType = int.Parse(_key);
-                if (!godWeaponMobs.ContainsKey(_godWeaponType))
-                {
-                    godWeaponMobs.Add(_godWeaponType, _godWeaponJson[_key].ToString());
-                }
-            }
-
-            audioScaleWhenFullScreenOn = GetFloat("AudioSound");
-
-            iceCrystalMonsterScores = ConfigParse.GetDic<int, int>(GetInputString("IceLodeNeedPoint", 2));
-
-            NoXpDungeons = new List<int>(GetIntArray("XpNoUseDungeon"));
-            RandomJobs = new List<int>(GetIntArray("RandomJob"));
-            elderGodTalkingTime = GetInt("ElderGodTalkingTime");
-            elderGodBigBoss = GetInt("ElderGodBigBoss");
-            PassiveSkillShow = new List<int>(GetIntArray("PassiveSkillShow"));
-
-            FuncConfigConfig func = FuncConfigConfig.Get("NpcPosOffset");
-            LitJson.JsonData _data = LitJson.JsonMapper.ToObject(func.Numerical1);
-            foreach (var _key in _data.Keys)
-            {
-                int _npcID = int.Parse(_key);
-                double[] _pos = new double[2];
-                _pos[0] = (double)_data[_key][0];
-                _pos[1] = (double)_data[_key][1];
-                NpcPosOffset.Add(_npcID, new Vector3((float)_pos[0], 0, (float)_pos[1]));
-            }
-            //checkShowSwitchAccount
-            var showSwitchAccount = FuncConfigConfig.Get("ShowSwitchAccount");
-            LitJson.JsonData itemShowSwitchAccount = LitJson.JsonMapper.ToObject(showSwitchAccount.Numerical1);
-            checkShowSwitchAccount = new List<string>();
-            foreach(var item in itemShowSwitchAccount)
-            {
-                checkShowSwitchAccount.Add(item.ToString());
-            }
-
-            var putInItemPack = FuncConfigConfig.Get("PutInItemPack");
-            LitJson.JsonData itemPutInData = LitJson.JsonMapper.ToObject(putInItemPack.Numerical1);
-            itemPutInPackDict = new Dictionary<int, List<int>>();
-            foreach (var _key in itemPutInData.Keys)
-            {
-                var itemTypeData = itemPutInData[_key];
-                int packType = int.Parse(_key);
-                List<int> itemTypes = new List<int>();
-                itemPutInPackDict.Add(packType, itemTypes);
-                if (itemTypeData.IsArray)
-                {
-                    for (i = 0; i < itemTypeData.Count; i++)
-                    {
-                        int itemType = int.Parse(itemTypeData[i].ToString());
-                        itemTypes.Add(itemType);
-                    }
-                }
-            }
-
-            //鎷惧彇璐甸噸鐗╁搧
-            FuncConfigConfig importantItemType = FuncConfigConfig.Get("AutoBuyDrug");
-            ImportantItemType = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical2);
-            ImportantItemID = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical3);
-
-            FuncConfigConfig nxxdImg = FuncConfigConfig.Get("NXXDPicture");
-            LitJson.JsonData nxxdData = LitJson.JsonMapper.ToObject(nxxdImg.Numerical1);
-            multipleRealmImgDict = new Dictionary<int, string>();
-            if (nxxdData.IsArray)
-            {
-                for (i = 0; i < nxxdData.Count; i++)
-                {
-                    if (nxxdData[i].IsArray)
-                    {
-                        multipleRealmImgDict.Add(int.Parse(nxxdData[i][0].ToString()), nxxdData[i][1].ToString());
-                    }
-                }
-            }
-
-            bossShuntMaps = new List<int>(GetIntArray("BossShunt"));
-            bossShuntDays = GetInt("BossShunt", 3);
-
-            itemDropEffect.Clear();
-            func = FuncConfigConfig.Get("ItemEquipmentEffect");
-            _data = LitJson.JsonMapper.ToObject(func.Numerical1);
-            List<string> _keys = new List<string>(_data.Keys);
-            for (i = 0; i < _keys.Count; ++i)
-            {
-                int[] _props = new int[3];
-                for (int j = 0; j < 3; ++j)
-                {
-                    _props[j] = (int)_data[_keys[i]][j];
-                }
-                itemDropEffect[int.Parse(_keys[i])] = _props;
-            }
-
-            xllyDropEffect.Clear();
-            _data = LitJson.JsonMapper.ToObject(func.Numerical2);
-            _keys.Clear();
-            _keys.AddRange(_data.Keys);
-            for (i = 0; i < _keys.Count; ++i)
-            {
-                int[] _props = new int[3];
-                for (int j = 0; j < 3; ++j)
-                {
-                    _props[j] = (int)_data[_keys[i]][j];
-                }
-                xllyDropEffect[int.Parse(_keys[i])] = _props;
-            }
-
-            xqryDropEffect.Clear();
-            _data = LitJson.JsonMapper.ToObject(func.Numerical3);
-            _keys.Clear();
-            _keys.AddRange(_data.Keys);
-            for (i = 0; i < _keys.Count; ++i)
-            {
-                int[] _props = new int[3];
-                for (int j = 0; j < 3; ++j)
-                {
-                    _props[j] = (int)_data[_keys[i]][j];
-                }
-                xqryDropEffect[int.Parse(_keys[i])] = _props;
-            }
-
-            dropEffectQuality.Clear();
-            func = FuncConfigConfig.Get("IeemEquipmentEffectQuality");
-            _data = LitJson.JsonMapper.ToObject(func.Numerical1);
-            _keys.Clear();
-            _keys.AddRange(_data.Keys);
-            for (i = 0; i < _keys.Count; ++i)
-            {
-                dropEffectQuality[int.Parse(_keys[i])] = (int)_data[_keys[i]];
-            }
-
-            customDropEffect.Clear();
-            func = FuncConfigConfig.Get("ItemEquipmentEffectItem");
-            _data = LitJson.JsonMapper.ToObject(func.Numerical1);
-            _keys.Clear();
-            _keys.AddRange(_data.Keys);
-            int[] _tmp = null;
-            List<int[]> _content = null;
-            for (i = 0; i < _keys.Count; ++i)
-            {
-                _content = new List<int[]>();
-                foreach (LitJson.JsonData _values in _data[_keys[i]])
-                {
-                    if (_values.IsArray)
-                    {
-                        _tmp = new int[2];
-                        _tmp[0] = (int)_values[0];
-                        _tmp[1] = (int)_values[1];
-                    }
-                    else
-                    {
-                        _tmp = new int[1];
-                        _tmp[0] = (int)_values;
-                    }
-                    _content.Add(_tmp);
-                }
-                customDropEffect.Add(int.Parse(_keys[i]), _content);
-            }
-
-            BuffToHitEffect.Clear();
-            func = FuncConfigConfig.Get("BuffToHitEffect");
-            if (!string.IsNullOrEmpty(func.Numerical1) && !string.IsNullOrEmpty(func.Numerical2))
-            {
-                string[] _buffs = func.Numerical1.Split('|');
-                string[] _effects = func.Numerical2.Split('|');
-                for (i = 0; i < _buffs.Length; ++i)
-                {
-                    BuffToHitEffect[int.Parse(_buffs[i])] = int.Parse(_effects[i]);
-                }
-            }
-
-            demonJarHintLevelLimit = GetInt("DemonJarFirstRemin");
-            demonJarHintLineId = GetInt("DemonJarFirstRemin", 2);
-            skillPanelUnLock = GetInt("SkillPanelUnlock");
-            dailyQuestRedpointLevelLimit = GetInt("DailyQuestRedPoint");
-            lowHpRemind = GetInt("LowHpRemind");
-            autoBuyItemIds = GetIntArray("BuyItemPrice", 1);
-            autoBuyItemPrices = GetIntArray("BuyItemPrice", 2);
-            neutralMaps.AddRange(GetIntArray("MapLine", 4));
-            neutralBossMaps.AddRange(GetIntArray("BossListMapID"));
-
-            var _propertyIconCfg = FuncConfigConfig.Get("PropertyIcon");
-            var _propertyIconJson = LitJson.JsonMapper.ToObject(_propertyIconCfg.Numerical1);
-            foreach (var _key in _propertyIconJson.Keys)
-            {
-                var _property = int.Parse(_key);
-                propertyIconDict.Add(_property, _propertyIconJson[_key].ToString());
-            }
-
-            munekadolockLimit = GetInt("MunekadoLockLimit");
-            demonJarRedPoint = GetInt("DemonJarRedPoint");
-            LoadLV = GetInputString("LoadLV");
-
-            mainWinSkillResetTime = GetFloat("AutomaticSwitch");
-            heroDialogueOffset = GetInputString("NpcHalfLength", 1).Vector3Parse();
-            heroDialogueRotation = GetInputString("NpcHalfLength", 2).Vector3Parse();
-            heroDialogueScale = GetFloat("NpcHalfLength", 3);
-
-            var ancientConfig = FuncConfigConfig.Get("ElderBattleTarget");
-            ancientGrandTotalAchievements = new List<int>();
-            ancientGrandTotalAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical1));
-            ancientContinueKillAchievements = new List<int>();
-            ancientContinueKillAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical2));
-
-            trialDungeonGroupChallengeTipLv = GetInt("SingleIntoFB");
-            prayerRedpointLimitLv = GetInt("PrayRedPoint");
-            demonJarLevelLimit = GetInt("DemonJarLevelLimit");
-            maxItemDropEffectCount = GetInt("ItemMaskEffect");
-
-            specialGuide41Mission = GetInt("SpecialGuide41", 1);
-            specialGuide41Achievement = GetInt("SpecialGuide41", 2);
-
-            supremeRechargeVipLv = GetInt("SupremeCTGVipLimit", 1);
-
-            rechargeRedpointLv = GetInt("FirstPayRedPoint", 1);
-            rechargeRedpointMinLv = GetInt("FirstPayRedPoint", 2);
-            runeTowerSweepBuyTimes = GetInt("RuneTowerSweepBuy");
-            runeTowerSweepBuyPrice = GetInt("RuneTowerSweepBuy", 2);
-            teamMatchingTimeOut = GetInt("TeamMatchingTimeOut");
-            inGameDownLoadLevelCheckPoints = new List<int>(GetIntArray("InGameDownLoad"));
-            inGameDownLoadTaskCheckPoints = new List<int>(GetIntArray("InGameDownLoad", 2));
-            inGameDownLoadHighLevel = GetInt("InGameDownLoad", 3);
-
-            worldBossNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 1));
-            bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2));
-            elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3));
-            demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4));
-            dogzNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 5));
-
-            if (ModeDefaultConfig == null)
-            {
-                func = FuncConfigConfig.Get("ModeDefault");
-
-                string[] _funcNpc = func.Numerical1.Split('|');
-                string[] _fightNpc = func.Numerical2.Split('|');
-                string[] _pet = func.Numerical3.Split('|');
-                string[] _horse = func.Numerical4.Split('|');
-
-                ModeDefaultConfig = new string[4][];
-                ModeDefaultConfig[0] = _funcNpc;
-                ModeDefaultConfig[1] = _fightNpc;
-                ModeDefaultConfig[2] = _pet;
-                ModeDefaultConfig[3] = _horse;
-            }
-
-            if (RealmGroup == null)
-            {
-                func = FuncConfigConfig.Get("RealmGroup");
-                string[] _group = func.Numerical1.Split('|');
-                RealmGroup = new int[_group.Length];
-                for (int j = 0; j < _group.Length; ++j)
-                {
-                    int.TryParse(_group[j], out RealmGroup[j]);
-                }
-            }
-
-            func = FuncConfigConfig.Get("PrefightAtkRange");
-            PrefightAtkRange = float.Parse(func.Numerical1);
-            inGameDownLoadHighestLevelPoint = GetInt("DownReward", 2);
-
-            dungeonCanUseMoneyIds = new List<int>(GetIntArray("FBEnterTickeyAuto", 1));
-            dungeonRebornClientTimes = ConfigParse.GetDic<int, int>(GetInputString("DuplicatesRebornTime", 2));
-            dogzBoxLimit = GetInt("DogzBoxLimit");
-
-            fairyGrabBossMapLines = ConfigParse.GetDic<int, int>(GetInputString("MapLine", 2));
-            var grabBossMaps = fairyGrabBossMapLines.Keys.ToList();
-            foreach (var _key in grabBossMaps)
-            {
-                fairyGrabBossMapLines[_key] = fairyGrabBossMapLines[_key] - 1;
-            }
-
-            if (DropItemEffectMapID == null)
-            {
-                DropItemEffectMapID = new Dictionary<int, List<int>>();
-            }
-            DropItemEffectMapID.Clear();
-            func = FuncConfigConfig.Get("DropItemEffectMapID");
-            _data = LitJson.JsonMapper.ToObject(func.Numerical1);
-            int _itemID;
-            _keys.Clear();
-            _keys.AddRange(_data.Keys);
-            for (int j = 0; j < _keys.Count; ++j)
-            {
-                if (int.TryParse(_keys[j].ToString(), out _itemID))
-                {
-                    if (!DropItemEffectMapID.ContainsKey(_itemID))
-                    {
-                        DropItemEffectMapID.Add(_itemID, new List<int>());
-                    }
-                    var _jsonMapIDs = _data[_keys[j]];
-                    foreach (var _jsonMapID in _jsonMapIDs)
-                    {
-                        var _mapID = ((LitJson.IJsonWrapper)_jsonMapID).GetInt();
-                        if (!DropItemEffectMapID[_itemID].Contains(_mapID))
-                        {
-                            DropItemEffectMapID[_itemID].Add(_mapID);
-                        }
-                    }
-                }
-            }
-
-            int[] mapIDs = GetIntArray("RebornAutoFightDungeon");
-            RebornAutoFightMapID = new List<int>(mapIDs);
-
-            teamWorldCall = GetInputString("TeamWorldCall");
-            teamWorldCallInviteCount = GetInt("TeamWorldCall", 2);
-
-            var ancientKingAwradConfig = FuncConfigConfig.Get("ElderBattlefieldTopAward");
-            if (ancientKingAwradConfig != null)
-            {
-                var itemArray = LitJson.JsonMapper.ToObject<int[][]>(ancientKingAwradConfig.Numerical1);
-                for (int k = 0; k < itemArray.Length; k++)
-                {
-                    // ancientKingAwards.Add(new Item()
-                    // {
-                    //     id = itemArray[k][0],
-                    //     count = itemArray[k][1],
-                    // });
-                }
-            }
-
-            func = FuncConfigConfig.Get("QualityEffectConfig");
-            lowQualityEffectCount = int.Parse(func.Numerical1);
-            medQualityEffectCount = int.Parse(func.Numerical2);
-            highQualityEffectCount = int.Parse(func.Numerical3);
-
-            func = FuncConfigConfig.Get("QualityPetCountConfig");
-            lowQualityPetCount = int.Parse(func.Numerical1);
-            medQualityPetCount = int.Parse(func.Numerical2);
-            highQualityPetCount = int.Parse(func.Numerical3);
-
-            func = FuncConfigConfig.Get("QualityGuardCountConfig");
-            lowQualityGuardCount = int.Parse(func.Numerical1);
-            medQualityGuardCount = int.Parse(func.Numerical2);
-            highQualityGuardCount = int.Parse(func.Numerical3);
-
-            func = FuncConfigConfig.Get("QualityPetEffectCount");
-            lowQualityPetEffectCount = int.Parse(func.Numerical1);
-            medQualityPetEffectCount = int.Parse(func.Numerical2);
-            highQualityPetEffectCount = int.Parse(func.Numerical3);
-
-            func = FuncConfigConfig.Get("QualityHorseEffectCount");
-            lowQualityHorseEffectCount = int.Parse(func.Numerical1);
-            medQualityHorseEffectCount = int.Parse(func.Numerical2);
-            highQualityHorseEffectCount = int.Parse(func.Numerical3);
-
-            fairyLandBuffCondition = GetInt("XjmjAddHarm", 1);
-            fairyLandBuffId = GetInt("XjmjAddHarm", 2);
-            achievementEarlierStageLevel = GetInt("AchieveLV");
-
-            func = FuncConfigConfig.Get("PreloadSkillEffect");
-            PreloadSkillEffect = new int[2][];
-            PreloadSkillEffect[0] = GetIntArray("PreloadSkillEffect");
-            PreloadSkillEffect[1] = GetIntArray("PreloadSkillEffect", 2);
-            demonJarAutoTime = GetInt("DemonJarAutoTime");
-
-            // if (SgzzRobotEquipDict == null)
+            // bossWearyValues = ConfigParse.GetDic<int, int>(GetInputString("KillBossCntLimit", 2));
+            // wingEquipLimits = ConfigParse.GetDic<int, int>(GetInputString("WingRealmLimit", 1));
+            // int i = 0;
+            // int[] equipPlaces = GetIntArray("EquipArea", 1);
+            // string[] equipPlacesNames = GetStringArray("EquipArea", 2);
+            // equipPlaceNameDict = new Dictionary<int, string>();
+            // for (i = 0; i < equipPlaces.Length; i++)
             // {
-            //     SgzzRobotEquipDict = new Dictionary<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>>();
-
-            //     for (int job = 1; job <= 3; ++job)
+            //     if (!equipPlaceNameDict.ContainsKey(equipPlaces[i]))
             //     {
-            //         string _jsonString = GetInputString("SGZCHelpBattleEquip", job);
-
-            //         if (string.IsNullOrEmpty(_jsonString))
+            //         equipPlaceNameDict.Add(equipPlaces[i], equipPlacesNames[i]);
+            //     }
+            //     else
+            //     {
+            //         Debug.LogError("EquipArea : 瑁呭浣嶇疆閲嶅");
+            //     }
+            // }
+            // var _trailBossJson = LitJson.JsonMapper.ToObject(GetInputString("MuneKadoTrialBossHead", 1));
+            // trailBossHeadIcons = new Dictionary<int, string>();
+            // foreach (var _key in _trailBossJson.Keys)
+            // {
+            //     var _npcId = int.Parse(_key);
+            //     if (!trailBossHeadIcons.ContainsKey(_npcId))
+            //     {
+            //         trailBossHeadIcons.Add(_npcId, _trailBossJson[_key].ToString());
+            //     }
+            // }
+            // FuncConfigConfig HorseTrainConfig = FuncConfigConfig.Get("HorseTrain");
+            // HorseTrainIDList = LitJson.JsonMapper.ToObject<int[]>(HorseTrainConfig.Numerical1);
+            // FuncConfigConfig PetTrainConfig = FuncConfigConfig.Get("PetUpItem");
+            // PetTrainIDList = LitJson.JsonMapper.ToObject<int[]>(PetTrainConfig.Numerical3);
+            // FuncConfigConfig LingQiTrainConfig = FuncConfigConfig.Get("HorseTrain");
+            // var LingQiTrainJson = LitJson.JsonMapper.ToObject(GetInputString("LingQiTrain", 1));
+            // LingQiTrainIDList = new Dictionary<int, List<int>>();
+            // foreach (var key in LingQiTrainJson.Keys)
+            // {
+            //     int attrId = int.Parse(key);
+            //     var skillIds = LingQiTrainJson[key];
+            //     foreach (var skillId in skillIds)
+            //     {
+            //         int id = int.Parse(skillId.ToString());
+            //         if (!LingQiTrainIDList.ContainsKey(attrId))
             //         {
-            //             continue;
+            //             List<int> list = new List<int>();
+            //             list.Add(id);
+            //             LingQiTrainIDList.Add(attrId, list);
             //         }
-
-            //         var _jsonData = LitJson.JsonMapper.ToObject(_jsonString);
-            //         var _jobDict = new Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>();
-
-            //         for (i = 0; i < _jsonData.Count; ++i)
+            //         else
             //         {
-            //             var _lvJson = _jsonData[i];
-            //             var _lv = (int)_lvJson["LV"];
-            //             if (!_jobDict.ContainsKey(_lv))
-            //             {
-            //                 var _equips = _lvJson["Equips"];
-
-            //                 var _randEquip = new GA_NpcFightSgzcZZ.EquipRandomInfo();
-
-            //                 _randEquip.randClothesItemIDs = new int[_equips[0].Count];
-            //                 for (int j = 0; j < _equips[0].Count; ++j)
-            //                 {
-            //                     _randEquip.randClothesItemIDs[j] = (int)_equips[0][j];
-            //                 }
-
-            //                 _randEquip.randWeaponItemIDs = new int[_equips[1].Count];
-            //                 for (int j = 0; j < _equips[1].Count; ++j)
-            //                 {
-            //                     _randEquip.randWeaponItemIDs[j] = (int)_equips[1][j];
-            //                 }
-
-            //                 _randEquip.randSecondaryItemIDs = new int[_equips[2].Count];
-            //                 for (int j = 0; j < _equips[2].Count; ++j)
-            //                 {
-            //                     _randEquip.randSecondaryItemIDs[j] = (int)_equips[2][j];
-            //                 }
-
-            //                 _randEquip.randWingItemIDs = new int[_equips[3].Count];
-            //                 for (int j = 0; j < _equips[3].Count; ++j)
-            //                 {
-            //                     _randEquip.randWingItemIDs[j] = (int)_equips[3][j];
-            //                 }
-
-            //                 _randEquip.godWeaponIDs = new int[_equips[4].Count];
-            //                 for (int j = 0; j < _equips[4].Count; ++j)
-            //                 {
-            //                     _randEquip.godWeaponIDs[j] = (int)_equips[4][j];
-            //                 }
-
-            //                 _jobDict.Add(_lv, _randEquip);
-            //             }
+            //             LingQiTrainIDList[attrId].Add(id);
             //         }
+            //     }
 
-            //         SgzzRobotEquipDict.Add(job, _jobDict);
+            // }
 
+            // var skillPlusAttrIDJson = LitJson.JsonMapper.ToObject(GetInputString("SkillPlusAttrID", 2));
+            // skillAttrIDDict = new Dictionary<int, List<int>>();
+            // foreach (var key in skillPlusAttrIDJson.Keys)
+            // {
+            //     int attrId = int.Parse(key);
+            //     var skillIds = skillPlusAttrIDJson[key];
+            //     foreach (var skillId in skillIds)
+            //     {
+            //         int id = int.Parse(skillId.ToString());
+            //         if (!skillAttrIDDict.ContainsKey(id))
+            //         {
+            //             List<int> list = new List<int>();
+            //             list.Add(attrId);
+            //             skillAttrIDDict.Add(id, list);
+            //         }
+            //         else
+            //         {
+            //             skillAttrIDDict[id].Add(attrId);
+            //         }
+            //     }
+
+            // }
+            
+            // var BossAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 1));
+            // BossAssistAward = new Dictionary<int, List<int>>();
+            // foreach (var key in BossAssistAwardJson.Keys)
+            // {
+            //     int bossID = int.Parse(key);
+            //     var awards = BossAssistAwardJson[key];
+            //     if (!BossAssistAward.ContainsKey(bossID))
+            //     {
+            //         BossAssistAward[bossID] = new List<int>();
+            //     }
+            //     foreach (var award in awards)
+            //     {
+            //         BossAssistAward[bossID].Add(int.Parse(award.ToString()));
+            //     }
+
+            // }
+
+            // var FBAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 2));
+            // FBAssistAward = new Dictionary<int, List<int>>();
+            // foreach (var key in FBAssistAwardJson.Keys)
+            // {
+            //     int mapID = int.Parse(key);
+            //     var awards = FBAssistAwardJson[key];
+            //     if (!FBAssistAward.ContainsKey(mapID))
+            //     {
+            //         FBAssistAward[mapID] = new List<int>();
+            //     }
+            //     foreach (var award in awards)
+            //     {
+            //         FBAssistAward[mapID].Add(int.Parse(award.ToString()));
+            //     }
+
+            // }
+
+            // var _godWeaponJson = LitJson.JsonMapper.ToObject(GetInputString("GodModel", 1));
+            // godWeaponMobs = new Dictionary<int, string>();
+            // foreach (var _key in _godWeaponJson.Keys)
+            // {
+            //     var _godWeaponType = int.Parse(_key);
+            //     if (!godWeaponMobs.ContainsKey(_godWeaponType))
+            //     {
+            //         godWeaponMobs.Add(_godWeaponType, _godWeaponJson[_key].ToString());
             //     }
             // }
 
+            // audioScaleWhenFullScreenOn = GetFloat("AudioSound");
 
-            if (SgzcRealm == null)
-            {
-                SgzcRealm = new Dictionary<int, int>();
+            // iceCrystalMonsterScores = ConfigParse.GetDic<int, int>(GetInputString("IceLodeNeedPoint", 2));
 
-                var _lvArr = GetInputString("SGZCRobotRealm", 1).Split('|');
-                var _rLvArr = GetInputString("SGZCRobotRealm", 2).Split('|');
+            // NoXpDungeons = new List<int>(GetIntArray("XpNoUseDungeon"));
+            // RandomJobs = new List<int>(GetIntArray("RandomJob"));
+            // elderGodTalkingTime = GetInt("ElderGodTalkingTime");
+            // elderGodBigBoss = GetInt("ElderGodBigBoss");
+            // PassiveSkillShow = new List<int>(GetIntArray("PassiveSkillShow"));
 
-                for (int j = 0; j < _lvArr.Length; ++j)
-                {
-                    SgzcRealm[int.Parse(_lvArr[j])] = int.Parse(_rLvArr[j]);
-                }
-            }
+            // FuncConfigConfig func = FuncConfigConfig.Get("NpcPosOffset");
+            // LitJson.JsonData _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+            // foreach (var _key in _data.Keys)
+            // {
+            //     int _npcID = int.Parse(_key);
+            //     double[] _pos = new double[2];
+            //     _pos[0] = (double)_data[_key][0];
+            //     _pos[1] = (double)_data[_key][1];
+            //     NpcPosOffset.Add(_npcID, new Vector3((float)_pos[0], 0, (float)_pos[1]));
+            // }
+            // //checkShowSwitchAccount
+            // var showSwitchAccount = FuncConfigConfig.Get("ShowSwitchAccount");
+            // LitJson.JsonData itemShowSwitchAccount = LitJson.JsonMapper.ToObject(showSwitchAccount.Numerical1);
+            // checkShowSwitchAccount = new List<string>();
+            // foreach(var item in itemShowSwitchAccount)
+            // {
+            //     checkShowSwitchAccount.Add(item.ToString());
+            // }
 
-            crossServerBattleFieldOpenDay = GetInt("CrossRealmCfg", 2);
-            UISpringDecorate = GetInt("UISpringDecorate");
+            // var putInItemPack = FuncConfigConfig.Get("PutInItemPack");
+            // LitJson.JsonData itemPutInData = LitJson.JsonMapper.ToObject(putInItemPack.Numerical1);
+            // itemPutInPackDict = new Dictionary<int, List<int>>();
+            // foreach (var _key in itemPutInData.Keys)
+            // {
+            //     var itemTypeData = itemPutInData[_key];
+            //     int packType = int.Parse(_key);
+            //     List<int> itemTypes = new List<int>();
+            //     itemPutInPackDict.Add(packType, itemTypes);
+            //     if (itemTypeData.IsArray)
+            //     {
+            //         for (i = 0; i < itemTypeData.Count; i++)
+            //         {
+            //             int itemType = int.Parse(itemTypeData[i].ToString());
+            //             itemTypes.Add(itemType);
+            //         }
+            //     }
+            // }
 
-            mixServerCustomDays = GetInt("MixServer");
-            openServerCustomDays = GetInt("OperationAction");
-            ClientPvpAttributePer = GetInt("ClientPvPAttributePer") * Constants.F_DELTA;
+            // //鎷惧彇璐甸噸鐗╁搧
+            // FuncConfigConfig importantItemType = FuncConfigConfig.Get("AutoBuyDrug");
+            // ImportantItemType = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical2);
+            // ImportantItemID = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical3);
 
-            mysteryShopRefreshItem = GetInt("MysteryShopRefresh");
-            mysteryShopRefreshItemCount = new Dictionary<int, int>();
-            var mysteryShopJson = JsonMapper.ToObject(GetInputString("MysteryShopRefresh", 2));
-            foreach (var key in mysteryShopJson.Keys)
-            {
-                var time = int.Parse(key);
-                mysteryShopRefreshItemCount[time] = (int)mysteryShopJson[key];
-            }
+            // FuncConfigConfig nxxdImg = FuncConfigConfig.Get("NXXDPicture");
+            // LitJson.JsonData nxxdData = LitJson.JsonMapper.ToObject(nxxdImg.Numerical1);
+            // multipleRealmImgDict = new Dictionary<int, string>();
+            // if (nxxdData.IsArray)
+            // {
+            //     for (i = 0; i < nxxdData.Count; i++)
+            //     {
+            //         if (nxxdData[i].IsArray)
+            //         {
+            //             multipleRealmImgDict.Add(int.Parse(nxxdData[i][0].ToString()), nxxdData[i][1].ToString());
+            //         }
+            //     }
+            // }
 
-            mysteryShopRefreshItemValue = GetInt("MysteryShopRefresh", 3);
-            mysteryShopRefreshInterval = GetInt("MysteryShopRefresh", 4);
+            // bossShuntMaps = new List<int>(GetIntArray("BossShunt"));
+            // bossShuntDays = GetInt("BossShunt", 3);
 
-            var equipStarConfig = FuncConfigConfig.Get("EquipPartStar");
-            var equipStarJson = LitJson.JsonMapper.ToObject(equipStarConfig.Numerical1);
-            equipStarLimit = new Dictionary<int, Dictionary<int, int>>();
-            foreach (var itemColorKey in equipStarJson.Keys)
-            {
-                var itemColor = int.Parse(itemColorKey);
-                Dictionary<int, int> dict = new Dictionary<int, int>();
-                foreach (var itemLevelKey in equipStarJson[itemColorKey].Keys)
-                {
-                    var itemLevel = int.Parse(itemLevelKey);
-                    var starLimit = int.Parse(equipStarJson[itemColorKey][itemLevelKey].ToString());
-                    dict.Add(itemLevel, starLimit);
-                }
-                equipStarLimit.Add(itemColor, dict);
-            }
+            // itemDropEffect.Clear();
+            // func = FuncConfigConfig.Get("ItemEquipmentEffect");
+            // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+            // List<string> _keys = new List<string>(_data.Keys);
+            // for (i = 0; i < _keys.Count; ++i)
+            // {
+            //     int[] _props = new int[3];
+            //     for (int j = 0; j < 3; ++j)
+            //     {
+            //         _props[j] = (int)_data[_keys[i]][j];
+            //     }
+            //     itemDropEffect[int.Parse(_keys[i])] = _props;
+            // }
 
-            equipTrainMustItemId = GetInt("EquipWashMustID");
-            acutionItemHour = GetInt("AuctionItem");
-            mainWinTopCloseTime = GetInt("AutomaticSwitch");
+            // xllyDropEffect.Clear();
+            // _data = LitJson.JsonMapper.ToObject(func.Numerical2);
+            // _keys.Clear();
+            // _keys.AddRange(_data.Keys);
+            // for (i = 0; i < _keys.Count; ++i)
+            // {
+            //     int[] _props = new int[3];
+            //     for (int j = 0; j < 3; ++j)
+            //     {
+            //         _props[j] = (int)_data[_keys[i]][j];
+            //     }
+            //     xllyDropEffect[int.Parse(_keys[i])] = _props;
+            // }
 
-            equipDecomposeScreen.AddRange(GetIntArray("EquipDecomposeScreen", 2));
+            // xqryDropEffect.Clear();
+            // _data = LitJson.JsonMapper.ToObject(func.Numerical3);
+            // _keys.Clear();
+            // _keys.AddRange(_data.Keys);
+            // for (i = 0; i < _keys.Count; ++i)
+            // {
+            //     int[] _props = new int[3];
+            //     for (int j = 0; j < 3; ++j)
+            //     {
+            //         _props[j] = (int)_data[_keys[i]][j];
+            //     }
+            //     xqryDropEffect[int.Parse(_keys[i])] = _props;
+            // }
 
-            func = FuncConfigConfig.Get("AtkTypeIncreasePushDis");
-            var _ks = func.Numerical1.Split('|');
-            var _vs = func.Numerical2.Split('|');
-            for (i = 0; i < _ks.Length; ++i)
-            {
-                AtkTypeIncreasePushDis[int.Parse(_ks[i])] = int.Parse(_vs[i]) * Constants.F_DELTA;
-            }
+            // dropEffectQuality.Clear();
+            // func = FuncConfigConfig.Get("IeemEquipmentEffectQuality");
+            // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+            // _keys.Clear();
+            // _keys.AddRange(_data.Keys);
+            // for (i = 0; i < _keys.Count; ++i)
+            // {
+            //     dropEffectQuality[int.Parse(_keys[i])] = (int)_data[_keys[i]];
+            // }
 
-            func = FuncConfigConfig.Get("NpcDieSetCamera");
-            if (func != null)
-            {
-                var _jsonData = LitJson.JsonMapper.ToObject(func.Numerical1);
-                for (i = 0; i < _jsonData.Count; ++i)
-                {
-                    var _child = _jsonData[i];
-                    // var _lookAtData = new CameraController.LookAtData();
-                    // _lookAtData.position = new Vector3(MathUtility.GetFloatFromLitJson(_child[1][0]),
-                    //                                    MathUtility.GetFloatFromLitJson(_child[1][1]),
-                    //                                    MathUtility.GetFloatFromLitJson(_child[1][2]));
-                    // _lookAtData.rotX = (int)_child[2];
-                    // _lookAtData.rotY = (int)_child[3];
-                    // _lookAtData.lastTime = MathUtility.GetFloatFromLitJson(_child[4]);
+            // customDropEffect.Clear();
+            // func = FuncConfigConfig.Get("ItemEquipmentEffectItem");
+            // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+            // _keys.Clear();
+            // _keys.AddRange(_data.Keys);
+            // int[] _tmp = null;
+            // List<int[]> _content = null;
+            // for (i = 0; i < _keys.Count; ++i)
+            // {
+            //     _content = new List<int[]>();
+            //     foreach (LitJson.JsonData _values in _data[_keys[i]])
+            //     {
+            //         if (_values.IsArray)
+            //         {
+            //             _tmp = new int[2];
+            //             _tmp[0] = (int)_values[0];
+            //             _tmp[1] = (int)_values[1];
+            //         }
+            //         else
+            //         {
+            //             _tmp = new int[1];
+            //             _tmp[0] = (int)_values;
+            //         }
+            //         _content.Add(_tmp);
+            //     }
+            //     customDropEffect.Add(int.Parse(_keys[i]), _content);
+            // }
 
-                    // NpcDieSetCamera[(int)_child[0]] = _lookAtData;
-                }
-            }
-            WorkForEnemySkills = GetIntArray("ArenaSetSkills", 1);
-            WorkForMeSkills = GetIntArray("ArenaSetSkills", 2);
-            WorkNotSkills = GetIntArray("ArenaSetSkills", 3);
-            defenseGetWays = GetIntArray("DefenseGetWays", 1);
-            skillYinjis = ConfigParse.GetDic<int, int>(GetInputString("SkillYinji", 1));
-            onlyUsedAtBackpackItems = new List<int>(GetIntArray("ItemPush", 2));
+            // BuffToHitEffect.Clear();
+            // func = FuncConfigConfig.Get("BuffToHitEffect");
+            // if (!string.IsNullOrEmpty(func.Numerical1) && !string.IsNullOrEmpty(func.Numerical2))
+            // {
+            //     string[] _buffs = func.Numerical1.Split('|');
+            //     string[] _effects = func.Numerical2.Split('|');
+            //     for (i = 0; i < _buffs.Length; ++i)
+            //     {
+            //         BuffToHitEffect[int.Parse(_buffs[i])] = int.Parse(_effects[i]);
+            //     }
+            // }
 
-            var signInSkillArray = GetIntArray("SignInPromoteSkill", 1);
-            if (signInSkillArray != null)
-            {
-                signInPromoteSkills.AddRange(signInSkillArray);
-            }
+            // demonJarHintLevelLimit = GetInt("DemonJarFirstRemin");
+            // demonJarHintLineId = GetInt("DemonJarFirstRemin", 2);
+            // skillPanelUnLock = GetInt("SkillPanelUnlock");
+            // dailyQuestRedpointLevelLimit = GetInt("DailyQuestRedPoint");
+            // lowHpRemind = GetInt("LowHpRemind");
+            // autoBuyItemIds = GetIntArray("BuyItemPrice", 1);
+            // autoBuyItemPrices = GetIntArray("BuyItemPrice", 2);
+            // neutralMaps.AddRange(GetIntArray("MapLine", 4));
+            // neutralBossMaps.AddRange(GetIntArray("BossListMapID"));
 
-            MasteryLoadingLevelLimit1 = GetInt("MasteryLoadingLevelLimit");
-            MasteryLoadingLevelLimit2 = GetInt("MasteryLoadingLevelLimit", 2);
+            // var _propertyIconCfg = FuncConfigConfig.Get("PropertyIcon");
+            // var _propertyIconJson = LitJson.JsonMapper.ToObject(_propertyIconCfg.Numerical1);
+            // foreach (var _key in _propertyIconJson.Keys)
+            // {
+            //     var _property = int.Parse(_key);
+            //     propertyIconDict.Add(_property, _propertyIconJson[_key].ToString());
+            // }
 
-            chestDisplayItems = new List<int>(GetIntArray("ChestShowItems"));
+            // munekadolockLimit = GetInt("MunekadoLockLimit");
+            // demonJarRedPoint = GetInt("DemonJarRedPoint");
+            // LoadLV = GetInputString("LoadLV");
 
-            func = FuncConfigConfig.Get("Zhanling");
-            if (func != null)
-            {
-                OldZhanLingCtgIdDict = new Dictionary<int, int>();
-                ZhanLingCtgIdDict = new Dictionary<int, List<int>>();
-                var tempDict = JsonMapper.ToObject(func.Numerical1);
-                var keyList = tempDict.Keys.ToList();
-                for (int j = 0; j < keyList.Count; j++)
-                {
-                    OldZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson())[0];
-                    ZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson());
-                }
+            // mainWinSkillResetTime = GetFloat("AutomaticSwitch");
+            // heroDialogueOffset = GetInputString("NpcHalfLength", 1).Vector3Parse();
+            // heroDialogueRotation = GetInputString("NpcHalfLength", 2).Vector3Parse();
+            // heroDialogueScale = GetFloat("NpcHalfLength", 3);
 
-                ZhanLingCtgIdHDict = new Dictionary<int, List<int>>();
-                tempDict = JsonMapper.ToObject(func.Numerical3);
-                keyList = tempDict.Keys.ToList();
-                for (int k = 0; k < keyList.Count; k++)
-                {
-                    ZhanLingCtgIdHDict[int.Parse(keyList[k])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[k]].ToJson());
-                }
-            }
+            // var ancientConfig = FuncConfigConfig.Get("ElderBattleTarget");
+            // ancientGrandTotalAchievements = new List<int>();
+            // ancientGrandTotalAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical1));
+            // ancientContinueKillAchievements = new List<int>();
+            // ancientContinueKillAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical2));
 
-            func = FuncConfigConfig.Get("FBQuickPass");
-            fightPowerMore = float.Parse(func.Numerical1) + 0.01f; //鐤戜技鐜╁鏃犳硶闆疯瘺鏄疌/S璁$畻涓嶅绛夐棶棰橈紝鎵�浠ュ姞0.01f
-            flashOpenArr = JsonMapper.ToObject<int[]>(func.Numerical2);
-            flashCntMoreArr = JsonMapper.ToObject<int[]>(func.Numerical3);
-            flashKillMaxCount = int.Parse(func.Numerical4);
+            // trialDungeonGroupChallengeTipLv = GetInt("SingleIntoFB");
+            // prayerRedpointLimitLv = GetInt("PrayRedPoint");
+            // demonJarLevelLimit = GetInt("DemonJarLevelLimit");
+            // maxItemDropEffectCount = GetInt("ItemMaskEffect");
+
+            // specialGuide41Mission = GetInt("SpecialGuide41", 1);
+            // specialGuide41Achievement = GetInt("SpecialGuide41", 2);
+
+            // supremeRechargeVipLv = GetInt("SupremeCTGVipLimit", 1);
+
+            // rechargeRedpointLv = GetInt("FirstPayRedPoint", 1);
+            // rechargeRedpointMinLv = GetInt("FirstPayRedPoint", 2);
+            // runeTowerSweepBuyTimes = GetInt("RuneTowerSweepBuy");
+            // runeTowerSweepBuyPrice = GetInt("RuneTowerSweepBuy", 2);
+            // teamMatchingTimeOut = GetInt("TeamMatchingTimeOut");
+            // inGameDownLoadLevelCheckPoints = new List<int>(GetIntArray("InGameDownLoad"));
+            // inGameDownLoadTaskCheckPoints = new List<int>(GetIntArray("InGameDownLoad", 2));
+            // inGameDownLoadHighLevel = GetInt("InGameDownLoad", 3);
+
+            // worldBossNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 1));
+            // bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2));
+            // elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3));
+            // demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4));
+            // dogzNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 5));
+
+            // if (ModeDefaultConfig == null)
+            // {
+            //     func = FuncConfigConfig.Get("ModeDefault");
+
+            //     string[] _funcNpc = func.Numerical1.Split('|');
+            //     string[] _fightNpc = func.Numerical2.Split('|');
+            //     string[] _pet = func.Numerical3.Split('|');
+            //     string[] _horse = func.Numerical4.Split('|');
+
+            //     ModeDefaultConfig = new string[4][];
+            //     ModeDefaultConfig[0] = _funcNpc;
+            //     ModeDefaultConfig[1] = _fightNpc;
+            //     ModeDefaultConfig[2] = _pet;
+            //     ModeDefaultConfig[3] = _horse;
+            // }
+
+            // if (RealmGroup == null)
+            // {
+            //     func = FuncConfigConfig.Get("RealmGroup");
+            //     string[] _group = func.Numerical1.Split('|');
+            //     RealmGroup = new int[_group.Length];
+            //     for (int j = 0; j < _group.Length; ++j)
+            //     {
+            //         int.TryParse(_group[j], out RealmGroup[j]);
+            //     }
+            // }
+
+            // func = FuncConfigConfig.Get("PrefightAtkRange");
+            // PrefightAtkRange = float.Parse(func.Numerical1);
+            // inGameDownLoadHighestLevelPoint = GetInt("DownReward", 2);
+
+            // dungeonCanUseMoneyIds = new List<int>(GetIntArray("FBEnterTickeyAuto", 1));
+            // dungeonRebornClientTimes = ConfigParse.GetDic<int, int>(GetInputString("DuplicatesRebornTime", 2));
+            // dogzBoxLimit = GetInt("DogzBoxLimit");
+
+            // fairyGrabBossMapLines = ConfigParse.GetDic<int, int>(GetInputString("MapLine", 2));
+            // var grabBossMaps = fairyGrabBossMapLines.Keys.ToList();
+            // foreach (var _key in grabBossMaps)
+            // {
+            //     fairyGrabBossMapLines[_key] = fairyGrabBossMapLines[_key] - 1;
+            // }
+
+            // if (DropItemEffectMapID == null)
+            // {
+            //     DropItemEffectMapID = new Dictionary<int, List<int>>();
+            // }
+            // DropItemEffectMapID.Clear();
+            // func = FuncConfigConfig.Get("DropItemEffectMapID");
+            // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+            // int _itemID;
+            // _keys.Clear();
+            // _keys.AddRange(_data.Keys);
+            // for (int j = 0; j < _keys.Count; ++j)
+            // {
+            //     if (int.TryParse(_keys[j].ToString(), out _itemID))
+            //     {
+            //         if (!DropItemEffectMapID.ContainsKey(_itemID))
+            //         {
+            //             DropItemEffectMapID.Add(_itemID, new List<int>());
+            //         }
+            //         var _jsonMapIDs = _data[_keys[j]];
+            //         foreach (var _jsonMapID in _jsonMapIDs)
+            //         {
+            //             var _mapID = ((LitJson.IJsonWrapper)_jsonMapID).GetInt();
+            //             if (!DropItemEffectMapID[_itemID].Contains(_mapID))
+            //             {
+            //                 DropItemEffectMapID[_itemID].Add(_mapID);
+            //             }
+            //         }
+            //     }
+            // }
+
+            // int[] mapIDs = GetIntArray("RebornAutoFightDungeon");
+            // RebornAutoFightMapID = new List<int>(mapIDs);
+
+            // teamWorldCall = GetInputString("TeamWorldCall");
+            // teamWorldCallInviteCount = GetInt("TeamWorldCall", 2);
+
+            // var ancientKingAwradConfig = FuncConfigConfig.Get("ElderBattlefieldTopAward");
+            // if (ancientKingAwradConfig != null)
+            // {
+            //     var itemArray = LitJson.JsonMapper.ToObject<int[][]>(ancientKingAwradConfig.Numerical1);
+            //     for (int k = 0; k < itemArray.Length; k++)
+            //     {
+            //         // ancientKingAwards.Add(new Item()
+            //         // {
+            //         //     id = itemArray[k][0],
+            //         //     count = itemArray[k][1],
+            //         // });
+            //     }
+            // }
+
+            // func = FuncConfigConfig.Get("QualityEffectConfig");
+            // lowQualityEffectCount = int.Parse(func.Numerical1);
+            // medQualityEffectCount = int.Parse(func.Numerical2);
+            // highQualityEffectCount = int.Parse(func.Numerical3);
+
+            // func = FuncConfigConfig.Get("QualityPetCountConfig");
+            // lowQualityPetCount = int.Parse(func.Numerical1);
+            // medQualityPetCount = int.Parse(func.Numerical2);
+            // highQualityPetCount = int.Parse(func.Numerical3);
+
+            // func = FuncConfigConfig.Get("QualityGuardCountConfig");
+            // lowQualityGuardCount = int.Parse(func.Numerical1);
+            // medQualityGuardCount = int.Parse(func.Numerical2);
+            // highQualityGuardCount = int.Parse(func.Numerical3);
+
+            // func = FuncConfigConfig.Get("QualityPetEffectCount");
+            // lowQualityPetEffectCount = int.Parse(func.Numerical1);
+            // medQualityPetEffectCount = int.Parse(func.Numerical2);
+            // highQualityPetEffectCount = int.Parse(func.Numerical3);
+
+            // func = FuncConfigConfig.Get("QualityHorseEffectCount");
+            // lowQualityHorseEffectCount = int.Parse(func.Numerical1);
+            // medQualityHorseEffectCount = int.Parse(func.Numerical2);
+            // highQualityHorseEffectCount = int.Parse(func.Numerical3);
+
+            // fairyLandBuffCondition = GetInt("XjmjAddHarm", 1);
+            // fairyLandBuffId = GetInt("XjmjAddHarm", 2);
+            // achievementEarlierStageLevel = GetInt("AchieveLV");
+
+            // func = FuncConfigConfig.Get("PreloadSkillEffect");
+            // PreloadSkillEffect = new int[2][];
+            // PreloadSkillEffect[0] = GetIntArray("PreloadSkillEffect");
+            // PreloadSkillEffect[1] = GetIntArray("PreloadSkillEffect", 2);
+            // demonJarAutoTime = GetInt("DemonJarAutoTime");
+
+            // // if (SgzzRobotEquipDict == null)
+            // // {
+            // //     SgzzRobotEquipDict = new Dictionary<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>>();
+
+            // //     for (int job = 1; job <= 3; ++job)
+            // //     {
+            // //         string _jsonString = GetInputString("SGZCHelpBattleEquip", job);
+
+            // //         if (string.IsNullOrEmpty(_jsonString))
+            // //         {
+            // //             continue;
+            // //         }
+
+            // //         var _jsonData = LitJson.JsonMapper.ToObject(_jsonString);
+            // //         var _jobDict = new Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>();
+
+            // //         for (i = 0; i < _jsonData.Count; ++i)
+            // //         {
+            // //             var _lvJson = _jsonData[i];
+            // //             var _lv = (int)_lvJson["LV"];
+            // //             if (!_jobDict.ContainsKey(_lv))
+            // //             {
+            // //                 var _equips = _lvJson["Equips"];
+
+            // //                 var _randEquip = new GA_NpcFightSgzcZZ.EquipRandomInfo();
+
+            // //                 _randEquip.randClothesItemIDs = new int[_equips[0].Count];
+            // //                 for (int j = 0; j < _equips[0].Count; ++j)
+            // //                 {
+            // //                     _randEquip.randClothesItemIDs[j] = (int)_equips[0][j];
+            // //                 }
+
+            // //                 _randEquip.randWeaponItemIDs = new int[_equips[1].Count];
+            // //                 for (int j = 0; j < _equips[1].Count; ++j)
+            // //                 {
+            // //                     _randEquip.randWeaponItemIDs[j] = (int)_equips[1][j];
+            // //                 }
+
+            // //                 _randEquip.randSecondaryItemIDs = new int[_equips[2].Count];
+            // //                 for (int j = 0; j < _equips[2].Count; ++j)
+            // //                 {
+            // //                     _randEquip.randSecondaryItemIDs[j] = (int)_equips[2][j];
+            // //                 }
+
+            // //                 _randEquip.randWingItemIDs = new int[_equips[3].Count];
+            // //                 for (int j = 0; j < _equips[3].Count; ++j)
+            // //                 {
+            // //                     _randEquip.randWingItemIDs[j] = (int)_equips[3][j];
+            // //                 }
+
+            // //                 _randEquip.godWeaponIDs = new int[_equips[4].Count];
+            // //                 for (int j = 0; j < _equips[4].Count; ++j)
+            // //                 {
+            // //                     _randEquip.godWeaponIDs[j] = (int)_equips[4][j];
+            // //                 }
+
+            // //                 _jobDict.Add(_lv, _randEquip);
+            // //             }
+            // //         }
+
+            // //         SgzzRobotEquipDict.Add(job, _jobDict);
+
+            // //     }
+            // // }
+
+
+            // if (SgzcRealm == null)
+            // {
+            //     SgzcRealm = new Dictionary<int, int>();
+
+            //     var _lvArr = GetInputString("SGZCRobotRealm", 1).Split('|');
+            //     var _rLvArr = GetInputString("SGZCRobotRealm", 2).Split('|');
+
+            //     for (int j = 0; j < _lvArr.Length; ++j)
+            //     {
+            //         SgzcRealm[int.Parse(_lvArr[j])] = int.Parse(_rLvArr[j]);
+            //     }
+            // }
+
+            // crossServerBattleFieldOpenDay = GetInt("CrossRealmCfg", 2);
+            // UISpringDecorate = GetInt("UISpringDecorate");
+
+            // mixServerCustomDays = GetInt("MixServer");
+            // openServerCustomDays = GetInt("OperationAction");
+            // ClientPvpAttributePer = GetInt("ClientPvPAttributePer") * Constants.F_DELTA;
+
+            // mysteryShopRefreshItem = GetInt("MysteryShopRefresh");
+            // mysteryShopRefreshItemCount = new Dictionary<int, int>();
+            // var mysteryShopJson = JsonMapper.ToObject(GetInputString("MysteryShopRefresh", 2));
+            // foreach (var key in mysteryShopJson.Keys)
+            // {
+            //     var time = int.Parse(key);
+            //     mysteryShopRefreshItemCount[time] = (int)mysteryShopJson[key];
+            // }
+
+            // mysteryShopRefreshItemValue = GetInt("MysteryShopRefresh", 3);
+            // mysteryShopRefreshInterval = GetInt("MysteryShopRefresh", 4);
+
+            // var equipStarConfig = FuncConfigConfig.Get("EquipPartStar");
+            // var equipStarJson = LitJson.JsonMapper.ToObject(equipStarConfig.Numerical1);
+            // equipStarLimit = new Dictionary<int, Dictionary<int, int>>();
+            // foreach (var itemColorKey in equipStarJson.Keys)
+            // {
+            //     var itemColor = int.Parse(itemColorKey);
+            //     Dictionary<int, int> dict = new Dictionary<int, int>();
+            //     foreach (var itemLevelKey in equipStarJson[itemColorKey].Keys)
+            //     {
+            //         var itemLevel = int.Parse(itemLevelKey);
+            //         var starLimit = int.Parse(equipStarJson[itemColorKey][itemLevelKey].ToString());
+            //         dict.Add(itemLevel, starLimit);
+            //     }
+            //     equipStarLimit.Add(itemColor, dict);
+            // }
+
+            // equipTrainMustItemId = GetInt("EquipWashMustID");
+            // acutionItemHour = GetInt("AuctionItem");
+            // mainWinTopCloseTime = GetInt("AutomaticSwitch");
+
+            // equipDecomposeScreen.AddRange(GetIntArray("EquipDecomposeScreen", 2));
+
+            // func = FuncConfigConfig.Get("AtkTypeIncreasePushDis");
+            // var _ks = func.Numerical1.Split('|');
+            // var _vs = func.Numerical2.Split('|');
+            // for (i = 0; i < _ks.Length; ++i)
+            // {
+            //     AtkTypeIncreasePushDis[int.Parse(_ks[i])] = int.Parse(_vs[i]) * Constants.F_DELTA;
+            // }
+
+            // func = FuncConfigConfig.Get("NpcDieSetCamera");
+            // if (func != null)
+            // {
+            //     var _jsonData = LitJson.JsonMapper.ToObject(func.Numerical1);
+            //     for (i = 0; i < _jsonData.Count; ++i)
+            //     {
+            //         var _child = _jsonData[i];
+            //         // var _lookAtData = new CameraController.LookAtData();
+            //         // _lookAtData.position = new Vector3(MathUtility.GetFloatFromLitJson(_child[1][0]),
+            //         //                                    MathUtility.GetFloatFromLitJson(_child[1][1]),
+            //         //                                    MathUtility.GetFloatFromLitJson(_child[1][2]));
+            //         // _lookAtData.rotX = (int)_child[2];
+            //         // _lookAtData.rotY = (int)_child[3];
+            //         // _lookAtData.lastTime = MathUtility.GetFloatFromLitJson(_child[4]);
+
+            //         // NpcDieSetCamera[(int)_child[0]] = _lookAtData;
+            //     }
+            // }
+            // WorkForEnemySkills = GetIntArray("ArenaSetSkills", 1);
+            // WorkForMeSkills = GetIntArray("ArenaSetSkills", 2);
+            // WorkNotSkills = GetIntArray("ArenaSetSkills", 3);
+            // defenseGetWays = GetIntArray("DefenseGetWays", 1);
+            // skillYinjis = ConfigParse.GetDic<int, int>(GetInputString("SkillYinji", 1));
+            // onlyUsedAtBackpackItems = new List<int>(GetIntArray("ItemPush", 2));
+
+            // var signInSkillArray = GetIntArray("SignInPromoteSkill", 1);
+            // if (signInSkillArray != null)
+            // {
+            //     signInPromoteSkills.AddRange(signInSkillArray);
+            // }
+
+            // MasteryLoadingLevelLimit1 = GetInt("MasteryLoadingLevelLimit");
+            // MasteryLoadingLevelLimit2 = GetInt("MasteryLoadingLevelLimit", 2);
+
+            // chestDisplayItems = new List<int>(GetIntArray("ChestShowItems"));
+
+            // func = FuncConfigConfig.Get("Zhanling");
+            // if (func != null)
+            // {
+            //     OldZhanLingCtgIdDict = new Dictionary<int, int>();
+            //     ZhanLingCtgIdDict = new Dictionary<int, List<int>>();
+            //     var tempDict = JsonMapper.ToObject(func.Numerical1);
+            //     var keyList = tempDict.Keys.ToList();
+            //     for (int j = 0; j < keyList.Count; j++)
+            //     {
+            //         OldZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson())[0];
+            //         ZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson());
+            //     }
+
+            //     ZhanLingCtgIdHDict = new Dictionary<int, List<int>>();
+            //     tempDict = JsonMapper.ToObject(func.Numerical3);
+            //     keyList = tempDict.Keys.ToList();
+            //     for (int k = 0; k < keyList.Count; k++)
+            //     {
+            //         ZhanLingCtgIdHDict[int.Parse(keyList[k])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[k]].ToJson());
+            //     }
+            // }
+
+            // func = FuncConfigConfig.Get("FBQuickPass");
+            // fightPowerMore = float.Parse(func.Numerical1) + 0.01f; //鐤戜技鐜╁鏃犳硶闆疯瘺鏄疌/S璁$畻涓嶅绛夐棶棰橈紝鎵�浠ュ姞0.01f
+            // flashOpenArr = JsonMapper.ToObject<int[]>(func.Numerical2);
+            // flashCntMoreArr = JsonMapper.ToObject<int[]>(func.Numerical3);
+            // flashKillMaxCount = int.Parse(func.Numerical4);
 
         }
         catch (Exception ex)
diff --git a/Main/System/HappyXB/HappyXBModel.cs b/Main/System/HappyXB/HappyXBModel.cs
index a0e2efe..5237198 100644
--- a/Main/System/HappyXB/HappyXBModel.cs
+++ b/Main/System/HappyXB/HappyXBModel.cs
@@ -58,12 +58,12 @@
 
         SetXBFuncDict(1);
         SetXBFuncDict(2);
-        var treasureIDArr = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("TreasureLuckyDraw").Numerical1);
-        for (int i = 0; i < treasureIDArr.Length; i++)
-        {
-            int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
-            SetXBFuncDict(type);
-        }
+        // var treasureIDArr = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("TreasureLuckyDraw").Numerical1);
+        // for (int i = 0; i < treasureIDArr.Length; i++)
+        // {
+        //     int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
+        //     SetXBFuncDict(type);
+        // }
 
         SetXBFuncDict(105);
         SetXBFuncDict(106);
@@ -75,11 +75,11 @@
 
         XBCostTypeDict[(int)HappXBTitle.Best] = TreasureSetConfig.Get(1).CostMoneyType;
         XBCostTypeDict[(int)HappXBTitle.Rune] = TreasureSetConfig.Get(2).CostMoneyType;
-        for (int i = 0; i < treasureIDArr.Length; i++)
-        {
-            int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
-            XBCostTypeDict[(int)HappXBTitle.Gubao1 + i] = TreasureSetConfig.Get(type).CostMoneyType;
-        }
+        // for (int i = 0; i < treasureIDArr.Length; i++)
+        // {
+        //     int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
+        //     XBCostTypeDict[(int)HappXBTitle.Gubao1 + i] = TreasureSetConfig.Get(type).CostMoneyType;
+        // }
         XBCostTypeDict[(int)HappXBTitle.YunShi1] = TreasureSetConfig.Get(105).CostMoneyType;
         XBCostTypeDict[(int)HappXBTitle.YunShi2] = TreasureSetConfig.Get(106).CostMoneyType;
         XBCostTypeDict[(int)HappXBTitle.YunShi3] = TreasureSetConfig.Get(107).CostMoneyType;
diff --git a/Main/System/KnapSack/Logic/ItemLogicUtility.cs b/Main/System/KnapSack/Logic/ItemLogicUtility.cs
index 5d228e6..0513ad9 100644
--- a/Main/System/KnapSack/Logic/ItemLogicUtility.cs
+++ b/Main/System/KnapSack/Logic/ItemLogicUtility.cs
@@ -7,22 +7,10 @@
 
     public class ItemLogicUtility : Singleton<ItemLogicUtility>
     {
-        private string dogzGSFormula;
         private string normalGSFormula;
-        private Dictionary<int, string> specialSpiritPropertyFormula = new Dictionary<int, string>();
-        Dictionary<int, int> specialSpiritPropertyMaxLevels;
 
-        private int[] preciousItemTypes;
-        private int[] preciousItemIDs; // 涓嶅睍绀虹殑鐗╁搧ID
-        public int[] drugIDs;
-        private int[] onekeySellTypes;
-        private int[] pushItemIds;
-
-        private int lsItemCnt; // 鑳屽寘涓殑鐏电煶鏁伴噺
 
         private List<int> equipBaseProperties = new List<int>();
-        private Dictionary<int, int> promptUseLimitDict;
-        private Dictionary<int, List<int>> betterEquipExceptDungeonDict;
         Dictionary<int, int> equipSkillScores = new Dictionary<int, int>();
 
         PackManager packModel { get { return PackManager.Instance; } }
@@ -38,15 +26,8 @@
         public void Init()
         {
             var GSFormulaConfig = FuncConfigConfig.Get("EquipGSFormula");
-            dogzGSFormula = GSFormulaConfig.Numerical3;
             normalGSFormula = GSFormulaConfig.Numerical1;
 
-            var json = JsonMapper.ToObject(FuncConfigConfig.Get("OutOfPrintValue").Numerical2);
-            foreach (var key in json.Keys)
-            {
-                specialSpiritPropertyFormula[int.Parse(key)] = json[key].ToString();
-            }
-            specialSpiritPropertyMaxLevels = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("OutOfPrintValueDes").Numerical1);
             var equipSkillScoreJson = JsonMapper.ToObject(GSFormulaConfig.Numerical4);
             foreach (var key in equipSkillScoreJson.Keys)
             {
@@ -66,29 +47,9 @@
                     equipBaseProperties.Add(int.Parse(baseAttr[i].ToString()));
                 }
             }
-            lsItemCnt = int.Parse(FuncConfigConfig.Get("LingshiShowCount").Numerical1);
 
-            preciousItemTypes = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("ItemPush").Numerical1);
-            promptUseLimitDict = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("NoPromptUsetItem").Numerical1);
-            preciousItemIDs = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("ItemPush").Numerical3);
-            drugIDs = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("LifePotionlist").Numerical1);
 
-            onekeySellTypes = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("OneKeySellItemType").Numerical1);
 
-            pushItemIds = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("IntroductionItem").Numerical1);
-
-            betterEquipExceptDungeonDict = new Dictionary<int, List<int>>();
-            var excEquipData = JsonMapper.ToObject(FuncConfigConfig.Get("GoodItemDungeon").Numerical1);
-            foreach (var dungeonId in excEquipData.Keys)
-            {
-                var itemIds = new List<int>();
-                betterEquipExceptDungeonDict.Add(int.Parse(dungeonId), itemIds);
-                for (var i = 0; i < excEquipData[dungeonId].Count; i++)
-                {
-                    var itemId = int.Parse(excEquipData[dungeonId][i].ToString());
-                    itemIds.Add(itemId);
-                }
-            }
 
             DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
         }
@@ -385,370 +346,7 @@
 
         #endregion
 
-        #region 涓荤晫闈㈢墿鍝佸脊妗嗗睍绀�
-        public event Action<PackType, string> GetPreciousItemEvent; //寰楀埌鐝嶅搧  value 鐗╁搧鐨勫疄渚婭D
-        public event Action<PackType, string> GetExpItemEvent; //寰楀埌缁忛獙鐗╁搧  value 鐗╁搧鐨勫疄渚婭D
-        public void RecommendItem(ItemModel item)
-        {
-            if (item.packType != PackType.Item)
-            {
-                return;
-            }
-            if (!preciousItemTypes.Contains(item.config.Type))
-            {
-                int mapId = PlayerDatas.Instance.baseData.MapID;
-                var drugList = packModel.GetDrugIDListByDungeonID(mapId);
-                if (drugList == null)
-                    return;
-                if (!drugList.Contains(item.config.ID))
-                    return;
-            }
-
-            if (item.config.Type == 145 && item.config.CDTime > 0)
-            {
-                var createTime = item.GetUseDataFirstValue((int)ItemUseDataKey.createTime);
-                if (createTime > 0)
-                {
-                    DateTime useTime;
-                    if (item.config.CDTypeEx == 1)
-                    {
-                        //itemConfig.CDTime 涓哄ぉ锛岃繃0鐐瑰彲鐢�
-                        useTime = TimeUtility.GetTime((uint)createTime).AddDays(item.config.CDTime);
-                        useTime = TimeUtility.GetDayStartTime(useTime.Year, useTime.Month, useTime.Day);
-                    }
-                    else
-                    {
-                        useTime = TimeUtility.GetTime((uint)createTime).AddSeconds(item.config.CDTime);
-                    }
-                    if (TimeUtility.ServerNow < useTime)
-                    {
-                        return;
-                    }
-                }
-            }
-
-            if (preciousItemIDs != null && preciousItemIDs.Contains(item.config.ID))
-            {
-                return;
-            }
-            if (item.config.ID == packModel.lsItemID)
-            {
-                int tmpCnt = PlayerDatas.Instance.baseData.LV < 50 ? 5 : lsItemCnt;
-                if (packModel.GetItemCountByID(PackType.Item, packModel.lsItemID) < tmpCnt)
-                    return;
-            }
-            //if (item.isAuction)
-            //{
-            //    return;
-            //}
-
-            if (item.config.UseLV > PlayerDatas.Instance.baseData.LV)
-            {
-                return;
-            }
-
-            if (IsOverdue(item.guid))
-            {
-                return;
-            }
-
-            // if (!IsAbleToUse(item))
-            // {
-            //     return;
-            // }
-
-            if (IsSpiritWeapon(item.itemId))
-            {
-                if (IsFightUp(item.itemId, item.score) != 1)
-                {
-                    return;
-                }
-            }
-            if (item.config.Type == 13)
-            {
-                // 缁忛獙涓圭壒娈婂鐞嗭紝浼樺厛鏄剧ず
-                if (GetExpItemEvent != null)
-                {
-                    GetExpItemEvent(item.packType, item.guid);
-                }
-            }
-            else
-            {
-                if (GetPreciousItemEvent != null)
-                {
-                    GetPreciousItemEvent(item.packType, item.guid);
-                }
-
-            }
-        }
-
-        // bool IsAbleToUse(ItemModel item)
-        // {
-        //     var windowSearch = WindowSearchConfig.Get(item.config.Jump);
-        //     if (windowSearch != null)
-        //     {
-        //         if (!FuncOpen.Instance.IsFuncOpen(windowSearch.Lv) && windowSearch.Lv != 0)
-        //         {
-        //             return false;
-        //         }
-        //     }
-
-        //     if (pushItemIds.Contains(item.itemId))
-        //     {
-        //         var itemCnt = packModel.GetItemCountByID(PackType.Item, item.itemId) - item.count;
-        //         if (itemCnt > 0)
-        //         {
-        //             return false;
-        //         }
-        //         else
-        //         {
-        //             if (item.preItemCount > 0)
-        //             {
-        //                 return false;
-        //             }
-        //         }
-        //     }
-
-        //     if (promptUseLimitDict.ContainsKey(item.itemId))
-        //     {
-        //         var playerLv = PlayerDatas.Instance.baseData.LV;
-        //         if (playerLv < promptUseLimitDict[item.itemId])
-        //         {
-        //             return false;
-        //         }
-        //     }
-
-        //     ulong canUseCnt = 0;
-        //     if (packModel.IsReachUseLimit(item.guid, out canUseCnt))
-        //     {
-        //         return false;
-        //     }
-
-        //     bool isBox = false;
-        //     bool isCanOpen = ModelCenter.Instance.GetModel<BoxGetItemModel>().CheckOpenBoxCondition(item.itemId, out isBox);
-        //     if (isBox)
-        //     {
-        //         if (!isCanOpen)
-        //         {
-        //             return false;
-        //         }
-        //     }
-
-        //     //if (trialModel.trialTokens.Contains(item.itemId))
-        //     //{
-        //     //    if (!trialModel.IsAnySatisfyExchangeBetter(item.itemId))
-        //     //    {
-        //     //        return false;
-        //     //    }
-        //     //}
-
-        //     if (packModel.CheckIsDrugById(item.itemId))
-        //     {
-        //         if (item.config.RealmLimit > PlayerDatas.Instance.baseData.realmLevel)
-        //         {
-        //             return false;
-        //         }
-        //     }
-
-        //     var fruitConfig = AttrFruitConfig.Get(item.itemId);
-        //     if (fruitConfig != null && fruitConfig.FuncID == 2)
-        //     {
-        //         if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace))
-        //         {
-        //             return false;
-        //         }
-        //     }
-
-        //     switch (item.config.Type)
-        //     {
-        //         case 8:
-        //             if (buffDatas.BastBuff(item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 20:
-        //             if (magicianModel.IsGodWeaponMaxLevelByItem(item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 21:
-        //             if (!mountDatas.IsHint(HorseEnum.HorseDan, item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 22:
-        //             if (!mountDatas.IsHint(HorseEnum.HorseStone, item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 41:
-        //             if (!mountDatas.IsHint(HorseEnum.HorseDebris, item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 26:
-        //             if (!petDatas.IsHint(PetEnum.PetDebris, item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 27:
-        //             if (!petDatas.IsHint(PetEnum.PetDan, item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 28:
-        //             if (!petDatas.IsHint(PetEnum.PetStone, item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 25:
-        //             if (!ModelCenter.Instance.GetModel<EquipGemModel>().IsBetterGem(item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 39:
-        //             if (!IsBetterWings(item))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 52:
-        //             if (!strengthDatas.IsHint(item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 55:
-        //             if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace))
-        //             {
-        //                 return false;
-        //             }
-        //             var alchemyId = 0;
-        //             if (alchemyModel.TryGetAlchemyByStudyMaterial(item.itemId, out alchemyId))
-        //             {
-        //                 var alchemyConfig = AlchemyConfig.Get(alchemyId);
-        //                 int alchemingId;
-        //                 if (alchemyModel.IsStoveAlcheming((AlchemyType)alchemyConfig.AlchemType, out alchemingId))
-        //                 {
-        //                     return false;
-        //                 }
-        //                 if (alchemyModel.IsGraspRecipe(alchemyId))
-        //                 {
-        //                     return false;
-        //                 }
-        //                 var studyError = 0;
-        //                 if (!alchemyModel.TryLearn(alchemyId, out studyError))
-        //                 {
-        //                     return false;
-        //                 }
-        //             }
-        //             break;
-        //         case 127:
-        //             var error = 0;
-        //             bool isHaveMakeNum = ItemOperateUtility.Instance.CanUseItem(item.guid, 1, out error);
-        //             int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
-        //             if (!CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch
-        //                 || remainNum > 0
-        //                 || !isHaveMakeNum)
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         default:
-        //             break;
-        //     }
-
-        //     switch (item.itemId)
-        //     {
-        //         case 951:
-        //             if (!CheckIsExtendGrid(item.itemId))
-        //             {
-        //                 return false;
-        //             }
-        //             break;
-        //         case 952:
-        //             return false;
-        //             break;
-
-        //     }
-
-        //     return true;
-        // }
-
-        // private bool IsBetterWings(ItemModel item)
-        // {
-        //     if (item == null)
-        //     {
-        //         return false;
-        //     }
-
-        //     var putModel = packModel.GetItemByIndex(PackType.Equip, SpiritWeaponModel.WING_EQUIPINDEX);
-        //     var singlePack = packModel.GetSinglePack(PackType.Item);
-        //     if (singlePack == null)
-        //     {
-        //         return false;
-        //     }
-
-        //     int[] composeTypes = item.config.JumpComposeCondi;
-        //     bool isOpenCompose = false;
-        //     if (composeTypes != null && composeTypes.Length >= 3)
-        //     {
-        //         int first = composeTypes[0];
-        //         int second = composeTypes[1];
-        //         int third = composeTypes[2];
-        //         ComposeWinModel.ComposeThirdTypeData thirdTypeData = null;
-        //         composeModel.TryGetThirdTypeData(first, second, third, out thirdTypeData);
-        //         if (thirdTypeData != null)
-        //         {
-        //             var itemCompound = thirdTypeData.itemCompound;
-        //             if (itemCompound.levelNeed <= PlayerDatas.Instance.baseData.LV)
-        //             {
-        //                 isOpenCompose = true;
-        //             }
-        //         }
-        //     }
-
-        //     if (!isOpenCompose)
-        //     {
-        //         return false;
-        //     }
-
-        //     if (putModel != null && putModel.config.LV >= item.config.LV)
-        //     {
-        //         return false;
-        //     }
-
-        //     var itemModels = packModel.GetItems(PackType.Item, new SinglePack.FilterParams()
-        //     {
-        //         itemTypes = new List<int>() { (int)ItemType.Equip_Wing }
-        //     });
-
-        //     if (itemModels != null)
-        //     {
-        //         for (int i = 0; i < itemModels.Count; i++)
-        //         {
-        //             if (IsJobCompatibleItem(itemModels[i].itemId))
-        //             {
-        //                 if (itemModels[i].config.LV >= item.config.LV)
-        //                 {
-        //                     return false;
-        //                 }
-        //             }
-        //         }
-        //     }
-
-        //     return true;
-        // }
-
+       
         private bool CheckIsExtendGrid(int itemId)
         {
             SinglePack singlePack = packModel.GetSinglePack(PackType.Item);
@@ -954,7 +552,6 @@
         //     }
         //     return RealmDruglist;
         // }
-        #endregion
 
         #region 鐗╁搧澶勪簬CD涓殑閫昏緫澶勭悊
 
diff --git a/Main/System/KnapSack/PackManager.cs b/Main/System/KnapSack/PackManager.cs
index 5b5648b..0dbd7f1 100644
--- a/Main/System/KnapSack/PackManager.cs
+++ b/Main/System/KnapSack/PackManager.cs
@@ -24,12 +24,9 @@
         //AlchemyModel alchemyModel { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
         //ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
 
-        public int lsItemID = 150; //鍙厬鎹㈢殑鐏电煶鐗╁搧ID
-        int lsItemCnt = 0;
         List<string> commonShowAwardEvents = new List<string>();
 
         public int[] autoUseItemIDs;
-        UIEffect lingshiEffect;  //鐏电煶鐗规晥
         public override void Init()
         {
             DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
@@ -37,72 +34,25 @@
             DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
             ParseConfig();
             //SysNotifyMgr.Instance.sysNotifyEvent += RefreshSysInfo;
-            // List<DungeonOpenTimeConfig> dungeonlist = DungeonOpenTimeConfig.GetValues();
-            // if (dungeonlist != null)
-            // {
-            //     //DrugToDungeonDict = new Dictionary<int, int>();
-            //     DungeonToDrugDict = new Dictionary<int, int[]>();
+          
 
-            //     for (int i = 0; i < dungeonlist.Count; i++)
+
+            // FuncConfigConfig ShareUseCntItem = FuncConfigConfig.Get("ShareUseCntItem");
+            // sharedUseCountItemDict = new Dictionary<int, List<int>>();
+            // JsonData shareUseJson = JsonMapper.ToObject(ShareUseCntItem.Numerical1);
+            // if (shareUseJson.IsArray)
+            // {
+            //     for (int i = 0; i < shareUseJson.Count; i++)
             //     {
-            //         int[] drugIdlist = dungeonlist[i].ElixirHint;
-            //         if (drugIdlist != null && drugIdlist.Length > 0)
+            //         var idListJson = shareUseJson[i];
+            //         var idlist = new List<int>();
+            //         sharedUseCountItemDict.Add(i, idlist);
+            //         foreach (var id in idListJson)
             //         {
-            //             DungeonToDrugDict.Add(dungeonlist[i].DataMapID, drugIdlist);
-            //             //for (int j = 0; j < drugIdlist.Length; j++)
-            //             //{
-            //             //    DrugToDungeonDict.Add(drugIdlist[j], dungeonlist[i].DataMapID);
-            //             //}
+            //             idlist.Add(int.Parse(id.ToString()));
             //         }
             //     }
             // }
-
-            // makeDruglist = new List<AttrFruitConfig>();
-            // List<AttrFruitConfig> fruitlist = AttrFruitConfig.GetValues();
-            // for (int i = 0; i < fruitlist.Count; i++)
-            // {
-            //     if (fruitlist[i].FuncID == 2)
-            //     {
-            //         makeDruglist.Add(fruitlist[i]);
-            //     }
-            // }
-            // StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;
-
-            SetDevourEquipPlace();
-
-            // decomposeAttrDict.Clear();
-            // List<EquipDeComposeConfig> decomlist = EquipDeComposeConfig.GetValues();
-            // for (int i = 0; i < decomlist.Count; i++)
-            // {
-            //     JsonData attrData = JsonMapper.ToObject(decomlist[i].Attr);
-            //     Dictionary<int, int> attrDict = new Dictionary<int, int>();
-            //     decomposeAttrDict.Add(decomlist[i].LV, attrDict);
-            //     foreach (var id in attrData.Keys)
-            //     {
-            //         attrDict.Add(int.Parse(id), int.Parse(attrData[id].ToString()));
-            //     }
-            // }
-
-            FuncConfigConfig equipDecompose = FuncConfigConfig.Get("EquipDevourCount");
-            minDecomposeNum = int.Parse(equipDecompose.Numerical1);
-            defaultUnSelectlist = ConfigParse.GetMultipleStr<int>(equipDecompose.Numerical2);
-
-            FuncConfigConfig ShareUseCntItem = FuncConfigConfig.Get("ShareUseCntItem");
-            sharedUseCountItemDict = new Dictionary<int, List<int>>();
-            JsonData shareUseJson = JsonMapper.ToObject(ShareUseCntItem.Numerical1);
-            if (shareUseJson.IsArray)
-            {
-                for (int i = 0; i < shareUseJson.Count; i++)
-                {
-                    var idListJson = shareUseJson[i];
-                    var idlist = new List<int>();
-                    sharedUseCountItemDict.Add(i, idlist);
-                    foreach (var id in idListJson)
-                    {
-                        idlist.Add(int.Parse(id.ToString()));
-                    }
-                }
-            }
 
             ParseItemCount();
 
@@ -140,27 +90,18 @@
 
         private void OnFuncStateChangeEvent(int id)
         {
-            if (id == (int)FuncOpenEnum.EquipDecompose)
-            {
-                EquipDecomRedCtrl();
-            }
+
         }
         public void OnBeforePlayerDataInitialize()
         {
             GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
             PlayerDatas.Instance.playerDataRefreshEvent -= UpdatePlayerLv;
             LocalSave.DeleteKey(RecordKnapsackTitle);
-            cacheMapId = 0;
             playerPackDict.Clear();
             itemDayUseCntDict.Clear();
             itemSumUseCntDict.Clear();
             itemGUIDDict.Clear();
             isPlayBetterEquipEffect = false;
-            colorType = EquipColorType.Orange;
-            decomposeLv = 1;
-            decomposeExp = 0;
-            decomposeProgress = 0;
-            isAutoDecompose = false;
         }
 
         public void OnAfterPlayerDataInitialize()
@@ -171,7 +112,6 @@
         public void OnPlayerLoginOk()
         {
             //ItemOperateUtility.Instance.RequestWarehouseData();
-            EquipDecomRedCtrl();
             RoleEquipLocalSave = StringUtility.Contact("RoleEquipLocalSave", PlayerDatas.Instance.baseData.PlayerID);
             StrengthAttrShift_RecordKey = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "StrengthAttrShift");
             if (LocalSave.GetIntArray(RoleEquipLocalSave) != null)
@@ -321,20 +261,10 @@
 
             UpdatePackRedpoint(type);
             //EquipDecomRedCtrl();
-            m_CheckEquipDecomRedCtrl = true;
             AutoUseItem(itemInfo.itemId, serverItem.ItemGUID);
         }
 
 
-        bool m_CheckEquipDecomRedCtrl = false;
-        void CheckEquipDecomRedCtrl()
-        {
-            if (m_CheckEquipDecomRedCtrl)
-            {
-                EquipDecomRedCtrl();
-                m_CheckEquipDecomRedCtrl = false;
-            }
-        }
 
 
         public void UpdateUnlockedGridCount(H0724_tagRolePackCanUseCount useCount)
@@ -381,7 +311,6 @@
                         {
                             itemCntAddEvent(type, itemModel.gridIndex, itemModel.itemId);
                         }
-                        ItemLogicUtility.Instance.RecommendItem(itemModel);
                         ItemLogicUtility.Instance.RefreshPickItem(type, itemModel.itemId.ToString());
                     }
                     else
@@ -397,7 +326,6 @@
                         refreshItemCountEvent(type, itemModel.gridIndex, itemModel.itemId);
                     }
 
-                    UpdateLSRedpoint(type, itemModel.itemId);
                 }
             }
 
@@ -444,8 +372,6 @@
             }
 
             UpdatePackRedpoint(type);
-            m_CheckEquipDecomRedCtrl = true;
-            //EquipDecomRedCtrl();
 
             if (GetItemByGuid(guid) == null)
             {
@@ -468,16 +394,6 @@
                 return;
             }
 
-            MakeUseItemSuccess(success.ItemIndex, (int)success.ItemID);
-            switch (success.ItemID)
-            {
-                // case 221:
-                //     if (WindowCenter.Instance.IsOpen<KnapSackWin>())
-                //     {
-                //         WindowCenter.Instance.Close<KnapSackWin>();
-                //     }
-                //     break;
-            }
 
             if (useItemSuccessEvent != null)
             {
@@ -493,28 +409,6 @@
             // }
         }
 
-        private void MakeUseItemSuccess(int index, int id)
-        {
-            ItemConfig itemConfig = ItemConfig.Get(id);
-            if (itemConfig.CDType != 0)
-            {
-                var items = GetItems(PackType.Item, new SinglePack.FilterParams()
-                {
-                    itemTypes = new List<int>() { (int)ItemType.Buff }
-                });
-
-                for (int i = 0; i < items.Count; i++)
-                {
-                    if (ItemLogicUtility.Instance.drugIDs.Contains(items[i].itemId))
-                    {
-                        itemConfig = ItemConfig.Get(items[i].itemId);
-                        float configCdTime = (float)Math.Round((double)itemConfig.CDTime / 1000, 1);
-                        KnapsackTimeCDMgr.Instance.Register(items[i].guid, items[i].itemId, configCdTime);
-                    }
-                }
-
-            }
-        }
 
         void AddItemGUIDDict(ItemModel itemModel, bool showNewItem)
         {
@@ -586,67 +480,16 @@
         #endregion
 
         #region 鐜╁瑁呭鐗规畩閫昏緫
-        public Dictionary<int, Dictionary<int, int>> spiritWeaponPathIds { get; private set; }
-        public Dictionary<int, int> wingsGetPathIdDict { get; private set; }
-        public Dictionary<int, List<int>> dungeonUseDict { get; private set; }
         void ParseConfig()
         {
-            FuncConfigConfig funcConfig = FuncConfigConfig.Get("WingYuPeiHQTJ");
-            spiritWeaponPathIds = new Dictionary<int, Dictionary<int, int>>();
-            var splits = funcConfig.Numerical3.Split('|');
-            for (int i = 0; i < splits.Length; i++)
-            {
-                var tempString = splits[i];
-                var matches = Regex.Matches(tempString.Trim(), "\\d+");
-                var equipPlace = int.Parse(matches[0].Value);
-                var job = int.Parse(matches[1].Value);
-                var itemId = int.Parse(matches[2].Value);
+           
 
-                if (!spiritWeaponPathIds.ContainsKey(equipPlace))
-                {
-                    spiritWeaponPathIds[equipPlace] = new Dictionary<int, int>();
-                }
-
-                spiritWeaponPathIds[equipPlace][job] = itemId;
-            }
-
-            FuncConfigConfig copyItemBulletWindow = FuncConfigConfig.Get("CopyItemBulletWindow");
-            JsonData copyWinData = JsonMapper.ToObject(copyItemBulletWindow.Numerical1);
-            dungeonUseDict = new Dictionary<int, List<int>>();
-            foreach (var dungeonId in copyWinData.Keys)
-            {
-                List<int> idlist = new List<int>();
-                dungeonUseDict.Add(int.Parse(dungeonId), idlist);
-                if (copyWinData[dungeonId].IsArray)
-                {
-                    JsonData useData = copyWinData[dungeonId];
-                    for (int i = 0; i < useData.Count; i++)
-                    {
-                        idlist.Add(int.Parse(useData[i].ToString()));
-                    }
-                }
-            }
-
-            lsItemCnt = int.Parse(FuncConfigConfig.Get("LingshiShowCount").Numerical1);
             var config = FuncConfigConfig.Get("CommonShowAwards");
             commonShowAwardEvents = JsonMapper.ToObject<List<string>>(config.Numerical1);
 
         }
 
-        public int GetRoleEquipPathId(int equipPlace)
-        {
-            int playerJob = PlayerDatas.Instance.baseData.Job;
-            switch ((RoleEquipType)equipPlace)
-            {
-                case RoleEquipType.Guard:
-                case RoleEquipType.PeerlessWeapon1:
-                case RoleEquipType.PeerlessWeapon2:
-                case RoleEquipType.Wing:
-                    return spiritWeaponPathIds[equipPlace][playerJob];
-                default:
-                    return 0;
-            }
-        }
+
 
         private void UpdateSecond()
         {
@@ -654,7 +497,6 @@
             {
                 isUpdatePlayerLv = false;
             }
-            CheckEquipDecomRedCtrl();
         }
 
         private void UpdatePlayerLv(PlayerDataType type)
@@ -947,27 +789,6 @@
         const int LS_REDKEY = 102011015;
         Redpoint redpointLS = new Redpoint(MainRedDot.RedPoint_BagFuncKey, LS_REDKEY);
 
-        private void UpdateLSRedpoint(PackType type, int itemID)
-        {
-            var singlePack = GetSinglePack(type);
-            if (singlePack == null)
-            {
-                return;
-            }
-            if (type != PackType.Item) return;
-            if (itemID != lsItemID) return;
-
-
-            if (GetItemCountByID(PackType.Item, lsItemID) < lsItemCnt)
-            {
-                redpointLS.state = RedPointState.None;
-            }
-            else
-            {
-                redpointLS.state = RedPointState.Simple;
-            }
-
-        }
 
         private void UpdatePackRedpoint(PackType type)
         {
@@ -989,14 +810,7 @@
                     {
                         redpointItemPack.state = RedPointState.None;
                     }
-                    if (GetItemCountByID(PackType.Item, lsItemID) < lsItemCnt)
-                    {
-                        redpointLS.state = RedPointState.None;
-                    }
-                    else
-                    {
-                        redpointLS.state = RedPointState.Simple;
-                    }
+
                     break;
                 case PackType.Warehouse:
                     if (singlePack.GetEmptyGridCount() <= 0)
@@ -1011,34 +825,7 @@
             }
         }
 
-        const int PLAYERSUMSTAR_REDKEY = 102011002;
-        Redpoint redpointSTAR = new Redpoint(MainRedDot.RedPoint_BagFuncKey, PLAYERSUMSTAR_REDKEY);
-
-        public const int EquipDecompose_RedKey = 10205;
-        public Redpoint redpointEquipDecom = new Redpoint(MainRedDot.RedPoint_MainPackKey, EquipDecompose_RedKey);
-        public void EquipDecomRedCtrl()
-        {
-            if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.EquipDecompose))
-            {
-                return;
-            }
-
-            if (PlayerDatas.Instance.baseData.LV < devourRedpointLevel)
-            {
-                redpointEquipDecom.state = RedPointState.None;
-                return;
-            }
-
-            var canDevourItems = GetCanDevourModellist();
-            if (canDevourItems != null && canDevourItems.Count >= minDevourEquipNum)
-            {
-                redpointEquipDecom.state = RedPointState.Simple;
-            }
-            else
-            {
-                redpointEquipDecom.state = RedPointState.None;
-            }
-        }
+        
         #endregion
 
         #region 鏌ョ湅鏌愪釜浣嶇疆鐨勭墿鍝�
@@ -1090,33 +877,7 @@
         private int cacheMapId = 0;
         public event Action<PackType, string> itemUseAct;
         private Dictionary<int, int> itemUseTypeDict = new Dictionary<int, int>(); //key SkillTypeID,value 浣跨敤鐗╁搧鐨処D
-        private void OnStageLoadFinish()
-        {
-            // itemUseTypeDict.Clear();
-            // if (PlayerDatas.Instance.baseData.MapID == cacheMapId)
-            // {
-            //     return;
-            // }
-
-            // cacheMapId = PlayerDatas.Instance.baseData.MapID;
-            // UpdateDungeonDanUse();
-            // UpdateDungeonUse();
-            // SinglePack singlePack = GetSinglePack(PackType.Item);
-            // foreach (int itemId in itemUseTypeDict.Values)
-            // {
-            //     var modellist = singlePack.GetItemsById(itemId);
-            //     if (modellist.Count > 0)
-            //     {
-            //         ItemModel itemModel = modellist[0];
-            //         bool isExist = StatusMgr.Instance.IsExist(PlayerDatas.Instance.hero.ServerInstID, itemModel.config.AddSkill1);
-            //         Debug.Log("Buff鏄惁瀛樺湪" + isExist);
-            //         if (itemUseAct != null && !isExist)
-            //         {
-            //             itemUseAct(PackType.Item, itemModel.guid);
-            //         }
-            //     }
-            // }
-        }
+        
 
         private void AddItemUseTypeDict(int id)
         {
@@ -1139,31 +900,8 @@
             }
         }
 
-        private void UpdateDungeonDanUse()
-        {
-            int mapId = PlayerDatas.Instance.baseData.MapID;
-            int[] useDrugs = GetDrugIDListByDungeonID(mapId);
-            if (useDrugs == null) return;
 
-            for (int i = 0; i < useDrugs.Length; i++)
-            {
-                int id = useDrugs[i];
-                AddItemUseTypeDict(id);
-            }
-        }
 
-        private void UpdateDungeonUse()
-        {
-            int mapId = PlayerDatas.Instance.baseData.MapID;
-            if (!dungeonUseDict.ContainsKey(mapId)) return;
-
-            List<int> useIdlist = dungeonUseDict[mapId];
-            for (int i = 0; i < useIdlist.Count; i++)
-            {
-                int id = useIdlist[i];
-                AddItemUseTypeDict(id);
-            }
-        }
 
         public SkillConfig GetSkillConfig(int itemId)
         {
@@ -1172,19 +910,8 @@
             return skillConfig;
         }
 
-        public int GetDungeonIDByDrugID(int drugID)
-        {
-            int dungeonID = 0;
-            //DrugToDungeonDict.TryGetValue(drugID, out dungeonID);
-            return dungeonID;
-        }
 
-        public int[] GetDrugIDListByDungeonID(int dungeonID)
-        {
-            int[] drugIDlist = null;
-            DungeonToDrugDict.TryGetValue(dungeonID, out drugIDlist);
-            return drugIDlist;
-        }
+
         #endregion
 
         #region 鍒ゆ柇鐗╁搧鏄惁杈惧埌浣跨敤涓婇檺
@@ -1228,442 +955,9 @@
         // }
         #endregion
 
-        #region 鐗╁搧鍚炲櫖閫昏緫澶勭悊
-        public EquipColorType colorType { get; private set; }
-        public event Action<EquipColorType> RefreshColorSelectAct;
-        public event Action RefreshEquipDecomNumAct;
-        public int[] defaultUnSelectlist { get; private set; }
+        
 
-        public int GetBetterEquipCount(List<ItemModel> itemModels)
-        {
-            if (itemModels.IsNullOrEmpty())
-            {
-                return 0;
-            }
-
-            var count = 0;
-            foreach (var item in itemModels)
-            {
-                if (ItemLogicUtility.Instance.IsFightUp(item.itemId, item.score) == 1)
-                {
-                    count += item.count;
-                }
-            }
-            return count;
-        }
-
-        public void SetColorSelect(EquipColorType type)
-        {
-            colorType = type;
-
-            if (RefreshColorSelectAct != null)
-            {
-                RefreshColorSelectAct(type);
-            }
-            SendEquipDevourRecordQuest();
-            EquipDecomRedCtrl();
-        }
-
-        public List<int> devourPlacelist { get; private set; }
-        public int devourRedpointLevel { get; private set; }
-        public int minDevourEquipNum { get; private set; }
-        public void SetDevourEquipPlace()
-        {
-            devourPlacelist = new List<int>();
-            FuncConfigConfig funcConfig = FuncConfigConfig.Get("PetAbsorbType");
-            int[] placeArray = ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1);
-            for (int i = 0; i < placeArray.Length; i++)
-            {
-                devourPlacelist.Add(placeArray[i]);
-            }
-            devourRedpointLevel = int.Parse(funcConfig.Numerical2);
-            minDevourEquipNum = int.Parse(funcConfig.Numerical3);
-        }
-
-        List<ItemModel> devourModellist = new List<ItemModel>();
-        List<ItemModel> orderDevourModellist = new List<ItemModel>();
-        public List<ItemModel> GetDevourModellist()
-        {
-            SinglePack singlePack = GetSinglePack(PackType.Item);
-            if (singlePack == null) return null;
-
-            devourModellist.Clear();
-            orderDevourModellist.Clear();
-            foreach (var model in singlePack.GetAllItems().Values)
-            {
-                if (model.config.Type == 29)
-                {
-                    devourModellist.Add(model);
-                }
-                else
-                {
-                    if (devourPlacelist.Contains(model.config.EquipPlace))
-                    {
-                        if (GeneralDefine.equipDecomposeScreen.Contains(model.config.ItemColor))
-                        {
-                            devourModellist.Add(model);
-                        }
-                    }
-                }
-
-            }
-            orderDevourModellist.AddRange(devourModellist);
-            orderDevourModellist.Sort(CompareByColor);
-            return orderDevourModellist;
-        }
-
-        public int CompareByColor(ItemModel start, ItemModel next)
-        {
-            bool typeX = start.config.Type == 29 ? true : false;
-            bool typeY = next.config.Type == 29 ? true : false;
-
-            if (typeX.CompareTo(typeY) != 0) return -typeX.CompareTo(typeY);
-
-            int colorX = start.config.ItemColor;
-            int colorY = next.config.ItemColor;
-            if (colorX.CompareTo(colorY) != 0) return colorX.CompareTo(colorY);
-
-            int startIndex = devourModellist.IndexOf(start);
-            int nextIndex = devourModellist.IndexOf(next);
-            if (startIndex.CompareTo(nextIndex) != 0) return startIndex.CompareTo(nextIndex);
-
-            return 0;
-        }
-
-        public List<ItemModel> GetCanDevourModellist()
-        {
-            List<ItemModel> canDevourModellist = new List<ItemModel>();
-            SinglePack singlePack = GetSinglePack(PackType.Item);
-            if (singlePack == null || colorType == EquipColorType.None)
-            {
-                if (RefreshEquipDecomNumAct != null)
-                {
-                    RefreshEquipDecomNumAct();
-                }
-                return null;
-            }
-
-            foreach (var model in singlePack.GetAllItems().Values)
-            {
-                if (model.config.Type == 29)
-                {
-                    if (!defaultUnSelectlist.Contains(model.itemId))
-                    {
-                        canDevourModellist.Add(model);
-                    }
-                }
-                else
-                {
-                    if (IsCanDevour(model))
-                    {
-                        canDevourModellist.Add(model);
-                    }
-                }
-            }
-
-            if (RefreshEquipDecomNumAct != null)
-            {
-                RefreshEquipDecomNumAct();
-            }
-
-            return canDevourModellist;
-        }
-
-        public bool IsCanDevour(ItemModel model)
-        {
-            // if (devourPlacelist.Contains(model.config.EquipPlace))
-            // {
-            //     if (GeneralDefine.equipDecomposeScreen.Contains(model.config.ItemColor))
-            //     {
-            //         var eatEquipConfig = PetEatEquipConfig.GetEquipColorAndEquipClass(model.config.ItemColor, model.config.LV);
-            //         if (eatEquipConfig == null) return false;
-
-            //         if (EquipControlConfig.Get(model.config.LV, 1).realm > PlayerDatas.Instance.baseData.realmLevel)
-            //         {
-            //             //bug锛氱帺瀹舵寕鏈轰細鎵撻珮澧冪晫鎬紝瀵艰嚧瑁呭鏃犳硶鍒嗚В鑳屽寘澶弧鐨勬儏鍐�
-            //             //澧冪晫澶т簬鐜╁澧冪晫锛屼笖鍦ㄦ寚瀹氶鑹插搧璐ㄤ笅鐨勭洿鎺ュ垎瑙g传鑹蹭互涓嬭澶�
-            //             if (model.config.ItemColor <= (int)colorType && model.config.ItemColor <= 3)
-            //             {
-            //                 return true;
-            //             }
-            //         }
-
-            //         //1. 闈炴媿鍗栬澶�
-            //         //2. 瑁呭鍝佽川灏忎簬绛変簬褰撳墠閫夋嫨鐨勫搧璐�
-            //         //3. 闈炴湰鑱屼笟鐨勫瑁呰澶�
-            //         //4. 闈炴垬鏂楀姏鎻愬崌鐨勮澶�
-            //         if (!model.isAuction && model.config.ItemColor <= (int)colorType
-            //             && !(ItemLogicUtility.Instance.IsJobCompatibleItem(model.itemId)
-            //                     && model.config.ItemColor == 4 && model.config.SuiteiD != 0)
-            //             && ItemLogicUtility.Instance.IsFightUp(model.itemId, model.score) != 1)
-            //         {
-            //             return true;
-            //         }
-            //     }
-            // }
-
-            return false;
-        }
-
-        public bool IsMaxDecomLv(int decomLv, out int realLv)
-        {
-            realLv = decomLv;
-            // var decomlist = EquipDeComposeConfig.GetValues();
-            // if (decomLv > decomlist[decomlist.Count - 1].LV)
-            // {
-            //     realLv = decomlist[decomlist.Count - 1].LV;
-            //     return true;
-            // }
-
-            return false;
-        }
-
-        public List<ItemModel> selectDevourlist = new List<ItemModel>();
-        public void GetSelectDevourList()
-        {
-            selectDevourlist.Clear();
-            List<ItemModel> itemModels = GetCanDevourModellist();
-            if (itemModels != null)
-            {
-                selectDevourlist.AddRange(itemModels);
-            }
-        }
-
-        public void RefreshGetNewItem(ItemModel model)
-        {
-            if (model == null) return;
-
-            if (CheckIsReachDevourCondi(model))
-            {
-                selectDevourlist.Add(model);
-                if (RefreshEquipDecomNumAct != null)
-                {
-                    RefreshEquipDecomNumAct();
-                }
-            }
-        }
-
-        public void AddSelectDevourModellist(ItemModel model)
-        {
-            selectDevourlist.Add(model);
-            if (RefreshEquipDecomNumAct != null)
-            {
-                RefreshEquipDecomNumAct();
-            }
-        }
-
-        public bool CheckIsReachDevourCondi(ItemModel model)
-        {
-            if (model.config.Type == 29)
-            {
-                if (!defaultUnSelectlist.Contains(model.itemId))
-                {
-                    return true;
-                }
-                return false;
-            }
-            else
-            {
-                if (IsCanDevour(model))
-                {
-                    return true;
-                }
-
-            }
-            return false;
-        }
-
-        public void RemoveSelectDevourModellist(ItemModel model)
-        {
-            if (selectDevourlist.Contains(model))
-            {
-                selectDevourlist.Remove(model);
-            }
-            if (RefreshEquipDecomNumAct != null)
-            {
-                RefreshEquipDecomNumAct();
-            }
-        }
-
-        public Dictionary<int, int> GetDecomAttrDictByLv(int decomLv)
-        {
-            if (decomposeAttrDict.ContainsKey(decomLv))
-            {
-                return decomposeAttrDict[decomLv];
-            }
-
-            return null;
-        }
-
-        public bool IsReachMinDecomposeNum()
-        {
-            List<ItemModel> itemModels = GetCanDevourModellist();
-            if (itemModels != null && itemModels.Count >= minDecomposeNum)
-            {
-                return true;
-            }
-            return false;
-        }
-
-        public void SendEquipdevourQuest(bool auto)
-        {
-            List<ItemModel> items = null;
-            if (auto)
-            {
-                items = GetCanDevourModellist();
-            }
-            else
-            {
-                items = selectDevourlist;
-            }
-
-            // if (items == null || items.Count < minDecomposeNum || !ItemLogicUtility.Instance.isPackResetOk || SettingEffectMgr.Instance.isStartDecompose) return;
-
-            // SettingEffectMgr.Instance.isStartDecompose = true;
-            // isAutoDecompose = auto;
-            // recordAutoDecomNum = Math.Min(items.Count, 100);    //鍗曟鏈�澶�100浠跺垎瑙�
-            // var package = new CA32C_tagCMEquipDecompose();
-            // var indexLists = new ushort[recordAutoDecomNum];
-            // var idlist = new uint[recordAutoDecomNum];
-            // for (int i = 0; i < recordAutoDecomNum; i++)
-            // {
-            //     indexLists[i] = (ushort)items[i].gridIndex;
-            //     idlist[i] = (uint)items[i].itemId;
-            //     if ((items[i].config.EquipPlace == 0 && items[i].config.Type != 29))
-            //     {
-            //         return;
-            //     }
-            // }
-            // package.Count = (byte)indexLists.Length;
-            // package.IndexList = indexLists;
-            // package.ItemIDList = idlist;
-            // package.IsAuto = (byte)(auto ? 1 : 0);
-            // GameNetSystem.Instance.SendInfo(package);
-        }
-
-        public void SendEquipDevourRecordQuest()
-        {
-            var record = StringUtility.Contact((int)colorType + 1, 1, 1);
-            var decomSet = new CA32D_tagCMDecomposeSeting();
-            decomSet.Seting = uint.Parse(record);
-            GameNetSystem.Instance.SendInfo(decomSet);
-        }
-
-        public int decomposeLv { get; private set; }
-        public int decomposeExp { get; private set; }
-        public int decomposeProgress { get; private set; }
-        public int addDecomposeExp { get; private set; }
-        public int minDecomposeNum { get; private set; }
-        public bool isAutoDecompose { get; set; }
-        public int recordAutoDecomNum { get; private set; }
-        public DecomposeGetMatInfo[] getItems { get; private set; }
-
-        public event Action RefreshDecomAttrAct;
-        // public void GetServerDecomposeSet(HA31C_tagMCEquipDecomposeInfo info)
-        // {
-        //     addDecomposeExp = 0;
-        //     int realLv = info.LV + 1;
-        //     bool isMax = IsMaxDecomLv(realLv, out realLv);
-        //     if (realLv == decomposeLv)
-        //     {
-        //         addDecomposeExp = (int)info.Exp - decomposeExp;
-        //     }
-        //     else
-        //     {
-        //         for (int i = decomposeLv; i <= realLv; i++)
-        //         {
-        //             var deComposeConfig = EquipDeComposeConfig.Get(i);
-        //             if (i == decomposeLv)
-        //             {
-        //                 addDecomposeExp = deComposeConfig.UpNeedExp - decomposeExp;
-        //             }
-        //             else if (i == realLv)
-        //             {
-        //                 addDecomposeExp += (int)info.Exp;
-        //             }
-        //             else
-        //             {
-        //                 addDecomposeExp += deComposeConfig.UpNeedExp;
-        //             }
-        //         }
-        //     }
-
-        //     decomposeLv = realLv;
-        //     decomposeExp = (int)info.Exp;
-        //     decomposeProgress = info.DecomposeCnt;
-        //     getItems = JsonMapper.ToObject<DecomposeGetMatInfo[]>(info.GetItemData);
-
-        //     if (info.Seting != 0)
-        //     {
-        //         string decomSetStr = info.Seting.ToString();
-        //         string colorStr = decomSetStr.Substring(0, 1);
-        //         colorType = (EquipColorType)(int.Parse(colorStr) - 1);
-        //         string lvStr = decomSetStr.Substring(1, decomSetStr.Length - 2);
-        //     }
-        //     if (RefreshDecomAttrAct != null)
-        //     {
-        //         RefreshDecomAttrAct();
-        //     }
-        // }
-        /// <summary>
-        /// 璁剧疆鑾峰緱鐐间腹鏉愭枡鐨勫睍绀烘暟鎹�
-        /// </summary>
-        /// <param name="getMatInfos"></param>
-        /// <returns></returns>
-        private List<DecomposeGetMatInfo> getMatInfos = new List<DecomposeGetMatInfo>();
-        public List<DecomposeGetMatInfo> SetShowMatInfo()
-        {
-            getMatInfos.Clear();
-            int sumMatCnt = 0;
-            if (getItems != null)
-            {
-                for (int i = 0; i < getItems.Length; i++)
-                {
-                    if (getItems[i].Count > 0)
-                    {
-                        sumMatCnt += getItems[i].Count;
-                    }
-                    else
-                    {
-                        sumMatCnt += 1;
-                    }
-                }
-            }
-
-            if (sumMatCnt > 5)
-            {
-                for (int i = 0; i < getItems.Length; i++)
-                {
-                    getMatInfos.Add(getItems[i]);
-                }
-            }
-            else
-            {
-                if (getItems != null)
-                {
-                    for (int i = 0; i < getItems.Length; i++)
-                    {
-                        //if (getItems[i].Count > 0)
-                        //{
-                        //    for (int j = 0; j < getItems[i].Count; j++)
-                        //    {
-                        //        DecomposeGetMatInfo matInfo = new DecomposeGetMatInfo();
-                        //        matInfo.ItemID = getItems[i].ItemID;
-                        //        matInfo.Count = 1;
-                        //        matInfo.IsSuite = getItems[i].IsSuite;
-                        //        matInfo.UserData = getItems[i].UserData;
-                        //        getMatInfos.Add(matInfo);
-                        //    }
-                        //}
-                        //else
-                        {
-                            getMatInfos.Add(getItems[i]);
-                        }
-                    }
-                }
-            }
-            return getMatInfos;
-        }
+        
 
         public enum EquipColorType
         {
@@ -1673,177 +967,11 @@
             Purple = 3,
             Orange = 4,
             Red = 5,
-            //鍚庣画IL寮�鍙戞坊鍔犻璁�
-            default1,
-            default2,
-            default3,
-            default4,
-            All = 10,
+
         }
 
-        public class DecomposeGetMatInfo
-        {
-            public int ItemID;
-            public int Count;
-            public int IsSuite;
-            public string UserData;
-        }
-        #endregion
 
-        #region 涓硅嵂閫昏緫澶勭悊
-
-        // private int CompareMakeDrug(AttrFruitConfig start, AttrFruitConfig end)
-        // {
-        //     ItemConfig configS = ItemConfig.Get(start.ID);
-        //     ItemConfig configE = ItemConfig.Get(end.ID);
-        //     if (configS.RealmLimit.CompareTo(configE.RealmLimit) != 0)
-        //     {
-        //         return configS.RealmLimit.CompareTo(configE.RealmLimit);
-        //     }
-        //     if (configS.LV.CompareTo(configE.LV) != 0)
-        //     {
-        //         return configS.LV.CompareTo(configE.LV);
-        //     }
-
-        //     int x = makeDruglist.IndexOf(start);
-        //     int y = makeDruglist.IndexOf(end);
-        //     if (x.CompareTo(y) != 0) x.CompareTo(y);
-
-        //     return 0;
-        // }
-
-        // List<AttrFruitConfig> drugOrderlist = new List<AttrFruitConfig>();
-        // List<AttrFruitConfig> haveDruglist = new List<AttrFruitConfig>();
-        // public List<AttrFruitConfig> GetDrugOrderByCnt()
-        // {
-        //     drugOrderlist.Clear();
-        //     haveDruglist.Clear();
-        //     drugOrderlist.AddRange(makeDruglist);
-        //     drugOrderlist.Sort(CompareByIsHave);
-        //     for (int i = 0; i < drugOrderlist.Count; i++)
-        //     {
-        //         if (IsHaveDrugUse(drugOrderlist[i]))
-        //         {
-        //             haveDruglist.Add(drugOrderlist[i]);
-        //         }
-        //     }
-        //     haveDruglist.Sort(CompareMakeDrug);
-        //     for (int i = 0; i < haveDruglist.Count; i++)
-        //     {
-        //         drugOrderlist[i] = haveDruglist[i];
-        //     }
-
-        //     return drugOrderlist;
-        // }
-
-        public bool CheckIsDrugById(int itemId)
-        {
-            // for (int i = 0; i < makeDruglist.Count; i++)
-            // {
-            //     if (makeDruglist[i].ID == itemId)
-            //     {
-            //         return true;
-            //     }
-            // }
-            return false;
-        }
-
-        // public int CompareByIsHave(AttrFruitConfig start, AttrFruitConfig end)
-        // {
-        //     bool isHaveStart = IsHaveDrugUse(start);
-        //     bool isHaveEnd = IsHaveDrugUse(end);
-        //     if (isHaveStart.CompareTo(isHaveEnd) != 0) return -isHaveStart.CompareTo(isHaveEnd);
-
-        //     //isHaveStart = IsHaveDrugRecycle(start);
-        //     //isHaveEnd = IsHaveDrugRecycle(end);
-        //     //if (isHaveStart.CompareTo(isHaveEnd) != 0) return -isHaveStart.CompareTo(isHaveEnd);
-
-        //     isHaveStart = GetItemCountByID(PackType.Item, start.ID) > 0 ? true : false;
-        //     isHaveEnd = GetItemCountByID(PackType.Item, end.ID) > 0 ? true : false;
-        //     if (isHaveStart.CompareTo(isHaveEnd) != 0) return isHaveStart.CompareTo(isHaveEnd);
-
-        //     isHaveStart = IsReachMaxUseDrug(start);
-        //     isHaveEnd = IsReachMaxUseDrug(end);
-        //     if (isHaveStart.CompareTo(isHaveEnd) != 0) return isHaveStart.CompareTo(isHaveEnd);
-
-        //     int x = makeDruglist.IndexOf(start);
-        //     int y = makeDruglist.IndexOf(end);
-        //     if (x.CompareTo(y) != 0) return x.CompareTo(y);
-        //     return 0;
-        // }
-
-        // public bool IsHaveDrugUse(AttrFruitConfig fruitConfig)
-        // {
-        //     if (!IsReachMaxUseDrug(fruitConfig))
-        //     {
-        //         return GetItemCountByID(PackType.Item, fruitConfig.ID) > 0 ? true : false;
-        //     }
-
-        //     return false;
-        // }
-
-        // public bool IsHaveDrugRecycle(AttrFruitConfig fruitConfig)
-        // {
-        //     if (IsReachMaxUseDrug(fruitConfig))
-        //     {
-        //         return GetItemCountByID(PackType.Item, fruitConfig.ID) > 0 ? true : false;
-        //     }
-        //     return false;
-        // }
-
-        // public bool IsReachMaxUseDrug(AttrFruitConfig fruitConfig)
-        // {
-        //     if (fruitConfig == null)
-        //     {
-        //         return false;
-        //     }
-
-        //     if (fruitConfig.FuncID == 2)
-        //     {
-        //         AlchemyDrugUseLimit drugUseLimit;
-        //         if (alchemyModel.TryGetAlchemyUseLimit(fruitConfig.ID, out drugUseLimit))
-        //         {
-        //             return drugUseLimit.IsReachLimit();
-        //         }
-        //     }
-
-        //     int useNum = GetItemTotalUsedTimes(fruitConfig.ID);
-        //     if (useNum >= fruitConfig.basicUseLimit)
-        //     {
-        //         return true;
-        //     }
-        //     return false;
-        // }
-        #endregion
-
-        //鑾峰彇鑳屽寘涓殑涓�浠跺彲鎷嶅崠鐗╁搧 浼樺厛鍏朵粬鑱屼笟
-        public string GetAuctionEquip()
-        {
-            var itemPackage = GetSinglePack(PackType.Item);
-            var allItems = itemPackage.GetAllItems();
-
-            var guid = string.Empty;
-            List<string> guidList = new List<string>();
-            foreach (var item in allItems.Values)
-            {
-                var isAuction = item.isAuction;
-                if (isAuction && ItemLogicUtility.Instance.IsRealmEquip(item.itemId))
-                {
-                    if (!ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId))
-                    {
-                        return item.guid;
-                    }
-                    else
-                    {
-                        if (guid != string.Empty)
-                            continue;
-                        guid = item.guid;
-                    }
-                }
-            }
-            return guid;
-        }
-
+        
 
         public void ReceiveAwardNotify(HA801_tagMCGiveAwardInfo netPack)
         {
diff --git a/Main/System/KnapSack/VirtualPackManager.cs b/Main/System/KnapSack/VirtualPackManager.cs
index 9072080..a88250e 100644
--- a/Main/System/KnapSack/VirtualPackManager.cs
+++ b/Main/System/KnapSack/VirtualPackManager.cs
@@ -60,8 +60,7 @@
 
     void ParseConfig()
     {
-        var funcConfig = FuncConfigConfig.Get("RunePackageNum");
-        virtualPackCapacityDict.Add(PackType.RunePack, int.Parse(funcConfig.Numerical1));
+        // virtualPackCapacityDict.Add(PackType.RunePack, int.Parse(funcConfig.Numerical1));
     }
 
     public bool IsVirtualPack(PackType packType)
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
new file mode 100644
index 0000000..c5f41f1
--- /dev/null
+++ b/Main/System/Main/HomeWin.cs
@@ -0,0 +1,62 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 娓告垙涓荤晫闈�
+/// </summary>
+public class HomeWin : UIBase
+{
+    /// <summary>
+    /// 鍒濆鍖栫粍浠�
+    /// </summary>
+    protected override void InitComponent()
+    {
+    }
+    
+    
+
+    
+    public override void Refresh()
+    {
+        UpdatePlayerInfo();
+        UpdateCurrency();
+    }
+
+    protected override void OnPreOpen()
+    {
+        Refresh();
+    }
+
+    // protected override void OnPreClose()
+    // {
+    // }
+    
+    /// <summary>
+    /// 鏇存柊鐜╁淇℃伅
+    /// </summary>
+    private void UpdatePlayerInfo()
+    {
+        // 浠庣帺瀹舵暟鎹腑鑾峰彇淇℃伅骞舵洿鏂癠I
+        // 渚嬪锛�
+        // playerNameText.text = PlayerData.Instance.Name;
+        // playerLevelText.text = "Lv." + PlayerData.Instance.Level;
+        // powerText.text = PlayerData.Instance.Power.ToString();
+        // expSlider.value = PlayerData.Instance.ExpRatio;
+    }
+    
+    /// <summary>
+    /// 鏇存柊璐у竵淇℃伅
+    /// </summary>
+    private void UpdateCurrency()
+    {
+        // 浠庣帺瀹舵暟鎹腑鑾峰彇璐у竵淇℃伅骞舵洿鏂癠I
+        // 渚嬪锛�
+        // goldText.text = PlayerData.Instance.Gold.ToString();
+        // diamondText.text = PlayerData.Instance.Diamond.ToString();
+        // energyText.text = PlayerData.Instance.Energy + "/" + PlayerData.Instance.MaxEnergy;
+    }
+    
+    
+}
\ No newline at end of file
diff --git a/Main/System/Main/HomeWin.cs.meta b/Main/System/Main/HomeWin.cs.meta
new file mode 100644
index 0000000..43b93c9
--- /dev/null
+++ b/Main/System/Main/HomeWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 428e25b7deff7474e8c611d41bbbaf7b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Main/System/Main/MainWin.cs b/Main/System/Main/MainWin.cs
index dc8fd7f..0db0f0f 100644
--- a/Main/System/Main/MainWin.cs
+++ b/Main/System/Main/MainWin.cs
@@ -4,16 +4,13 @@
 using UnityEngine.UI;
 
 /// <summary>
-/// 娓告垙涓荤晫闈�
+/// 娓告垙涓荤晫闈㈠簳閮ㄥ姛鑳芥寜閽�
 /// </summary>
 public class MainWin : UIBase
 {
-    public GameObject windowBackground;
-
     // 搴曢儴鎸夐挳缁�
     public Button[] bottomTabButtons;
 
-    private GameObject[] bottomTabEffects;
     
     // 褰撳墠閫変腑鐨勫簳閮ㄦ爣绛剧储寮�
     private int currentTabIndex = 0;
@@ -48,55 +45,25 @@
 
     }
     
-    protected override void OnOpen()
+    public override void Refresh()
     {
-        base.OnOpen();
-        
+        UpdateCurrency();
+    }
+
+    protected override void OnPreOpen()
+    {
         // 榛樿閫変腑绗竴涓爣绛�
         SelectBottomTab(0);
 
         // 鍒锋柊UI
         Refresh();
     }
-    
-    public override void Refresh()
-    {
-        UpdatePlayerInfo();
-        UpdateCurrency();
-    }
 
-    protected override void OnPreOpen()
-    {
-        base.OnPreOpen();
-        bottomTabEffects = new GameObject[bottomTabButtons.Length];
-        for (int i = 0; i < bottomTabButtons.Length; i++)
-        {
-            bottomTabEffects[i] = PlayUIEffect(1004, bottomTabButtons[i].transform, false);
-        }
-    }
-
-    protected override void OnPreClose()
-    {
-        base.OnPreClose();
-        foreach (var effectGO in bottomTabEffects)
-        {
-            DestroyImmediate(effectGO);
-        }
-        bottomTabEffects = null;
-    }
+    // protected override void OnPreClose()
+    // {
+    // }
     
-    /// <summary>
-    /// 鏇存柊鐜╁淇℃伅
-    /// </summary>
-    private void UpdatePlayerInfo()
-    {
-        // 浠庣帺瀹舵暟鎹腑鑾峰彇淇℃伅骞舵洿鏂癠I
-        // 渚嬪锛�
-        // playerNameText.text = PlayerData.Instance.Name;
-        // playerLevelText.text = "Lv." + PlayerData.Instance.Level;
-        // powerText.text = PlayerData.Instance.Power.ToString();
-        // expSlider.value = PlayerData.Instance.ExpRatio;
-    }
+
     
     /// <summary>
     /// 鏇存柊璐у竵淇℃伅
@@ -115,6 +82,13 @@
     /// </summary>
     private void OnBottomTabButtonClicked(int index)
     {
+        if (index == 0)
+        { 
+            if (currentSubUI != null && currentSubUI.name == "HomeWin")
+            {
+                //鎵撳紑涓荤晫闈㈢殑鎯呭喌涓嬪啀鐐瑰嚮鎸夐挳锛屾墽琛屾敾鍑婚�昏緫
+            }
+        }
         SelectBottomTab(index);
     }
     
@@ -150,12 +124,8 @@
         // 閬嶅巻鎵�鏈夋寜閽紝璁剧疆閫変腑鐘舵��
         for (int i = 0; i < bottomTabButtons.Length; i++)
         {
-            // 杩欓噷鍙互鏍规嵁鏄惁閫変腑璁剧疆鎸夐挳鐨勮瑙夋晥鏋�
-            // 渚嬪锛氭敼鍙樺浘鐗囥�侀鑹茬瓑
-            // bottomTabButtons[i].GetComponent<Image>().color = (i == currentTabIndex) ? Color.blue : Color.white;
 
-            // 鎴栬�呮縺娲�/绂佺敤閫変腑鍥炬爣
-            bottomTabButtons[i].image.color = (i == currentTabIndex) ?  Color.white : Color.gray;
+            // bottomTabButtons[i].image.color = (i == currentTabIndex) ?  Color.white : Color.gray;
         }
     }
     
@@ -179,34 +149,29 @@
     {
 
         Debug.Log("鎵撳紑瀛愮晫闈� : " + index);
-        // 涓诲煄 闃靛 鍚岀洘 绂忓埄 鍐掗櫓
-        windowBackground.SetActive(index != 4);
+        // 涓诲煄 鍐呮斂 姝﹀皢 鎸戞垬 鍏細
         //鏍规嵁绱㈠紩鎵撳紑涓嶅悓鐨勭晫闈�
          switch (index)
         {
             case 0:
-                // 渚嬪锛氭墦寮�涓婚〉鐣岄潰
-                // currentSubUI = UIManager.Instance.OpenUI<HomeUI>();
+                // 鎵撳紑涓婚〉鐣岄潰
+                currentSubUI = UIManager.Instance.OpenWindow<HomeWin>();
                 Debug.Log("鎵撳紑涓诲煄鐣岄潰");
                 break;
             case 1:
-                // 渚嬪锛氭墦寮�瑙掕壊鐣岄潰
                 // currentSubUI = UIManager.Instance.OpenUI<CharacterUI>();
                 Debug.Log("鎵撳紑闃靛鐣岄潰");
                 break;
             case 2:
-                // 渚嬪锛氭墦寮�鑳屽寘鐣岄潰
                 // currentSubUI = UIManager.Instance.OpenUI<BagUI>();
                 Debug.Log("鎵撳紑鍚岀洘鐣岄潰");
                 break;
             case 3:
-                // 渚嬪锛氭墦寮�浠诲姟鐣岄潰
                 // currentSubUI = UIManager.Instance.OpenUI<QuestUI>();
                 Debug.Log("鎵撳紑绂忓埄鐣岄潰");
                 break;
             case 4:
-                // 渚嬪锛氭墦寮�璁剧疆鐣岄潰
-                currentSubUI = UIManager.Instance.OpenWindow<PlaceWin>();
+                //currentSubUI = UIManager.Instance.OpenWindow<PlaceWin>();
                 Debug.Log("鎵撳紑鍐掗櫓鐣岄潰");
                 break;
             default:
diff --git a/Main/System/MainInterfacePanel.meta b/Main/System/MainInterfacePanel.meta
deleted file mode 100644
index 6591dbf..0000000
--- a/Main/System/MainInterfacePanel.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 4cf9daf7c9fbaf94ea5af5b13a70c217
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 
diff --git a/Main/System/MainInterfacePanel/MainRedDot.cs b/Main/System/MainInterfacePanel/MainRedDot.cs
deleted file mode 100644
index 34d981b..0000000
--- a/Main/System/MainInterfacePanel/MainRedDot.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-锘�//--------------------------------------------------------
-//    [Author]:           绗簩涓栫晫
-//    [  Date ]:           Thursday, November 16, 2017
-//--------------------------------------------------------
-
-
-
-    public class MainRedDot : Singleton<MainRedDot>
-    {
-        public const int RedPoint_key = 1;
-        public const int FAIRY_REDPOINT_KEY1 = 107;
-        public const int RedPoint_UpFuncBase = 2;
-
-        private Redpoint rightTopRedpint = new Redpoint(RedPoint_UpFuncBase);
-        private Redpoint redPointStrePrentOne = new Redpoint(RedPoint_key);
-
-
-        //public Redpoint jadeDynastyRedpoint = new Redpoint(1, 117);
-
-        #region 閭欢绾㈢偣
-        public const int RedPoint_MainMailKey = 24;
-        public const int RedPoint_MailFuncKey = 2401;
-        public Redpoint redpointMainMail = new Redpoint(RedPoint_MainMailKey);
-        public Redpoint redpointMailFunc = new Redpoint(RedPoint_MainMailKey, RedPoint_MailFuncKey);
-        #endregion
-
-        #region 濂藉弸绾㈢偣
-        public const int RedPoint_FriendQuestKey = 26;
-        public const int RedPoint_FriendChatKey = 25; //濂藉弸
-        public Redpoint redpointFriendQuest = new Redpoint(RedPoint_FriendQuestKey);
-        public Redpoint redPointFriendChat = new Redpoint(RedPoint_FriendChatKey);
-        #endregion
-
-        #region 鑳屽寘绾㈢偣
-        public const int RedPoint_MainPackKey = 102;
-        public const int RedPoint_BagFuncKey = 10201;
-        public const int RedPoint_DepotFuncKey = 10204;
-        public Redpoint redPointMainPack = new Redpoint(RedPoint_MainPackKey);
-        public Redpoint redPointBagFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_BagFuncKey);
-        public Redpoint redPointDepotFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_DepotFuncKey);
-        #endregion
-
-
-
-
-        #region 浠欑洘鍏敤绾㈢偣
-        public const int FAIRY_REDPOINT_KEY2 = 10701;
-        public Redpoint fairyLaunch = new Redpoint(RedPoint_key, FAIRY_REDPOINT_KEY1);
-        public Redpoint fairyBaseFuncRedPoint = new Redpoint(FAIRY_REDPOINT_KEY1, FAIRY_REDPOINT_KEY2);
-        #endregion
-
-
-
-        #region 浠欑洘鍟嗗簵绾㈢偣
-        public const int FAIRYStore_REDPOINT_KEY3 = 1070106;
-        public Redpoint fairyStoreRedPoint = new Redpoint(FAIRY_REDPOINT_KEY2, FAIRYStore_REDPOINT_KEY3);
-        #endregion
-
-
-
-
-        #region 寮�鏈嶆椿鍔ㄧ孩鐐�
-        public const int REDPOINT_OPENSERVER = 209;
-        public Redpoint openServerRedpoint = new Redpoint(REDPOINT_OPENSERVER);
-
-        //280 寮�澶寸敤浜庤妭鏃ョ绂�
-        public const int RedPoint_HolidayWishes = 280;
-        public Redpoint holidayWishesRedpoint = new Redpoint(RedPoint_HolidayWishes);
-
-        #endregion
-        public const int REDPOINT_OPENRANK = 258;
-        public Redpoint openRankRedpoint = new Redpoint(REDPOINT_OPENRANK);
-        #region 浠欑洘娲诲姩绾㈢偣
-        public readonly Redpoint fairyActivityRedpoint = new Redpoint(218);
-        #endregion
-
-        public static int DailySpecialsRedpoint = 439;  //姣忔棩鐗规儬鍏ュ彛绾㈢偣
-
-        public static int BlessedLandRedpoint = 444; //绂忓湴绾㈢偣
-        public const int CustomizedGiftRedpoint = 448; //鑷�夌ぜ鍖�
-        public const int LoginZhanLingRedpoint = 449; //鐧诲綍鎴樹护
-        public const int PhantasmPavilionRepoint = 459; //骞诲闃�
-        public const int FairyEmbleManageRepoint = 462;//浠欑洘寰界珷绠$悊鍏ュ彛绾㈢偣
-        public const int CycleHallRepoint = 463; //杞洖娈�
-        public const int YunShiRepoint = 464; //杩愬娍
-        public const int LianQiRepoint = 465; //浠欏尃澶т細
-        public const int FairySiegeRepoint = 466; //浠欑洘鏀诲煄鎴�
-        public const int MailRepoint = 467; //閭
-        
-
-
-
-        public void Register()
-    {
-
-    }
-
-
-
-
-    }
-
-
-
diff --git a/Main/System/Recharge/RechargeManager.cs b/Main/System/Recharge/RechargeManager.cs
index d1d2ad3..c3460bf 100644
--- a/Main/System/Recharge/RechargeManager.cs
+++ b/Main/System/Recharge/RechargeManager.cs
@@ -217,11 +217,6 @@
 #endif
             }
         }
-        var _funcConfig = FuncConfigConfig.Get("ChargeDelayTime");
-        m_CTGDelayTime = int.Parse(_funcConfig.Numerical1);
-        m_CTGLimitDelayTime = int.Parse(_funcConfig.Numerical2);
-        _funcConfig = FuncConfigConfig.Get("FirstGoldMobs");
-        firstRechargeWeapon = ConfigParse.GetDic<int, int>(_funcConfig.Numerical1);
     }
 
     public List<int> GetCTGConfigs(string _appid)
@@ -305,7 +300,6 @@
     
 
     #region 鍏呭��
-    public Dictionary<int, int> firstRechargeWeapon { get; private set; }
     public Dictionary<int, List<Item>> m_RechargeGainItemDict { get; private set; }
     private Dictionary<int, RechargeCount> m_RechargeCountDict = new Dictionary<int, RechargeCount>();
     Dictionary<string, List<OrderInfoConfig>> m_OrderInfoDict = new Dictionary<string, List<OrderInfoConfig>>();
diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs
new file mode 100644
index 0000000..43510d3
--- /dev/null
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -0,0 +1,115 @@
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Thursday, November 16, 2017
+//--------------------------------------------------------
+
+
+
+public class MainRedDot : Singleton<MainRedDot>
+{
+    //涓荤晫闈�
+    public const int MainAffairsRedpoint = 1;   //鍐呮斂
+    public Redpoint redpointAffairs = new Redpoint(MainAffairsRedpoint);
+    public const int MainHerosRedpoint = 2;     //姝﹀皢
+    public Redpoint redpointHeros = new Redpoint(MainHerosRedpoint);
+    public const int MainChallengeRedpoint = 3; //鎸戞垬
+    public Redpoint redpointChallenge = new Redpoint(MainChallengeRedpoint);
+    public const int MainGuildRedpoint = 4;     //鍏細
+    public Redpoint redpointGuild = new Redpoint(MainGuildRedpoint);
+
+
+    public const int RedPoint_key = 11;
+    public const int FAIRY_REDPOINT_KEY1 = 107;
+    public const int RedPoint_UpFuncBase = 12;
+
+    private Redpoint rightTopRedpint = new Redpoint(RedPoint_UpFuncBase);
+    private Redpoint redPointStrePrentOne = new Redpoint(RedPoint_key);
+
+
+    //public Redpoint jadeDynastyRedpoint = new Redpoint(1, 117);
+
+    #region 閭欢绾㈢偣
+    public const int RedPoint_MainMailKey = 24;
+    public const int RedPoint_MailFuncKey = 2401;
+    public Redpoint redpointMainMail = new Redpoint(RedPoint_MainMailKey);
+    public Redpoint redpointMailFunc = new Redpoint(RedPoint_MainMailKey, RedPoint_MailFuncKey);
+    #endregion
+
+    #region 濂藉弸绾㈢偣
+    public const int RedPoint_FriendQuestKey = 26;
+    public const int RedPoint_FriendChatKey = 25; //濂藉弸
+    public Redpoint redpointFriendQuest = new Redpoint(RedPoint_FriendQuestKey);
+    public Redpoint redPointFriendChat = new Redpoint(RedPoint_FriendChatKey);
+    #endregion
+
+    #region 鑳屽寘绾㈢偣
+    public const int RedPoint_MainPackKey = 102;
+    public const int RedPoint_BagFuncKey = 10201;
+    public const int RedPoint_DepotFuncKey = 10204;
+    public Redpoint redPointMainPack = new Redpoint(RedPoint_MainPackKey);
+    public Redpoint redPointBagFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_BagFuncKey);
+    public Redpoint redPointDepotFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_DepotFuncKey);
+    #endregion
+
+
+
+
+    #region 浠欑洘鍏敤绾㈢偣
+    public const int FAIRY_REDPOINT_KEY2 = 10701;
+    public Redpoint fairyLaunch = new Redpoint(RedPoint_key, FAIRY_REDPOINT_KEY1);
+    public Redpoint fairyBaseFuncRedPoint = new Redpoint(FAIRY_REDPOINT_KEY1, FAIRY_REDPOINT_KEY2);
+    #endregion
+
+
+
+    #region 浠欑洘鍟嗗簵绾㈢偣
+    public const int FAIRYStore_REDPOINT_KEY3 = 1070106;
+    public Redpoint fairyStoreRedPoint = new Redpoint(FAIRY_REDPOINT_KEY2, FAIRYStore_REDPOINT_KEY3);
+    #endregion
+
+
+
+
+    #region 寮�鏈嶆椿鍔ㄧ孩鐐�
+    public const int REDPOINT_OPENSERVER = 209;
+    public Redpoint openServerRedpoint = new Redpoint(REDPOINT_OPENSERVER);
+
+    //280 寮�澶寸敤浜庤妭鏃ョ绂�
+    public const int RedPoint_HolidayWishes = 280;
+    public Redpoint holidayWishesRedpoint = new Redpoint(RedPoint_HolidayWishes);
+
+    #endregion
+    public const int REDPOINT_OPENRANK = 258;
+    public Redpoint openRankRedpoint = new Redpoint(REDPOINT_OPENRANK);
+    #region 浠欑洘娲诲姩绾㈢偣
+    public readonly Redpoint fairyActivityRedpoint = new Redpoint(218);
+    #endregion
+
+    public static int DailySpecialsRedpoint = 439;  //姣忔棩鐗规儬鍏ュ彛绾㈢偣
+
+    public static int BlessedLandRedpoint = 444; //绂忓湴绾㈢偣
+    public const int CustomizedGiftRedpoint = 448; //鑷�夌ぜ鍖�
+    public const int LoginZhanLingRedpoint = 449; //鐧诲綍鎴樹护
+    public const int PhantasmPavilionRepoint = 459; //骞诲闃�
+    public const int FairyEmbleManageRepoint = 462;//浠欑洘寰界珷绠$悊鍏ュ彛绾㈢偣
+    public const int CycleHallRepoint = 463; //杞洖娈�
+    public const int YunShiRepoint = 464; //杩愬娍
+    public const int LianQiRepoint = 465; //浠欏尃澶т細
+    public const int FairySiegeRepoint = 466; //浠欑洘鏀诲煄鎴�
+    public const int MailRepoint = 467; //閭
+    
+
+
+
+    public void Register()
+    {
+
+    }
+
+
+
+
+}
+
+
+
diff --git a/Main/System/MainInterfacePanel/MainRedDot.cs.meta b/Main/System/Redpoint/MainRedDot.cs.meta
similarity index 100%
rename from Main/System/MainInterfacePanel/MainRedDot.cs.meta
rename to Main/System/Redpoint/MainRedDot.cs.meta
diff --git a/Main/System/Redpoint/RedpointBehaviour.cs b/Main/System/Redpoint/RedpointBehaviour.cs
index 6cb2382..61a7734 100644
--- a/Main/System/Redpoint/RedpointBehaviour.cs
+++ b/Main/System/Redpoint/RedpointBehaviour.cs
@@ -6,114 +6,119 @@
 using System.Collections;
 using UnityEngine.UI;
 
-    
-    public class RedpointBehaviour : MonoBehaviour
-    {
-        [SerializeField]
-        int m_RedpointId;
-        public int redpointId {
-            get {
-                return m_RedpointId;
-            }
-            set {
-                m_RedpointId = value;
-                UpdateRedpoint(value);
-            }
+
+public class RedpointBehaviour : MonoBehaviour
+{
+    [SerializeField]
+    int m_RedpointId;
+    public int redpointId {
+        get {
+            return m_RedpointId;
         }
-
-        [SerializeField]
-        Transform m_SimpleRedpoint;
-        public Transform simpleRedpoint {
-            get {
-                return m_SimpleRedpoint;
-            }
+        set {
+            m_RedpointId = value;
+            UpdateRedpoint(value);
         }
-        [SerializeField]
-        Transform m_QuantityRedpoint;
-        public Transform quantityRedpoint {
-            get {
-                return m_QuantityRedpoint;
-            }
-        }
-        [SerializeField]
-        Text m_Quantity;
-        public Text quantityText {
-            get {
-                return m_Quantity;
-            }
-        }
-        [SerializeField]
-        Transform m_FullRedpoint;
-
-        [SerializeField]
-        Transform m_GetRewardRedpoint;
-
-        bool m_Show = false;
-        public bool show {
-            get { return m_Show; }
-            set {
-                if (m_Show != value)
-                {
-                    m_Show = value;
-                    this.SetActive(m_Show);
-                }
-            }
-        }
-
-        private void Awake()
-        {
-            UpdateRedpoint(redpointId);
-            RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint;
-        }
-
-        private void OnDestroy()
-        {
-            RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint;
-        }
-
-        void UpdateRedpoint(int _id)
-        {
-            if (_id != redpointId)
-            {
-                return;
-            }
-
-            var state = RedpointCenter.Instance.GetRedpointState(redpointId);
-            if (m_SimpleRedpoint != null)
-            {
-                m_SimpleRedpoint.SetActive(state == RedPointState.Simple);
-            }
-
-            if (m_QuantityRedpoint != null)
-            {
-                m_QuantityRedpoint.SetActive(state == RedPointState.Quantity);
-            }
-
-            if (m_Quantity != null)
-            {
-                m_Quantity.SetActive(state == RedPointState.Quantity);
-            }
-
-            if (m_FullRedpoint != null)
-            {
-                m_FullRedpoint.SetActive(state == RedPointState.Full);
-            }
-
-            if (m_GetRewardRedpoint != null)
-            {
-                m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward);
-            }
-
-            if (state == RedPointState.Quantity && m_Quantity != null)
-            {
-                var count = RedpointCenter.Instance.GetRedpointCount(redpointId);
-                m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : "";
-            }
-
-        }
-
     }
 
+    [SerializeField]
+    Transform m_SimpleRedpoint;
+    public Transform simpleRedpoint {
+        get {
+            return m_SimpleRedpoint;
+        }
+    }
+    [SerializeField]
+    Transform m_QuantityRedpoint;
+    public Transform quantityRedpoint {
+        get {
+            return m_QuantityRedpoint;
+        }
+    }
+    [SerializeField]
+    Text m_Quantity;
+    public Text quantityText {
+        get {
+            return m_Quantity;
+        }
+    }
+    [SerializeField]
+    Transform m_FullRedpoint;
+
+    [SerializeField]
+    Transform m_GetRewardRedpoint;
+
+    [SerializeField] Transform m_NewRedpoint;
+    bool m_Show = false;
+    public bool show {
+        get { return m_Show; }
+        set {
+            if (m_Show != value)
+            {
+                m_Show = value;
+                this.SetActive(m_Show);
+            }
+        }
+    }
+
+    private void Awake()
+    {
+        UpdateRedpoint(redpointId);
+        RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint;
+    }
+
+    private void OnDestroy()
+    {
+        RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint;
+    }
+
+    void UpdateRedpoint(int _id)
+    {
+        if (_id != redpointId)
+        {
+            return;
+        }
+
+        var state = RedpointCenter.Instance.GetRedpointState(redpointId);
+        if (m_SimpleRedpoint != null)
+        {
+            m_SimpleRedpoint.SetActive(state == RedPointState.Simple);
+        }
+
+        if (m_QuantityRedpoint != null)
+        {
+            m_QuantityRedpoint.SetActive(state == RedPointState.Quantity);
+        }
+
+        if (m_Quantity != null)
+        {
+            m_Quantity.SetActive(state == RedPointState.Quantity);
+        }
+
+        if (m_FullRedpoint != null)
+        {
+            m_FullRedpoint.SetActive(state == RedPointState.Full);
+        }
+
+        if (m_GetRewardRedpoint != null)
+        {
+            m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward);
+        }
+
+        if (state == RedPointState.Quantity && m_Quantity != null)
+        {
+            var count = RedpointCenter.Instance.GetRedpointCount(redpointId);
+            m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : "";
+        }
+
+        if (m_NewRedpoint != null)
+        {
+            m_NewRedpoint.SetActive(state == RedPointState.New);
+        }
+    }
+
+}
+
 
 
 
diff --git a/Main/System/Redpoint/RedpointCenter.cs b/Main/System/Redpoint/RedpointCenter.cs
index b197f86..408a26f 100644
--- a/Main/System/Redpoint/RedpointCenter.cs
+++ b/Main/System/Redpoint/RedpointCenter.cs
@@ -3,128 +3,128 @@
 using UnityEngine;
 using System;
 
-    
-    public class RedpointCenter : Singleton<RedpointCenter>
+
+public class RedpointCenter : Singleton<RedpointCenter>
+{
+    public event Action<int> redpointValueChangeEvent;
+
+    Dictionary<int, Redpoint> redpoints = new Dictionary<int, Redpoint>();
+    Dictionary<int, List<int>> parentChildren = new Dictionary<int, List<int>>();
+
+    public RedpointCenter()
     {
-        public event Action<int> redpointValueChangeEvent;
-
-        Dictionary<int, Redpoint> redpoints = new Dictionary<int, Redpoint>();
-        Dictionary<int, List<int>> parentChildren = new Dictionary<int, List<int>>();
-
-        public RedpointCenter()
-        {
-
-        }
-
-        public void ResetAllRedpointState()
-        {
-            foreach (var redpoint in redpoints.Values)
-            {
-                redpoint.state = RedPointState.None;
-            }
-        }
-
-        public void Register(Redpoint _redpoint)
-        {
-            var id = _redpoint.id;
-            if (redpoints.ContainsKey(id))
-            {
-                Debug.LogErrorFormat("閲嶅娉ㄥ唽绾㈢偣锛歩d->{0}", id);
-            }
-
-            redpoints[id] = _redpoint;
-
-            var parentId = _redpoint.parent;
-            if (parentId > 0)
-            {
-                List<int> children = null;
-                if (!parentChildren.TryGetValue(parentId, out children))
-                {
-                    parentChildren[parentId] = children = new List<int>();
-                }
-
-                if (!children.Contains(id))
-                {
-                    children.Add(id);
-                }
-            }
-        }
-
-        public void Report(Redpoint _redpoint)
-        {
-            var parentId = _redpoint.parent;
-
-            if (redpointValueChangeEvent != null)
-            {
-                redpointValueChangeEvent(_redpoint.id);
-            }
-
-            if (parentId > 0)
-            {
-                TestParentValue(_redpoint.parent);
-            }
-        }
-
-        public void ReportWithoutParent(Redpoint _redpoint)
-        {
-            if (redpointValueChangeEvent != null)
-            {
-                redpointValueChangeEvent(_redpoint.id);
-            }
-        }
-
-        public RedPointState GetRedpointState(int _id)
-        {
-            Redpoint redpoint = null;
-            if (this.redpoints.TryGetValue(_id, out redpoint))
-            {
-                return redpoint.state;
-            }
-            else
-            {
-                return RedPointState.None;
-            }
-        }
-
-        public int GetRedpointCount(int _id)
-        {
-            Redpoint redpoint = null;
-            if (this.redpoints.TryGetValue(_id, out redpoint))
-            {
-                return redpoint.count;
-            }
-            else
-            {
-                return 0;
-            }
-        }
-
-        void TestParentValue(int _parentId)
-        {
-            List<int> children = null;
-            Redpoint parent = null;
-            if (redpoints.TryGetValue(_parentId, out parent) && parentChildren.TryGetValue(_parentId, out children))
-            {
-                var parentState = RedPointState.None;
-                for (int i = 0; i < children.Count; i++)
-                {
-                    Redpoint child = null;
-                    if (redpoints.TryGetValue(children[i], out child))
-                    {
-                        if (child.state > parentState)
-                        {
-                            parentState = child.state;
-                        }
-                    }
-
-                    if (parentState == RedPointState.Full)
-                    {
-                        break;
-                    }
-
-                }
-                parent.state = parentState;
-            }
-        }
 
     }
+
+    public void ResetAllRedpointState()
+    {
+        foreach (var redpoint in redpoints.Values)
+        {
+            redpoint.state = RedPointState.None;
+        }
+    }
+
+    public void Register(Redpoint _redpoint)
+    {
+        var id = _redpoint.id;
+        if (redpoints.ContainsKey(id))
+        {
+            Debug.LogErrorFormat("閲嶅娉ㄥ唽绾㈢偣锛歩d->{0}", id);
+        }
+
+        redpoints[id] = _redpoint;
+
+        var parentId = _redpoint.parent;
+        if (parentId > 0)
+        {
+            List<int> children = null;
+            if (!parentChildren.TryGetValue(parentId, out children))
+            {
+                parentChildren[parentId] = children = new List<int>();
+            }
+
+            if (!children.Contains(id))
+            {
+                children.Add(id);
+            }
+        }
+    }
+
+    public void Report(Redpoint _redpoint)
+    {
+        var parentId = _redpoint.parent;
+
+        if (redpointValueChangeEvent != null)
+        {
+            redpointValueChangeEvent(_redpoint.id);
+        }
+
+        if (parentId > 0)
+        {
+            TestParentValue(_redpoint.parent);
+        }
+    }
+
+    public void ReportWithoutParent(Redpoint _redpoint)
+    {
+        if (redpointValueChangeEvent != null)
+        {
+            redpointValueChangeEvent(_redpoint.id);
+        }
+    }
+
+    public RedPointState GetRedpointState(int _id)
+    {
+        Redpoint redpoint = null;
+        if (this.redpoints.TryGetValue(_id, out redpoint))
+        {
+            return redpoint.state;
+        }
+        else
+        {
+            return RedPointState.None;
+        }
+    }
+
+    public int GetRedpointCount(int _id)
+    {
+        Redpoint redpoint = null;
+        if (this.redpoints.TryGetValue(_id, out redpoint))
+        {
+            return redpoint.count;
+        }
+        else
+        {
+            return 0;
+        }
+    }
+
+    void TestParentValue(int _parentId)
+    {
+        List<int> children = null;
+        Redpoint parent = null;
+        if (redpoints.TryGetValue(_parentId, out parent) && parentChildren.TryGetValue(_parentId, out children))
+        {
+            var parentState = RedPointState.None;
+            for (int i = 0; i < children.Count; i++)
+            {
+                Redpoint child = null;
+                if (redpoints.TryGetValue(children[i], out child))
+                {
+                    if (child.state > parentState)
+                    {
+                        parentState = child.state;
+                    }
+                }
+
+                if (parentState == RedPointState.Full)
+                {
+                    break;
+                }
+
+            }
+            parent.state = parentState;
+        }
+    }
+
+}
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
index 17c4166..4b98aaa 100644
--- a/Main/System/Store/StoreModel.cs
+++ b/Main/System/Store/StoreModel.cs
@@ -28,13 +28,11 @@
 public class StoreModel : GameSystemManager<StoreModel>
 {
 
-    public int[] normalBuyCoinsTypes { get; private set; }
     public string UNIONSTORESAVE_KEY { get; private set; }
     public string MUSTBUYSAVE_KEY { get; private set; }
     public string StoreEffectRecord_Key { get; private set; }
     public Dictionary<int, Dictionary<int, int>> JobReplaceIdDict = new Dictionary<int, Dictionary<int, int>>();
-    public Dictionary<int, string> resetTimeDict { get; private set; }
-    public Dictionary<int, int> showCoinsUIDict { get; private set; }
+    public Dictionary<int, int> showCoinUIDict { get; private set; }
     public int storeTrailerLv { get; private set; }
 
 
@@ -72,15 +70,6 @@
         ParseFuncConfig();
         ParseStoreConfig();
         SetShopRedpoint();
-        FuncConfigConfig buyItemHinit = FuncConfigConfig.Get("BuyItemHinit");
-        normalBuyCoinsTypes = ConfigParse.GetMultipleStr<int>(buyItemHinit.Numerical1);
-        FuncConfigConfig restTimeConfig = FuncConfigConfig.Get("RefreshText");
-        resetTimeDict = ConfigParse.GetDic<int, string>(restTimeConfig.Numerical1);
-        FuncConfigConfig mallCurrency = FuncConfigConfig.Get("MallCurrency");
-        showCoinsUIDict = ConfigParse.GetDic<int, int>(mallCurrency.Numerical1);
-        FuncConfigConfig mallPush = FuncConfigConfig.Get("MallPush");
-        storeTrailerLv = int.Parse(mallPush.Numerical1);
-
     }
 
     public void OnBeforePlayerDataInitialize()
@@ -677,19 +666,7 @@
     }
     #endregion
 
-    public string GetStoreRefreshTimeByType(int type)
-    {
-        if (resetTimeDict == null || !resetTimeDict.ContainsKey(type)) return string.Empty;
 
-        switch (type)
-        {
-            case 7:
-                int willRefreshTime = GetWillRefreshTime();
-                return Language.Get(resetTimeDict[type], UIHelper.AppendColor(TextColType.Green, TimeUtility.SecondsToHMS(willRefreshTime), true));
-            default:
-                return Language.Get(resetTimeDict[type]);
-        }
-    }
 
     public string GetMysteryStoreRefreshTime()
     {
@@ -1056,28 +1033,15 @@
     public void GetBuyResult(HA811_tagMCShoppingResult result)
     {
 
-        Debug.Log("GetBuyResult");
+        //Debug.Log("GetBuyResult");
         StoreConfig tagStore = StoreConfig.Get((int)result.ItemIndex);
 
         if (tagStore != null)
         {
             ItemConfig chinModel = ItemConfig.Get(GetReplaceId(tagStore.ID, tagStore.ItemID));
-            if (!normalBuyCoinsTypes.Contains(tagStore.MoneyType))
+            if (tagStore.RemindSuccess == 0)
             {
-                if (tagStore.RemindSuccess == 0)
-                {
-                    return;
-                }
-                // BuySuccessModel.Instance.SetBuySuccessModel(chinModel.ID, (int)result.ItemCnt);
-                // if (!WindowCenter.Instance.IsOpen<BuySuccessWin>())
-                // {
-                //     WindowCenter.Instance.Open<BuySuccessWin>();
-                // }
-            }
-            else
-            {
-                float costMoney = tagStore.MoneyNumber;
-                SysNotifyMgr.Instance.ShowTip("BuyItemHinit", costMoney, tagStore.MoneyType, chinModel.ItemName);
+                return;
             }
 
             if (RefreshBuyResultEvent != null)
diff --git a/Main/System/Task/TaskManager.cs b/Main/System/Task/TaskManager.cs
index 41632ab..7bb2e2d 100644
--- a/Main/System/Task/TaskManager.cs
+++ b/Main/System/Task/TaskManager.cs
@@ -170,36 +170,36 @@
         // StageLoad.Instance.onStageLoadFinish += onStageLoadFinish;
         // NPCInteractProcessor.s_NpcInteractEvent += NpcInterac;
 
-        string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1;
-        BossDelayTimeint = float.Parse(BossDelayTime);
-        var Task_Auto = FuncConfigConfig.Get("TaskAuto");
-        TaskAutoLv = int.Parse(Task_Auto.Numerical1);
-        TaskAutoTime = int.Parse(Task_Auto.Numerical2);
-        mainTaskAutoWaitTime = int.Parse(Task_Auto.Numerical3) / 1000f;
-        var mapIds = ConfigParse.GetMultipleStr<int>(Task_Auto.Numerical4);
-        if (mapIds != null && mapIds.Length > 0)
-        {
-            allowAutoTaskMapIds.AddRange(mapIds);
-        }
+        // string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1;
+        // BossDelayTimeint = float.Parse(BossDelayTime);
+        // var Task_Auto = FuncConfigConfig.Get("TaskAuto");
+        // TaskAutoLv = int.Parse(Task_Auto.Numerical1);
+        // TaskAutoTime = int.Parse(Task_Auto.Numerical2);
+        // mainTaskAutoWaitTime = int.Parse(Task_Auto.Numerical3) / 1000f;
+        // var mapIds = ConfigParse.GetMultipleStr<int>(Task_Auto.Numerical4);
+        // if (mapIds != null && mapIds.Length > 0)
+        // {
+        //     allowAutoTaskMapIds.AddRange(mapIds);
+        // }
 
-        FairyAuTaskCount_Day = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical1.Split('|')[1].Split('_')[1]);
-        FairyAuTaskCount_Round = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical2.Split('|')[1].Split('_')[1]);
+        // FairyAuTaskCount_Day = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical1.Split('|')[1].Split('_')[1]);
+        // FairyAuTaskCount_Round = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical2.Split('|')[1].Split('_')[1]);
 
-        var cliengGuardConfig = FuncConfigConfig.Get("ClientGuardDungeon");
-        clientGuardDugeonTask = int.Parse(cliengGuardConfig.Numerical5);
+        // var cliengGuardConfig = FuncConfigConfig.Get("ClientGuardDungeon");
+        // clientGuardDugeonTask = int.Parse(cliengGuardConfig.Numerical5);
 
-        var funcConfig = FuncConfigConfig.Get("AutoSelectTaskChain");
-        var taskChainArray = LitJson.JsonMapper.ToObject<int[][]>(funcConfig.Numerical1);
-        if (taskChainArray != null)
-        {
-            for (int i = 0; i < taskChainArray.Length; i++)
-            {
-                priorityTaskChains.Add(taskChainArray[i]);
-            }
-        }
-        var config = FuncConfigConfig.Get("NPCTalk");
-        npcImages = JsonMapper.ToObject<List<int>>(config.Numerical1);
-        playerJobImages = JsonMapper.ToObject<List<int>>(config.Numerical2);
+        // var funcConfig = FuncConfigConfig.Get("AutoSelectTaskChain");
+        // var taskChainArray = LitJson.JsonMapper.ToObject<int[][]>(funcConfig.Numerical1);
+        // if (taskChainArray != null)
+        // {
+        //     for (int i = 0; i < taskChainArray.Length; i++)
+        //     {
+        //         priorityTaskChains.Add(taskChainArray[i]);
+        //     }
+        // }
+        // var config = FuncConfigConfig.Get("NPCTalk");
+        // npcImages = JsonMapper.ToObject<List<int>>(config.Numerical1);
+        // playerJobImages = JsonMapper.ToObject<List<int>>(config.Numerical2);
     }
 
     public override void Release()
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index 66ffe05..0dbdc97 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -1144,6 +1144,7 @@
     Quantity = 2,
     Full = 3,
     GetReward = 4,
+    New = 5,
 }
 
 

--
Gitblit v1.8.0