فهرست منبع

表格,初始缓存,多组查询

zhaoyang 3 سال پیش
والد
کامیت
85b4da0199

+ 145 - 68
GameClient/Assets/Editor/Excel/CodeBuilder.cs

@@ -37,11 +37,13 @@ namespace GFGEditor
             _idDic.Clear();
             _indexs.Clear();
             //_hasSameIds = false;
-            List<string> keyNames = new List<string>();
-            List<string> keyTypes = new List<string>();
-            List<string> groupNames = new List<string>();
-            List<string> groupTypes = new List<string>();
-            bool groupOnly = false;
+            List<string> keyName = new List<string>();//默认用id查询单条数据
+            List<string> keyType = new List<string>();
+            Dictionary<string, List<string>> keyNames = new Dictionary<string, List<string>>();
+            Dictionary<string, List<string>> keyTypes = new Dictionary<string, List<string>>();
+            Dictionary<string, List<string>> groupNames = new Dictionary<string, List<string>>();
+            Dictionary<string, List<string>> groupTypes = new Dictionary<string, List<string>>();
+            bool groupOnly = false;//可根据id分组时,不提供根据id查询单条数据的接口
             int len = worksheet.Dimension.End.Column;
             if (len <= 0)
             {
@@ -55,107 +57,154 @@ namespace GFGEditor
                 string nameWhole = worksheet.Cells[3, i].Text.Trim();
                 string[] nameInfos = nameWhole.Split('#');
                 string name = nameInfos[0];
-                if (i == 1 || nameWhole.Contains("#k"))
+                if (i == 1)
                 {
-                    keyNames.Add(name);
-                    keyTypes.Add(type);
+                    keyName.Add(name);
+                    keyType.Add(type);
                 }
-                if (nameWhole.Contains("#g"))
+                for (int j = 1; j < nameInfos.Length; j++)
                 {
-                    groupNames.Add(name);
-                    groupTypes.Add(type);
+                    if (nameInfos[j].Contains("k"))
+                    {
+                        if (!keyNames.ContainsKey(nameInfos[j]))
+                        {
+                            keyNames.Add(nameInfos[j], new List<string>());
+                            keyTypes.Add(nameInfos[j], new List<string>());
+                        }
+                        keyNames[nameInfos[j]].Add(name);
+                        keyTypes[nameInfos[j]].Add(type);
+                    }
+                    if (nameInfos[j].Contains("g"))
+                    {
+                        if (!groupNames.ContainsKey(nameInfos[j]))
+                        {
+                            groupNames.Add(nameInfos[j], new List<string>());
+                            groupTypes.Add(nameInfos[j], new List<string>());
+                        }
+                        groupNames[nameInfos[j]].Add(name);
+                        groupTypes[nameInfos[j]].Add(type);
+                    }
                 }
-                ParseDataColumn(annotation, type, name, i);
-            }
-            if (keyNames.Count == groupNames.Count)
-            {
-                bool isSame = true;
-                for (var i = 0; i < keyNames.Count; i++)
+                foreach (string key in groupNames.Keys)
                 {
-                    if (keyNames[i] != groupNames[i])
+                    if (groupNames[key].Count == 1 && groupNames[key][0] == keyName[0])
                     {
-                        isSame = false;
+                        groupOnly = true;
                     }
                 }
-                groupOnly = isSame;
+                ParseDataColumn(annotation, type, name, i);
             }
+
+
             //创建sqlite表
             SQLiteHelper.Instance.CreateTable(configArrayName, _names.ToArray(), _types.ToArray());
             AddDataToSql(worksheet, configName, configArrayName);
 
             //生成管理类代码
             string configArrayStr = CodeTemplateFactory.ConfigArrayTemplate;
-            string paramsStr;
-            string colNames;
-            string colValues;
-            _declarationBuilder.AppendFormat("\t\t//{0}", "组合key");
+
+            _declarationBuilder.AppendFormat("\t\t//{0}", "key");
             _declarationBuilder.AppendLine();
-            _declarationBuilder.AppendFormat("\t\tpublic {0} {1};", "string", "combinedKey");
+            _declarationBuilder.AppendFormat("\t\tpublic {0} {1};", "string", "key");
             _declarationBuilder.AppendLine();
