using System; using System.Collections.Generic; using System.Linq; using System.Text; using GFGGame; namespace GFGEditor { public class InstanceZonesScanner { //计算每个副本的关卡数 private static Dictionary levelCountDIc = new Dictionary(); public static void StartScan() { var dataArray = StoryLevelCfgArray.Instance.dataArray; SQLiteHelper.Instance.OpenConnection(); try { foreach (var cfg in dataArray) { var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.chapterId); levelCountDIc.TryGetValue(key, out var count); count++; levelCountDIc[key] = count; var names = new string[] { nameof(cfg.order) }; var values = new string[] { "" + count }; SQLiteHelper.Instance.UpdateValues(nameof(StoryLevelCfgArray), names, values, nameof(cfg.id), cfg.id.ToString()); } } catch (Exception e) { ET.Log.Error(e.ToString()); } finally { SQLiteHelper.Instance.CloseConnection(); } //写入 WriteStoryChapter(); WriteStudioChapter(); } public static void WriteStoryChapter() { //写入 var dataArray = StoryChapterCfgArray.Instance.dataArray; SQLiteHelper.Instance.OpenConnection(); try { foreach (var cfg in dataArray) { var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.id); levelCountDIc.TryGetValue(key, out var count); var names = new string[] { nameof(cfg.levelCount) }; var values = new string[] { "" + count }; SQLiteHelper.Instance.UpdateValues(nameof(StoryChapterCfgArray), names, values, nameof(cfg.id), cfg.id.ToString()); } } catch (Exception e) { ET.Log.Error(e.ToString()); } finally { SQLiteHelper.Instance.CloseConnection(); } } public static void WriteStudioChapter() { //写入 var dataArray = StudioCfgArray.Instance.dataArray; SQLiteHelper.Instance.OpenConnection(); try { foreach (var cfg in dataArray) { var key = CalculateHelper.GenerateInstanceZonesLevelStateKey(cfg.type, cfg.subType, cfg.id); levelCountDIc.TryGetValue(key, out var count); var names = new string[] { nameof(cfg.levelCount) }; var values = new string[] { "" + count }; SQLiteHelper.Instance.UpdateValues(nameof(StudioCfgArray), names, values, nameof(cfg.id), cfg.id.ToString()); } } catch (Exception e) { throw (e); } finally { SQLiteHelper.Instance.CloseConnection(); } } } }