ConfigName = { AccomplishmentConfig = "AccomplishmentConfig", ActivityRewardConfig = "ActivityRewardConfig", AdventureConfig = "AdventureConfig", AreaConfig = "AreaConfig", ArtResourcesConfig = "ArtResourcesConfig", AudioConfig = "AudioConfig", ArroGantFly = "ArroGantFly", ChallengeConfig = "ChallengeConfig", ChallengeMapConfig = "ChallengeMapConfig", ChallengeMissionConfig = "ChallengeMissionConfig", ChapterEventPointConfig = "ChapterEventPointConfig", ChapterOptionConfig = "ChapterOptionConfig", DifferDemonsComonpentsConfig = "DifferDemonsComonpentsConfig", DifferDemonsConfig = "DifferDemonsConfig", DifferDemonsStageConfig = "DifferDemonsStageConfig", EquipConfig = "EquipConfig", EquipPropertyPool = "EquipPropertyPool", EventPointConfig = "EventPointConfig", ExploreFunctionConfig = "ExploreFunctionConfig", FoodsConfig = "FoodsConfig", CampWarRewardConfig="CampWarRewardConfig", GameSetting = "GameSetting", GlobalActivity = "GlobalActivity", GlobalSystemConfig = "GlobalSystemConfig", GuideConfig = "GuideConfig", HeroConfig = "HeroConfig", HeroLevelConfig = "HeroLevelConfig", HeroRankupConfig = "HeroRankupConfig", HeroRankupGroup = "HeroRankupGroup", ItemConfig = "ItemConfig", LevelDifficultyConfig = "LevelDifficultyConfig", LevelSetting = "LevelSetting", LotteryRewardConfig = "LotteryRewardConfig", LotterySetting = "LotterySetting", LotterySpecialConfig = "LotterySpecialConfig", MapPointConfig = "MapPointConfig", MissionEventsConfig = "MissionEventsConfig", MonsterConfig = "MonsterConfig", MonsterGroup = "MonsterGroup", MonsterViewConfig = "MonsterViewConfig", OptionAddCondition = "OptionAddCondition", OptionConfig = "OptionConfig", PassiveSkillConfig = "PassiveSkillConfig", PassiveSkillLogicConfig = "PassiveSkillLogicConfig", PlayerLevelConfig = "PlayerLevelConfig", PropertyConfig = "PropertyConfig", RewardGroup = "RewardGroup", RoleConfig = "RoleConfig", RunesConfig = "RunesConfig", RunesPoolConfig = "RunesPoolConfig", SkillConfig = "SkillConfig", SkillLogicConfig = "SkillLogicConfig", StoreConfig = "StoreConfig", StoreTypeConfig = "StoreTypeConfig", UIConfig = "UIConfig", VipLevelConfig = "VipLevelConfig", PrivilegeTypeConfig = "PrivilegeTypeConfig", TaskConfig = "TaskConfig", WorkShopEquipmentConfig = "WorkShopEquipmentConfig", WorkShopFoundationConfig = "WorkShopFoundationConfig", WorkShopFunctionConfig = "WorkShopFunctionConfig", WorkShopRebuildConfig = "WorkShopRebuildConfig", WorkShopSetting = "WorkShopSetting", ArenaReward = "ArenaReward", ArenaSetting = "ArenaSetting", DifferDemonsBoxSetting = "DifferDemonsBoxSetting", AdventureReward = "AdventureReward", DialogueViewConfig = "DialogueViewConfig", JumpConfig = "JumpConfig", RechargeCommodityConfig = "RechargeCommodityConfig", DailyTasksConfig = "DailyTasksConfig", WorkShopTechnology = "WorkShopTechnology", WorkShopTechnologySetting = "WorkShopTechnologySetting", ChallengeStarBox = "ChallengeStarBox", TrialConfig = "TrialConfig", TrialSetting = "TrialSetting", BlessingConfig = "BlessingConfig", BlessingRewardPool = "BlessingRewardPool", ElementalResonanceConfig = "ElementalResonanceConfig", TreasureTaskConfig = "TreasureTaskConfig", EndlessMapConfig = "EndlessMapConfig", SevenDaysActivity = "SevenDaysActivity", LuckyCatConfig = "LuckyCatConfig", SignInConfig = "SignInConfig", BeginnerTask = "BeginnerTask", GuildSetting = "GuildSetting", GuildLevelConfig = "GuildLevelConfig", GuildRewardConfig = "GuildRewardConfig", ActivityRankingReward = "ActivityRankingReward", ExchangeActivityConfig = "ExchangeActivityConfig", FloodConfig = "FloodConfig", LoginPosterConfig = "LoginPosterConfig", QAConfig = "QAConfig", BeStronger = "BeStronger", SpecialConfig = "SpecialConfig", EquipSign="EquipSign", EquipTalismana = "EquipTalismana", EquipTalismanaRankup = "EquipTalismanaRankup", EquipTalismanaLottery = "EquipTalismanaLottery", EquipSignSetting = "EquipSignSetting", BloodyBattleSetting = "BloodyBattleSetting", BloodyBattleReward = "BloodyBattleReward", BloodyBattleTask = "BloodyBattleTask", BloodyBattleTreasure = "BloodyBattleTreasure", BloodyRankConfig = "BloodyRankConfig", RandomName = "RandomName", MainLevelConfig = "MainLevelConfig", MainLevelSettingConfig = "MainLevelSettingConfig", HeroReturn = "HeroReturn", TreasureSunLongConfig = "TreasureSunlongConfig", TreasureSunLongTaskConfig = "TreasureSunlongTaskConfig", DialRewardSetting = "DialRewardSetting", DialRewardConfig = "DialRewardConfig", MainMapIconConfig = "MainMapIconConfig", ErrorCodeHint = "ErrorCodeHint", SystemMessageConfig = "SystemMessageConfig", ActivityDropReward = "ActivityDropReward", PlayerAppearance = "PlayerAppearance", PlayerMountLevelUp = "PlayerMountLevelUp", MazeTreasure = "MazeTreasure", MazeTreasureSetting = "MazeTreasureSetting", ChampionshipReward = "ChampionshipReward", ChampionshipSetting = "ChampionshipSetting", LuxuryFundConfig = "LuxuryFund", PlayerRole = "PlayerRole", GuildBossConfig = "GuildBossConfig", GuildBossRewardConfig = "GuildBossRewardConfig", GuildRedPackConfig = "GuildRedPackConfig", ExpeditionFloorConfig = "ExpeditionFloorConfig", ExpeditionHolyConfig = "ExpeditionHolyConfig", ExpeditionSetting = "ExpeditionSetting", ExpeditionNodeConfig = "ExpeditionNodeConfig", AchievementConfig = "AchievementConfig", MonthcardConfig = "MonthcardConfig", EquipStarsConfig = "EquipStarsConfig", CombatControl = "CombatControl", EquipSuiteConfig = "EquipSuiteConfig", BuffEffectConfig = "BuffEffectConfig", RecommendTeam = "RecommendTeam", JewelConfig = "JewelConfig", JewelRankupConfig = "JewelRankupConfig", JewelResonanceConfig = "JewelResonanceConfig", DailyChallengeConfig = "DailyChallengeConfig", GuildTechnology = "GuildTechnology", WorldBossConfig = "WorldBossConfig", WorldBossRewardConfig = "WorldBossRewardConfig", WorldBossSetting = "WorldBossSetting", GuildSacrificeConfig = "GuildSacrificeConfig", GuildSacrificeRewardConfig = "GuildSacrificeRewardConfig", GuildWarConfig = "GuildWarConfig", GuildHelpConfig = "GuildHelpConfig", WorldBossTreasureConfig = "WorldBossTreasureConfig", TrialKillConfig = "TrialKillConfig", TrialQuestionConfig = "TrialQuestionConfig", TrialGameConfig = "TrialGameConfig", FakeBattle = "FakeBattle", ArenaBattleReward = "ArenaBattleReward", RaceTowerConfig = "RaceTowerConfig", RaceTowerRewardConfig = "RaceTowerRewardConfig", HeroSacrifice = "HeroSacrifice", TurretRotationConfig = "TurretRotationConfig", TurretEffectRotationConfig = "TurretEffectRotationConfig", FormationConfig = "FormationConfig", UnlockSkill = "UnlockSkill", ArtifactConfig = "ArtifactConfig", ArtifactLevelConfig = "ArtifactLevelConfig", ArtifactRefineConfig = "ArtifactRefineConfig", ArtifactSkillConfig = "ArtifactSkillConfig", ArtifactSoulConfig = "ArtifactSoulConfig", AdjutantChatConfig = "AdjutantChatConfig", AdjutantConfig = "AdjutantConfig", AdjutantHandselConfig = "AdjutantHandselConfig", AdjutantSkillConfig = "AdjutantSkillConfig", AdjutantTeachConfig = "AdjutantTeachConfig", BattleEventConfig = "BattleEventConfig", GeneralConfig = "GeneralConfig", GeneralLevelConfig = "GeneralLevelConfig", GeneralStepConfig = "GeneralStepConfig", FormationBuffConfig = "FormationBuffConfig", WarWaySkillConfig = "WarWaySkillConfig", CombatPlanConfig = "CombatPlanConfig", CombatPlanPromotion = "CombatPlanPromotion", CombatPlanSkillGroup = "CombatPlanSkillGroup", CombatPlanPropertyGroup = "CombatPlanPropertyGroup", VirtualBattle = "VirtualBattle", VirtualEliteBattle = "VirtualEliteBattle", VirtualEliteShop = "VirtualEliteShop", VirtualStarReward = "VirtualStarReward", VirtualTargetReward = "VirtualTargetReward", HeroRankConfig = "HeroRankConfig", HeroStarConfig = "HeroStarConfig", HeroStarBackConfig = "HeroStarBackConfig", HeroExchangeConfig = "HeroExchangeConfig", GuildCheckpointConfig = "GuildCheckpointConfig", GuildActiveConfig = "GuildActiveConfig", GuildActiveTaskConfig = "GuildActiveTaskConfig", SupremacyLevelConfig = "SupremacyLevelConfig", SupremacyConfig = "SupremacyConfig", GuildCheckpointRank = "GuildCheckpointRank", ThemeActivityTaskConfig = "ThemeActivityTaskConfig", ExchangeRate = "ExchangeRate", SpiritAnimal = "SpiritAnimal", SpiritAnimalBook = "SpiritAnimalBook", SpiritAnimalLevel = "SpiritAnimalLevel", SpiritAnimalStar = "SpiritAnimalStar", SpiritAnimalSetting = "SpiritAnimalSetting", SpiritAnimalSkill = "SpiritAnimalSkill", GodSacrificeConfig = "GodSacrificeConfig", GodSacrificeSetting = "GodSacrificeSetting", Language = "Language", DefTrainingConfig = "DefTrainingConfig", DefTrainingRanking = "DefTrainingRanking", DefTrainingBuff = "DefTrainingBuff", BlitzBoxAwards = "BlitzBoxAwards", BlitzConfig = "BlitzConfig", BlessingConfigNew = "BlessingConfigNew", BlitzType = "BlitzType", BlessingRewardPoolNew = "BlessingRewardPoolNew", SpiritAnimalSummon = "SpiritAnimalSummon", WorldHurtRewardConfig = "WorldHurtRewardConfig", MedalConfig = "MedalConfig", ActivityGroups = "ActivityGroups", MedalSuitConfig = "MedalSuitConfig", MedalSuitType = "MedalSuitType", MedalRefineLock ="MedalRefineLock", endlessMorale = "EndlessMorale", EndlessTask = "EndlessTask", AlameinLevel = "AlameinLevel", endlessTreasure = "EndlessTreasure", AlameinChapter = "AlameinChapter", UniversalConditions = "UniversalConditions", SkyLadderReward = "SkyLadderReward", SkyLadderRoleConfig = "SkyLadderRoleConfig", MotherShipPlaneBlueprint = "MotherShipPlaneBlueprint", MotherShipResearchPlus = "MotherShipResearchPlus", MotherShipPlaneConfig = "MotherShipPlaneConfig", MotherShipConfig = "MotherShipConfig", MotherShipResearch = "MotherShipResearch", EpicBattleConfig = "EpicBattleConfig", FakeBattleNew = "FakeBattleNew", GuideTaskConfig = "GuideTaskConfig", TitleConfig = "TitleConfig", InvestigateConfig = "InvestigateConfig", AdjustConfig = "AdjustConfig", AcitvityShow = "AcitvityShow", ExpeditionTotemConfig = "ExpeditionTotemConfig", ExpeditionTotemTypeConfig = "ExpeditionTotemTypeConfig", EndlessDifficulty = "EndlessDifficulty", VirtualEliteShopDisplayControl = "VirtualEliteShopDisplayControl", ArenaRobotConfig = "ArenaRobotConfig", FreeTravel = "FreeTravel", FreeTravelStore = "FreeTravelStore", LayerPoolConfig = "LayerPoolConfig", ActivityStoreConfig = "ActivityStoreConfig", MultiLanguage = "MultiLanguage", BattlePassReward = "BattlePassReward", BattlePassShow = "BattlePassShow", BattlePassTask = "BattlePassTask", BattlePassConfig = "BattlePassConfig", WordExchangeConfig = "WordExchangeConfig", AfkSpeak = "AfkSpeak", MainPlanePoint = "MainPlanePoint", ThousandDrawConfig = "ThousandDrawConfig", BoxPoolConfig = "BoxPoolConfig", RankingRewardConfig = "RankingRewardConfig", ActivityChapterConfig = "ActivityChapterConfig", ActivityLevelConfig = "ActivityLevelConfig", AcitvityShowTheme = "AcitvityShowTheme", WishPoolConfig = "WishPoolConfig", WishActivityRelation = "WishActivityRelationConfig", WishTaskRewardConfig = "WishTaskRewardConfig", ChannelRechargeIdConfig = "ChannelRechargeIdConfig", ChannelConfig = "ChannelConfig", GuildWarRewardConfig = "GuildWarRewardConfig", GuildWarSetting = "GuildWarSetting", GuildWarRewardBOX = "GuildWarRewardBOX", TrainTask = "TrainTask", EncouragePlanConfig = "EncouragePlanConfig", EncourageTaskConfig = "EncourageTaskConfig", DeValueConfig = "DeValueConfig", ChosenOptionConfig = "ChosenOptionConfig", ChosenPoolConfig = "ChosenPoolConfig", CashPointDial = "CashPointDial", CashPointTaskConfig = "CashPointTaskConfig", TequanCardConfig = "TequanCardConfig", DailyOnlineTaskConfig = "DailyOnlineTaskConfig", DeValueShow = "DeValueShow", UpViewConfig = "UpViewConfig", LanguagePrivacy = "LanguagePrivacy", BaseFatigueConfig = "BaseFatigueConfig", BaseResourceConfig = "BaseResourceConfig", BaseLevelConfig = "BaseLevelConfig", BaseAttachmentConfig = "BaseAttachmentConfig", PowerCenterConfig = "PowerCenterConfig", ExpressionConfig = "ExpressionConfig", SeasonConfig = "SeasonConfig", SeasonTaskConfig = "SeasonTaskConfig", } require "Framework/GameDataBase" local configList = {} ConfigManager = {} function ConfigManager.Initialize() configList = {} for k, v in pairs(ConfigName) do if v ~= ConfigName.Language then _G["G_"..v] = ConfigManager.GetConfig(v) end end end function ConfigManager.GetConfig(cfgType) if not configList[cfgType] then local config = require("Config/Data/" .. cfgType) GameDataBase.SheetBase.Init(config) configList[cfgType] = config end return configList[cfgType] end ---获取表格Id项 function ConfigManager.GetConfigData(cfgType, id) local config = ConfigManager.GetConfig(cfgType)[id] if not config then LogRed(string.format("打印:表:%s|找不到ID:%s", cfgType, id)) end -- assert(config, string.format("%s not find Id:%s", cfgType, id)) return config end ---获取表格Id项不返回错误 function ConfigManager.TryGetConfigData(cfgType, id) return ConfigManager.GetConfig(cfgType)[id] end ---获取某个key值为value的固定表格条目(取第一个) function ConfigManager.GetConfigDataByKey(cfgType, key, value) local configData for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key] == value then configData = configInfo break end end if not configData then LogRed(string.format("打印:表:%s|找不到字段:%s |值:%s", cfgType, key, value)) end -- assert(configData, string.format("%s not find key:%s,value:%s", cfgType, key, value)) return configData end ---获取某个key值为value的固定表格条目(取第一个),不返回错误 function ConfigManager.TryGetConfigDataByKey(cfgType, key, value) local configData for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key] == value then configData = configInfo break end end return configData end ---获取双重Key锁定下的表格条目(取第一个) function ConfigManager.GetConfigDataByDoubleKey(cfgType, key1, value1, key2, value2) local configData for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key1] == value1 and configInfo[key2] == value2 then configData = configInfo break end end if not configData then LogRed(string.format("打印:表:%s|找不到字段:%s |值:%s|字段:%s |值:%s", cfgType, key1, value1, key2, value2)) end -- assert(configData, string.format("%s not find key1:%s,value1:%s,key2:%s, value2:%s", cfgType, key1, value1, key2, value2)) return configData end ---获取双重Key锁定下的表格条目(取第一个),不返回错误 function ConfigManager.TryGetConfigDataByDoubleKey(cfgType, key1, value1, key2, value2) local configData for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key1] == value1 and configInfo[key2] == value2 then configData = configInfo break end end return configData end ---获取三重Key锁定下的表格条目(取第一个),不返回错误 function ConfigManager.TryGetConfigDataByThreeKey(cfgType, key1, value1, key2, value2,key3, value3) local configData for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key1] == value1 and configInfo[key2] == value2 and configInfo[key3] == value3 then configData = configInfo break end end return configData end ---获取某个key值为value的所有条目 function ConfigManager.GetAllConfigsDataByKey(cfgType, key, value) local expectList = {} for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key] == value then table.insert(expectList, configInfo) end end if #expectList <= 0 then LogRed(string.format("打印:表:%s|找不到字段:%s |值:%s", cfgType, key, value)) end -- assert(#expectList > 0, string.format("%s not find key:%s,value:%s", cfgType, key, value)) return expectList end ---获取双重Key锁定下所有的表格条目 function ConfigManager.GetAllConfigsDataByDoubleKey(cfgType, key1, value1, key2, value2) local expectList = {} for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key1] == value1 and configInfo[key2] == value2 then table.insert(expectList, configInfo) end end if #expectList <= 0 then LogRed(string.format("打印:表:%s|找不到字段:%s |值:%s|字段:%s |值:%s", cfgType, key1, value1, key2, value2)) end -- assert(#expectList > 0, string.format("%s not find key1:%s,value1:%s,key2:%s, value2:%s", cfgType, key1, value1, key2, value2)) return expectList end ---获取三重Key锁定下所有的表格条目 function ConfigManager.GetAllConfigsDataByThreeKey(cfgType, key1, value1, key2, value2, key3, value3) local expectList = {} for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do if configInfo[key1] == value1 and configInfo[key2] == value2 and configInfo[key3] == value3 then table.insert(expectList, configInfo) end end if #expectList <= 0 then LogRed(string.format("打印:表:%s|找不到字段:%s |值:%s|字段:%s |值:%s|字段:%s |值:%s", cfgType, key1, value1, key2, value2, key3, value3)) end -- assert(#expectList > 0, string.format("%s not find key1:%s,value1:%s,key2:%s, value2:%s,key3:%s, value3:%s", cfgType, key1, value1, key2, value2, key3, value3)) return expectList end ---配置表遍历(按照id的大小升序遍历) ---用法: ---for k, v in ConfigPairs(configs) do --- k 为id --- v 为id对应的配置项 ---end function ConfigPairs(configs) local i = 0 local keys = GameDataBase.SheetBase.GetKeys(configs) return function() i = i + 1 local key = keys[i] if key then return key, configs[key] end end end function ConfigDatasSortByKey(configs, sortkey) local data = {} for key, value in ConfigPairs(configs) do table.insert(data, value) end table.sort(data, function(a, b) return a[sortkey] < b[sortkey] end) return data end --获取索引表数据 function ConfigManager.GetAllConfigsData(cfgType) local allList = {} for _, configInfo in ConfigPairs(ConfigManager.GetConfig(cfgType)) do table.insert(allList, configInfo) end return allList end