-            //处理查询单条数据函数
-            if (groupOnly)
+
+            // _assignmentBuilder.AppendFormat("\t\t\t{0} = \"{1}\";", "key", keyName);
+            // _assignmentBuilder.AppendLine();
+
+            foreach (string key in keyNames.Keys)
             {
-                configArrayStr = configArrayStr.Replace("{singleFunction}", "");
-                _assignmentBuilder.AppendFormat("\t\t\t{0} = \"{1}\";", "combinedKey", string.Join("_", groupNames));
-                _assignmentBuilder.AppendLine();
+                _declarationBuilder.AppendFormat("\t\t//{0}{1}", "key_", key);
+                _declarationBuilder.AppendLine();
+                _declarationBuilder.AppendFormat("\t\tpublic {0} {1}{2};", "string", "combinedKey_", key);
+                _declarationBuilder.AppendLine();
+
             }
-            else
+
+            foreach (string key in groupNames.Keys)
             {
-                string FunctionSingleStr = CodeTemplateFactory.FunctionSingleTemplate;
-                CreateParamsString(keyNames, keyTypes, out paramsStr, out colNames, out colValues);
-                FunctionSingleStr = FunctionSingleStr.Replace("{params}", paramsStr);
-                FunctionSingleStr = FunctionSingleStr.Replace("{colNames}", colNames);
-                FunctionSingleStr = FunctionSingleStr.Replace("{colValues}", colValues);
-                configArrayStr = configArrayStr.Replace("{singleFunction}", FunctionSingleStr);
-                _assignmentBuilder.AppendFormat("\t\t\t{0} = \"{1}\";", "combinedKey", string.Join("_", keyNames));
-                _assignmentBuilder.AppendLine();
+                _declarationBuilder.AppendFormat("\t\t//{0}{1}", "groupKey_", key);
+                _declarationBuilder.AppendLine();
+                _declarationBuilder.AppendFormat("\t\tpublic {0} {1}{2};", "string", "groupKey_", key);
+                _declarationBuilder.AppendLine();
+
             }
 
-            //处理查询多条数据函数
-            if (groupNames.Count > 0)
+
+            string ConstructorStr = CodeTemplateFactory.ConstructorTemplate;
+            configArrayStr = configArrayStr.Replace("{Constructor}", ConstructorStr);
+
+            string singleFunction = "";
+            //处理查询单条数据函数
+            if (!groupOnly)
+            {
+                singleFunction = HandleSingleFunction("key", keyName, keyType, "GetCfg", "_cfgsDic", configArrayStr);
+            }
+            foreach (string key in keyNames.Keys)
             {
-                string FunctionGroupStr = CodeTemplateFactory.FunctionGroupTemplate;
-                CreateParamsString(groupNames, groupTypes, out paramsStr, out colNames, out colValues);
-                FunctionGroupStr = FunctionGroupStr.Replace("{params}", paramsStr);
-                FunctionGroupStr = FunctionGroupStr.Replace("{colNames}", colNames);
-                FunctionGroupStr = FunctionGroupStr.Replace("{colValues}", colValues);
+                string functionName = string.Format("GetCfgBy{0}", string.Join("And", keyNames[key]));
+                string cfgsDicName = string.Format("_cfgsDicBy{0}", string.Join("And", keyNames[key]));
 
-                configArrayStr = configArrayStr.Replace("{groupFunction}", FunctionGroupStr);
+                singleFunction = singleFunction + HandleSingleFunction("combinedKey_" + key, keyNames[key], keyTypes[key], functionName, cfgsDicName, configArrayStr);
             }
-            else
+            configArrayStr = configArrayStr.Replace("{singleFunction}", singleFunction);
+
+            string groupFunction = "";
+
+            //处理查询多条数据函数
+            if (groupNames.Count > 0)
             {
-                configArrayStr = configArrayStr.Replace("{groupFunction}", "");
+                int index0 = 0;
+                foreach (string key in groupNames.Keys)
+                {
+                    string functionName = groupNames.Count == 1 ? "GetCfgs" : string.Format("GetCfgsBy{0}", string.Join("And", groupNames[key]));
+                    string cfgsGroupDicName = string.Format("_cfgsGroupDic{0}", index0);
+                    groupFunction = groupFunction + HandleGroupFunction("groupKey_" + key, groupNames[key], groupTypes[key], functionName, cfgsGroupDicName, configArrayStr);
+                    index0++;
+                }
             }
