using System; using System.Collections.Generic; using GFGGame; namespace GFGEditor { public class SuitGuideScanner { private static List suitIds = new List(); public static void StartScan() { suitIds.Clear(); var dataArray = SuitGuideMenuCfgArray.Instance.dataArray; Dictionary> tagsDic = new Dictionary>(); string strs = ""; for (int i = 0; i < dataArray.Length; i++) { SuitGuideMenuCfg cfg = dataArray[i]; string str = string.Format(";{0}", cfg.suitIds); strs += str; HandleItemAndSuitTags(cfg, tagsDic); } SQLiteHelper.Instance.OpenConnection(); try { // foreach (var cfg in dataArray) // { //SuitGuideMenuCfg cfg = dataArray[0]; //var names = new string[] { nameof(cfg.suitIds) }; //var values = new string[] { strs }; //SQLiteHelper.Instance.UpdateValues(nameof(SuitGuideMenuCfgArray), names, values, nameof(cfg.id), cfg.id.ToString()); // } //材料对应的套装id foreach (var a in tagsDic) { var names = new string[] { nameof(a.Key.tagsArr).Replace("Arr", "") }; var values = new string[] { string.Join(";", a.Value) }; SQLiteHelper.Instance.UpdateValues(nameof(SuitCfgArray), names, values, nameof(a.Key), a.Value.ToString()); } } catch (Exception e) { ET.Log.Error(e.ToString()); } finally { SQLiteHelper.Instance.CloseConnection(); } } private static void HandleItemAndSuitTags(SuitGuideMenuCfg cfg, Dictionary> tagsDic) { var suitIDList = new List(SuitCfgArray.Instance.GetSuitItems(cfg.id, true)); Dictionary tagsArr = new Dictionary(); //Dictionary> tagsSuitArr = new Dictionary>(); var suitCfg = SuitCfgArray.Instance.GetCfg(cfg.id); foreach (var id in suitIDList) { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id); for (int i = 0; i < itemCfg.tagsArr.Length; i++) { if (!tagsArr.ContainsKey(itemCfg.tagsArr[i][0])) tagsArr[itemCfg.tagsArr[i][0]] = Convert.ToInt32(itemCfg.tagsArr[i][1]); else tagsArr[itemCfg.tagsArr[i][0]] += Convert.ToInt32(itemCfg.tagsArr[i][1]); } } foreach (var info in tagsArr.Keys) { //Dictionary suitArr = new Dictionary(); string str = info + "*" + tagsArr[info]; tagsDic[suitCfg].Add(str); } } } }