+            configArrayStr = configArrayStr.Replace("{groupFunction}", groupFunction);
+
+
             //处理全部数据函数
             string FunctionAllStr = CodeTemplateFactory.FunctionAllTemplate;
             configArrayStr = configArrayStr.Replace("{allFunction}", FunctionAllStr);
-            //if (needAll)
-            //{
+
             configArrayStr = configArrayStr.Replace("{editorConditionStart}", "");
             configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "");
-            //}
-            //else
-            //{
-            //    configArrayStr = configArrayStr.Replace("{editorConditionStart}", "#if UNITY_EDITOR");
-            //    configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "#endif");
-            //}
-            //处理回调函数内语句块
-            if (groupOnly)
-            {
-                configArrayStr = configArrayStr.Replace("{FunctionAllSingleBlock}", "");
-            }
-            else
+
+            List<string> singleStrArry = new List<string>();
+            if (!groupOnly)
             {
-                configArrayStr = configArrayStr.Replace("{FunctionAllSingleBlock}", CodeTemplateFactory.FunctionAllSingleBlockTemplate);
+                string singleStr = CodeTemplateFactory.FunctionAllSingleBlockTemplate;
+                singleStr = singleStr.Replace("{cfgsDicName}", "_cfgsDic");
+                singleStr = singleStr.Replace("{combinedKey}", "cfg.key");
+                singleStrArry.Add(singleStr);
             }
-            if (groupNames.Count > 0)
+            foreach (string key in keyNames.Keys)
             {
-                configArrayStr = configArrayStr.Replace("{FunctionAllGroupBlock}", CodeTemplateFactory.FunctionAllGroupBlockTemplate);
+                string cfgsDicName = string.Format("_cfgsDicBy{0}", string.Join("And", keyNames[key]));
+                string singleStr = CodeTemplateFactory.FunctionAllSingleBlockTemplate;
+                singleStr = singleStr.Replace("{cfgsDicName}", cfgsDicName);
+                singleStr = singleStr.Replace("{combinedKey}", "cfg.combinedKey_" + key);
+                singleStrArry.Add(singleStr);
             }
-            else
+            string singleStrs = string.Join("\n", singleStrArry);
+            List<string> groupStrArry = new List<string>();
+            int index1 = 0;
+            foreach (string key in groupNames.Keys)
             {
-                configArrayStr = configArrayStr.Replace("{FunctionAllGroupBlock}", "");
+                string cfgsDicName = string.Format("_cfgsGroupDic{0}", index1);
+                string singleStr = CodeTemplateFactory.FunctionAllGroupBlockTemplate;
+                singleStr = singleStr.Replace("{cfgsGroupDicName}", cfgsDicName);
+                singleStr = singleStr.Replace("{groupKey}", "cfg.groupKey_" + key);
+                groupStrArry.Add(singleStr);
+                index1++;
             }
+            string groupStrs = string.Join("\n", groupStrArry);
+
+            configArrayStr = configArrayStr.Replace("{FunctionAllBlock}", singleStrs + "\n" + groupStrs);
+
+            // foreach()
             //名称处理
             configArrayStr = configArrayStr.Replace("{CfgName}", configName);
             configArrayStr = configArrayStr.Replace("{CfgArrayName}", configArrayName);
@@ -177,7 +226,35 @@ namespace GFGEditor
 
             Debug.LogFormat("生成{0}", configName);
         }
+        private static string HandleSingleFunction(string key, List<string> keyNames, List<string> keyTypes, string functionName, string cfgsDicName, string configArrayStr)
+        {
+            string FunctionSingleStr = CodeTemplateFactory.FunctionSingleTemplate;
+            CreateParamsString(keyNames, keyTypes, out string paramsStr, out string colNames, out string colValues);
+            FunctionSingleStr = FunctionSingleStr.Replace("{params}", paramsStr);
+            FunctionSingleStr = FunctionSingleStr.Replace("{colNames}", colNames);
+            FunctionSingleStr = FunctionSingleStr.Replace("{colValues}", colValues);
+            FunctionSingleStr = FunctionSingleStr.Replace("{FunctionName}", functionName);
+            FunctionSingleStr = FunctionSingleStr.Replace("{cfgsDicName}", cfgsDicName);
+
+            _assignmentBuilder.AppendFormat("\t\t\t{0} = \"{1}\";", key, string.Join("_", keyNames));
+            _assignmentBuilder.AppendLine();
+            return FunctionSingleStr;
+        }
+        private static string HandleGroupFunction(string key, List<string> groupNames, List<string> groupTypes, string functionName, string cfgsGroupDicName, string configArrayStr)
+        {
+            string FunctionGroupStr = CodeTemplateFactory.FunctionGroupTemplate;
+            CreateParamsString(groupNames, groupTypes, out string paramsStr, out string colNames, out string colValues);
+            FunctionGroupStr = FunctionGroupStr.Replace("{params}", paramsStr);
+            FunctionGroupStr = FunctionGroupStr.Replace("{colNames}", colNames);
+            FunctionGroupStr = FunctionGroupStr.Replace("{colValues}", colValues);
+            FunctionGroupStr = FunctionGroupStr.Replace("{FunctionName}", functionName);
+            FunctionGroupStr = FunctionGroupStr.Replace("{cfgsGroupDicName}", cfgsGroupDicName);
+
+            _assignmentBuilder.AppendFormat("\t\t\t{0} = \"{1}\";", key, string.Join("_", groupNames));
+            _assignmentBuilder.AppendLine();
+            return FunctionGroupStr;
 
+        }
         private static void ParseDataColumn(string annotation, string type, string name, int index)
         {
             if (type.Length > 0 && name.Length > 0)

+ 5 - 0
GameClient/Assets/Editor/Excel/CodeTemplateFactory.cs

@@ -9,6 +9,7 @@ namespace GFGEditor
 
         public static string ConfigTemplate { get; private set; }
         public static string ConfigArrayTemplate { get; private set; }
+        public static string ConstructorTemplate { get; private set; }
         public static string FunctionSingleTemplate { get; private set; }
         public static string FunctionGroupTemplate { get; private set; }
         public static string FunctionAllTemplate { get; private set; }
@@ -28,6 +29,10 @@ namespace GFGEditor
             {
                 ConfigArrayTemplate = sr.ReadToEnd();
             }
+            using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "Constructor.txt"))
+            {
+                ConstructorTemplate = sr.ReadToEnd();
+            }
             using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionSingle.txt"))
             {
                 FunctionSingleTemplate = sr.ReadToEnd();

+ 2 - 1
GameClient/Assets/Editor/Excel/Template/ConfigArray.txt

@@ -4,7 +4,8 @@ namespace GFGGame
 {
     public partial class {CfgArrayName} : SingletonBase<{CfgArrayName}>
     {
-    
+{Constructor}
+
 {singleFunction}
 
 {groupFunction}

+ 4 - 0
GameClient/Assets/Editor/Excel/Template/Constructor.txt

@@ -0,0 +1,4 @@
+		public {CfgArrayName} ()
+		{ 
+			{CfgName}[] dataArray =this.dataArray;
+		}

+ 7 - 0
GameClient/Assets/Editor/Excel/Template/Constructor.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1688b80d9c8e8954785c935d67d58893
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 2
GameClient/Assets/Editor/Excel/Template/FunctionAll.txt

@@ -1,8 +1,7 @@
 
         private void HandleCfgInAll({CfgName} cfg)
         {
-{FunctionAllSingleBlock}
-{FunctionAllGroupBlock}
+{FunctionAllBlock}
         }
 
 {editorConditionStart}

+ 3 - 7
GameClient/Assets/Editor/Excel/Template/FunctionAllGroupBlock.txt

@@ -1,11 +1,7 @@
-            _cfgsGroupDic.TryGetValue(cfg.combinedKey, out var list);
-            if(list != null)
-            {
-                list.Clear();
-            }
-            else
+            {cfgsGroupDicName}.TryGetValue({groupKey}, out var list);
+            if(list == null)
             {
                 list = new List<{CfgName}>();
-                _cfgsGroupDic.Add(cfg.combinedKey, list);
+                {cfgsGroupDicName}.Add({groupKey}, list);
             }
             list.Add(cfg);

+ 1 - 1
GameClient/Assets/Editor/Excel/Template/FunctionAllSingleBlock.txt

@@ -1 +1 @@
-            _cfgsDic[cfg.combinedKey] = cfg;
+            {cfgsDicName}[{combinedKey}] = cfg;

+ 3 - 7
GameClient/Assets/Editor/Excel/Template/FunctionGroup.txt

@@ -1,13 +1,9 @@
-        private void HandleCfgInGroup({CfgName} cfg)
-        {
-{FunctionAllSingleBlock}
-        }
 
-        private Dictionary<string, List<{CfgName}>> _cfgsGroupDic = new Dictionary<string, List<{CfgName}>>();
-        public List<{CfgName}> GetCfgs({params})
+        private Dictionary<string, List<{CfgName}>> {cfgsGroupDicName} = new Dictionary<string, List<{CfgName}>>();
+        public List<{CfgName}> {FunctionName}({params})
         {
             var colNames = new string[] { {colNames}};
             var colValues = new string[] { {colValues} };
-            return ConfigUtil.GetCfgs<{CfgName}>("{CfgArrayName}", colNames, colValues, _cfgsGroupDic, HandleCfgInGroup);
+            return ConfigUtil.GetCfgs<{CfgName}>("{CfgArrayName}", colNames, colValues, {cfgsGroupDicName});
         }
         

+ 5 - 4
GameClient/Assets/Editor/Excel/Template/FunctionSingle.txt

@@ -1,7 +1,8 @@
-        private Dictionary<string, {CfgName}> _cfgsDic = new Dictionary<string, {CfgName}>();
-        public {CfgName} GetCfg({params})
+        private Dictionary<string, {CfgName}> {cfgsDicName} = new Dictionary<string, {CfgName}>();
+        public {CfgName} {FunctionName}({params})
         { 
             var colNames = new string[] { {colNames}};
             var colValues = new string[] { {colValues} };
-            return ConfigUtil.GetCfg<{CfgName}>("{CfgArrayName}", colNames, colValues, _cfgsDic);
-        }
+            return ConfigUtil.GetCfg<{CfgName}>("{CfgArrayName}", colNames, colValues, {cfgsDicName});
+        }
+        

+ 4 - 4
GameClient/Assets/Game/HotUpdate/Data/CardDataManager.cs

@@ -122,7 +122,7 @@ namespace GFGGame
         public static bool isFullLv(int cardId, int lv, bool showTips = true)
         {
             CardData cardData = _cardDicByType[0][cardId];
-            if (lv >= CardRarityCfgArray.Instance.GetCfg(cardData.itemCfg.rarity).maxCardLvl && cardData.exp >= CardLvlCfgArray.Instance.GetCfg(lv, cardData.itemCfg.rarity).needExp)
+            if (lv >= CardRarityCfgArray.Instance.GetCfg(cardData.itemCfg.rarity).maxCardLvl && cardData.exp >= CardLvlCfgArray.Instance.GetCfgBycardLvlAndcardRarity(lv, cardData.itemCfg.rarity).needExp)
             {
                 if (showTips == true)
                 {
@@ -138,7 +138,7 @@ namespace GFGGame
         public static bool isFullStar(int cardId, int star, bool showTips = true)
         {
             CardData cardData = _cardDicByType[0][cardId];
-            if (CardStarCfgArray.Instance.GetCfg(cardData.itemCfg.subType, cardData.itemCfg.rarity, star + 1) == null)
+            if (CardStarCfgArray.Instance.GetCfgBycardTypeAndcardRarityAndstarLvl(cardData.itemCfg.subType, cardData.itemCfg.rarity, star + 1) == null)
             {
                 if (showTips == true)
                 {
@@ -157,7 +157,7 @@ namespace GFGGame
             showLv = curLv;
             showExp = curExp + hasExp;
             int maxLv = CardRarityCfgArray.Instance.GetCfg(rarity).maxCardLvl;
-            CardLvlCfg tCurCfg = CardLvlCfgArray.Instance.GetCfg(showLv, rarity);
+            CardLvlCfg tCurCfg = CardLvlCfgArray.Instance.GetCfgBycardLvlAndcardRarity(showLv, rarity);
             while (showExp >= tCurCfg.needExp && showLv <= maxLv)
             {
 
@@ -170,7 +170,7 @@ namespace GFGGame
                     break;
                 }
                 showLv++;
-                tCurCfg = CardLvlCfgArray.Instance.GetCfg(showLv, rarity);
+                tCurCfg = CardLvlCfgArray.Instance.GetCfgBycardLvlAndcardRarity(showLv, rarity);
                 // if (showExp < tCurCfg.needExp)
                 // {
                 //     showLv = showLv - 1;

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/DailyTaskDataManager.cs

@@ -145,7 +145,7 @@ namespace GFGGame
                     name = EctypeCfgArray.Instance.GetCfgs(taskCfg.paramsArr[0])[0].typeName;
                     if (taskCfg.paramsArr.Length > 1)
                     {
-                        name = EctypeCfgArray.Instance.GetCfg(taskCfg.paramsArr[0], taskCfg.paramsArr[1]).subName;
+                        name = EctypeCfgArray.Instance.GetCfgBytypeAndsubType(taskCfg.paramsArr[0], taskCfg.paramsArr[1]).subName;
                     }
                     return string.Format(activeRewardCfg.desc, taskCfg.count, name);
 

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Data/ScoreSystemData.cs

@@ -161,7 +161,7 @@ namespace GFGGame
             {
                 PassivitySkillCfg skillCfg = skillCfgs[i];
                 int skillLv = SkillDataManager.Instance.GetSkillLv(InstanceZonesDataManager.currentCardId, skillCfg.skillId);
-                PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv, skillCfg.skillId);
+                PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv, skillCfg.skillId);
 
                 if (partId == skillCfg.subTypes || skillCfg.subTypes == 0)
                 {

+ 9 - 9
GameClient/Assets/Game/HotUpdate/Views/Card/CardFosterView.cs

@@ -213,7 +213,7 @@ namespace GFGGame
 
             _showLv = isPreview == true ? lv : _cardData.lv;
             _showExp = isPreview == true ? exp : _cardData.exp;
-            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfg(_showLv, _cardData.itemCfg.rarity);
+            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgBycardLvlAndcardRarity(_showLv, _cardData.itemCfg.rarity);
 
             _comFosterBottom.m_barLv.max = cardLvCfg.needExp;
             _comFosterBottom.m_barLv.value = _showExp;
@@ -242,7 +242,7 @@ namespace GFGGame
         private void RenderListLvConsumeItem(int index, GObject obj)
         {
             UI_ComConsume listItem = UI_ComConsume.Proxy(obj);
-            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfg(_cardData.lv, _cardData.itemCfg.rarity);
+            CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgBycardLvlAndcardRarity(_cardData.lv, _cardData.itemCfg.rarity);
             ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(upgradeCardItemsArr[index]);
             listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg);
             listItem.m_txtNum.text = ItemDataManager.GetItemNum(itemCfg.id).ToString();
@@ -342,7 +342,7 @@ namespace GFGGame
                 return false;
             }
             int maxLv = CardRarityCfgArray.Instance.GetCfg(_cardData.itemCfg.rarity).maxCardLvl;
-            int needExp = CardLvlCfgArray.Instance.GetCfg(_showLv, _cardData.itemCfg.rarity).needExp;
+            int needExp = CardLvlCfgArray.Instance.GetCfgBycardLvlAndcardRarity(_showLv, _cardData.itemCfg.rarity).needExp;
             if (_showLv == maxLv && _comFosterBottom.m_barLv.value >= needExp)
             {
                 Timers.inst.Remove(OnTimedEvent);
@@ -475,7 +475,7 @@ namespace GFGGame
 
         private void UpdateUpStarView()
         {
-            CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
+            CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfgBycardTypeAndcardRarityAndstarLvl(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
             _comFosterBottom.m_comStar.m_c1.selectedIndex = _cardData.star;
             _comFosterBottom.m_comStar.m_c2.selectedIndex = 5;
             if (CardDataManager.isFullStar(_cardData.id, _cardData.star, false))
@@ -579,7 +579,7 @@ namespace GFGGame
         private void OnClickBtnUpStar()
         {
 
-            CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
+            CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfgBycardTypeAndcardRarityAndstarLvl(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
 
             if (_cardData.lv < cardStarCfg.needLv)
             {
@@ -612,7 +612,7 @@ namespace GFGGame
         }
         private async void UpStar()
         {
-            CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
+            CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfgBycardTypeAndcardRarityAndstarLvl(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
 
             bool result = await CardSProxy.UpgradeCardStar(_cardData.id);
             if (result)
@@ -646,7 +646,7 @@ namespace GFGGame
             item.m_txtName.text = skillCfg.name;
             item.m_txtLv.text = string.Format("{0}级", skillLv);
 
-            item.m_btnUp.visible = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv + 1, skillCfg.skillId) != null;//?  skillLv == skillScoreCfgs.Count ? false : true;
+            item.m_btnUp.visible = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv + 1, skillCfg.skillId) != null;//?  skillLv == skillScoreCfgs.Count ? false : true;
 
             if (item.m_btnUp.data == null)
             {
@@ -773,12 +773,12 @@ namespace GFGGame
         {
             if (!CardDataManager.isFullLv(_cardData.id, _cardData.lv, false))
             {
-                CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfg(_showLv, _cardData.itemCfg.rarity);
+                CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgBycardLvlAndcardRarity(_showLv, _cardData.itemCfg.rarity);
                 _comFosterBottom.m_listLvConsume.numItems = upgradeCardItemsArr.Length;
             }
             if (!CardDataManager.isFullStar(_cardData.id, _cardData.star, false))
             {
-                CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
+                CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfgBycardTypeAndcardRarityAndstarLvl(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star);
                 _comFosterBottom.m_listStarConsume.numItems = cardStarCfg.materiarsArr.Length;
 
             }

+ 4 - 4
GameClient/Assets/Game/HotUpdate/Views/Card/CardSkillView.cs

@@ -54,7 +54,7 @@ namespace GFGGame
 
             // SkillData skillData = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);
             skillCfg = PassivitySkillCfgArray.Instance.GetCfg(_skillId);// SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId);
-            skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(_skillLv, _skillId);
+            skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(_skillLv, _skillId);
 
             _ui.m_txtName.text = skillCfg.name;
             _ui.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(skillCfg.res);
@@ -66,7 +66,7 @@ namespace GFGGame
             _ui.m_c1.selectedIndex = 0;
             _skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);
             skillCfg = PassivitySkillCfgArray.Instance.GetCfg(_skillId);// SkillDataManager.Instance.GetPassivitySkillCfg(_cardId, _skillId);
-            skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(_skillLv, _skillId);
+            skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(_skillLv, _skillId);
             ET.Log.Debug("_skillLv000:" + _skillLv);
             ET.Log.Debug("skillCfg000:" + skillCfg.skillId);
             ET.Log.Debug("_skillLv000:" + skillLvCfg.skilllvl);
@@ -74,7 +74,7 @@ namespace GFGGame
             int skillLv = SkillDataManager.Instance.GetSkillLv(_cardId, _skillId);
             UpdateComLv(_ui.m_comCurLV, skillLv, skillLv + "级");
 
-            if (PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv + 1, _skillId) == null) //已满级
+            if (PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv + 1, _skillId) == null) //已满级
             {
                 _ui.m_c1.selectedIndex = 1;
                 return;
@@ -91,7 +91,7 @@ namespace GFGGame
         }
         private void UpdateComLv(UI_ComSkillDiscribe com, int lv, string title)
         {
-            PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(lv, _skillId);
+            PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(lv, _skillId);
             com.m_txtLv.text = title;
             com.m_txtDiscribe.text = string.Format(skillCfg.describe, (float)skillLvCfg.probability / 10000f * 100f, (float)skillLvCfg.count / 100f);
         }

+ 1 - 1
GameClient/Assets/Game/HotUpdate/Views/MainStory/StoryCardChoose.cs

@@ -72,7 +72,7 @@ namespace GFGGame
             if (cfg == null) return;
             int skillId = ScoreSystemData.Instance.GetShowSkillCfg(cardId).skillId;
             int skillLv = SkillDataManager.Instance.GetSkillLv(cardId, skillId);
-            PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv, skillId);
+            PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfgByskilllvlAndskillId(skillLv, skillId);
             _ui.m_txtName.text = cfg.name;
             _ui.m_txtDiscribe.text = string.Format(cfg.describe, ((float)skillLvCfg.probability / 10000f * 100), ((float)skillLvCfg.count / 10000f * 100));
         }

BIN
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes