using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using System.Text.RegularExpressions; using System.Linq; using Snxxz.UI; public class GeneralDefine { public static int greatMasterStartLV { get; private set; } public static int playerMaxLevel { get; private set; } public static float potentialUpSuccessRecommend { get; private set; } public static int[] kylinHomeCollectItems; public static List dailyQuestOpenTime; public static int flyBootItemId { get; private set; } public static int teamReadyTime { get; private set; } public static int elderGodAreaAngerTotal { get; private set; } public static float petRandomSpeak { get; private set; } public static int[] openJobs { get; private set; } public static int playerNameLength { get; private set; } public static int guardDungeonCageNPCID { get; private set; } public static float guardBubbleInterval { get; private set; } public static List autoOnHookMap { get; private set; } public static float autoRideHorse { get; private set; } public static Dictionary equipPlaceNameDict { get; private set; } public static Dictionary moneyDisplayIds { get; private set; } public static int expDisplayId { get; private set; } public static float xpGuideDelay { get; private set; } public static float xpGuideDuration { get; private set; } public static Dictionary trailBossHeadIcons { get; private set; } public static Dictionary godWeaponMobs { get; private set; } public static float ResetComAtkTime { get; private set; } public static int RotateSpeed { get; private set; } public static float CloseNpcDist { get; private set; } public static float FarawayNpcDist { get; private set; } public static List SpecialNpcIDs { get; private set; } public static Dictionary wingEquipLimits { get; private set; } public static float PetDanceInterval { get; private set; } public static float FuncNpcDanceInterval { get; private set; } public static float audioScaleWhenFullScreenOn { get; private set; } public static int ruinsTranscriptMapId { get; private set; } public static List GuardianPickUpID { get; private set; } public static List EarlierGetTreasure { get; private set; } public static int BossSound { get; private set; } public static Dictionary iceCrystalMonsterScores { get; private set; } public static float PlayBossHurtInterval { get; private set; } public static List NoXpDungeons { get; private set; } public static List RandomJobs { get; private set; } public static int elderGodTalkingTime { get; private set; } public static int elderGodBigBoss { get; private set; } public static List PassiveSkillShow { get; private set; } public static List bossShuntMaps { get; private set; } public static int bossShuntDays { get; private set; } public static Dictionary itemDropEffect = new Dictionary(); public static Dictionary xllyDropEffect = new Dictionary(); public static Dictionary xqryDropEffect = new Dictionary(); public static Dictionary> customDropEffect = new Dictionary>(); public static Dictionary dropEffectQuality = new Dictionary(); public static Dictionary BuffToHitEffect = new Dictionary(); //参数int,int ,string 分别表示职业,转生等级,icon static Dictionary> jobHeadPortrait = new Dictionary>(); static Dictionary> otherjobHeadPortrait = new Dictionary>(); public static Dictionary bossWearyValues = new Dictionary(); public static Dictionary NpcPosOffset = new Dictionary(); public static Dictionary propertyIconDict = new Dictionary(); public static int demonJarHintLevelLimit { get; private set; } public static int demonJarHintLineId { get; private set; } public static int skillPanelUnLock { get; private set; } public static int dailyQuestRedpointLevelLimit { get; private set; } public static int lowHpRemind { get; private set; } public static int munekadolockLimit { get; private set; } public static int maxItemDropEffectCount { get; private set; } public static int[] autoBuyItemIds; public static int[] autoBuyItemPrices; public static List neutralMaps = new List(); public static List neutralBossMaps = new List(); public static int demonJarRedPoint { get; private set; } public static string LoadLV { get; private set; } public static float mainWinSkillResetTime { get; private set; } public static int OffLineTimeLackRemendLevelLimit { get; private set; } public static Vector3 heroDialogueOffset { get; private set; } public static Vector3 heroDialogueRotation { get; private set; } public static float heroDialogueScale { get; private set; } public static List ancientGrandTotalAchievements { get; private set; } public static List ancientContinueKillAchievements { get; private set; } public static int trialDungeonGroupChallengeTipLv { get; private set; } public static int prayerRedpointLimitLv { get; private set; } public static int demonJarLevelLimit { get; private set; } public static int fairyLandGuideId = 82; public static int specialGuide41Mission { get; private set; } public static int specialGuide41Achievement { get; private set; } public static int supremeRechargeVipLv { get; private set; } public static int rechargeRedpointLv { get; private set; } public static int rechargeRedpointMinLv { get; private set; } public static int runeTowerSweepBuyTimes { get; private set; } public static int runeTowerSweepBuyPrice { get; private set; } public static int teamMatchingTimeOut { get; private set; } public static List inGameDownLoadLevelCheckPoints = null; public static List inGameDownLoadTaskCheckPoints = null; public static int inGameDownLoadHighLevel { get; private set; } public static List worldBossNoRebornRemindMaps = null; public static List bossHomeNoRebornRemindMaps = null; public static List elderGodNoRebornRemindMaps = null; public static List demonJarNoRebornRemindMaps = null; public static List dogzNoRebornRemindMaps = null; public static string[][] ModeDefaultConfig { get; private set; } public static int[][] PreloadSkillEffect { get; private set; } public static int[] RealmGroup { get; private set; } public static float PrefightAtkRange { get; private set; } public static Dictionary multipleRealmImgDict { get; private set; } public static int inGameDownLoadHighestLevelPoint { get; private set; } public static List dungeonCanUseMoneyIds { get; private set; } public static int dogzBoxLimit { get; private set; } public static Dictionary dungeonRebornClientTimes { get; private set; } public static int[] CompareEquipPlaces { get; private set; } public static Dictionary fairyGrabBossMapLines { get; private set; } public static Dictionary> DropItemEffectMapID { get; private set; } public static Dictionary> itemPutInPackDict { get; private set; } public static List RebornAutoFightMapID { get; private set; } public static string teamWorldCall; public static int teamWorldCallInviteCount; public static List ancientKingAwards = new List(); public static int lowQualityEffectCount { get; private set; } public static int medQualityEffectCount { get; private set; } public static int highQualityEffectCount { get; private set; } public static int lowQualityPetCount { get; private set; } public static int medQualityPetCount { get; private set; } public static int highQualityPetCount { get; private set; } public static int lowQualityGuardCount { get; private set; } public static int medQualityGuardCount { get; private set; } public static int highQualityGuardCount { get; private set; } public static int lowQualityPetEffectCount { get; private set; } public static int medQualityPetEffectCount { get; private set; } public static int highQualityPetEffectCount { get; private set; } public static int lowQualityHorseEffectCount { get; private set; } public static int medQualityHorseEffectCount { get; private set; } public static int highQualityHorseEffectCount { get; private set; } public static int GatherSoulDZ { get; private set; } public static int fairyLandBuffCondition { get; private set; } public static int fairyLandBuffId { get; private set; } public static int achievementEarlierStageLevel { get; private set; } public static int DemonJarAutoTime { get; private set; } public static Dictionary> SgzzRobotEquipDict { get; private set; } public static Dictionary SgzcRealm { get; private set; } public static int crossServerOneVsOneOpenDay { get; private set; } public static int UISpringDecorate { get; private set; } public static Dictionary> skillAttrIDDict { get; private set; } public static int mixServerCustomDays { get; private set; } public static float ClientPvpAttributePer { get; private set; } public static void Init() { try { CompareEquipPlaces = GetIntArray("EquipUpType"); greatMasterStartLV = GetInt("GreatMasterStartLV"); playerMaxLevel = GetInt("PlayerMaxLV"); potentialUpSuccessRecommend = GetFloat("SPSkillType", 2) * 0.0001f; kylinHomeCollectItems = GetIntArray("KirinNpc", 2); dailyQuestOpenTime = GetTimeArray("ActionTime", 1); flyBootItemId = GetInt("TransportPay"); 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(GetInputString("MoneyDisplayModel", 1)); expDisplayId = GetInt("MoneyDisplayModel", 2); openJobs = GetIntArray("OpenJob"); xpGuideDelay = GetFloat("GuideConfig"); xpGuideDuration = GetFloat("GuideConfig", 2); ResetComAtkTime = GetFloat("AtkWaitingTime"); autoOnHookMap = new List(GetIntArray("AutoOnHookMap")); GuardianPickUpID = new List(GetIntArray("GuardianPickUpID")); RotateSpeed = GetInt("RoleTurnedAngle"); CloseNpcDist = GetFloat("ConversationDistanc", 2); FarawayNpcDist = GetFloat("ConversationDistanc"); SpecialNpcIDs = new List(GetIntArray("SpecialCollectNpcs", 1)); PetDanceInterval = GetInt("PetDanceInterval") * Constants.F_GAMMA; FuncNpcDanceInterval = GetInt("PetDanceInterval", 2) * Constants.F_GAMMA; ruinsTranscriptMapId = GetInt("SpRewardMapID"); EarlierGetTreasure = new List(GetIntArray("EarlierGetTreasure")); BossSound = GetInt("BossSound"); PlayBossHurtInterval = GetFloat("BossSound", 2); var jobHeadPortraitConfig1 = FuncConfigConfig.Get("Job1Head"); jobHeadPortrait[1] = ConfigParse.GetDic(jobHeadPortraitConfig1.Numerical1); otherjobHeadPortrait[1] = ConfigParse.GetDic(jobHeadPortraitConfig1.Numerical2); var jobHeadPortraitConfig2 = FuncConfigConfig.Get("Job2Head"); jobHeadPortrait[2] = ConfigParse.GetDic(jobHeadPortraitConfig2.Numerical1); otherjobHeadPortrait[2] = ConfigParse.GetDic(jobHeadPortraitConfig2.Numerical2); var jobHeadPortraitConfig3 = FuncConfigConfig.Get("Job3Head"); jobHeadPortrait[3] = ConfigParse.GetDic(jobHeadPortraitConfig3.Numerical1); otherjobHeadPortrait[3] = ConfigParse.GetDic(jobHeadPortraitConfig3.Numerical2); bossWearyValues = ConfigParse.GetDic(GetInputString("KillBossCntLimit", 2)); wingEquipLimits = ConfigParse.GetDic(GetInputString("WingRealmLimit", 1)); int i = 0; int[] equipPlaces = GetIntArray("EquipArea", 1); string[] equipPlacesNames = GetStringArray("EquipArea", 2); equipPlaceNameDict = new Dictionary(); for (i = 0; i < equipPlaces.Length; i++) { if (!equipPlaceNameDict.ContainsKey(equipPlaces[i])) { equipPlaceNameDict.Add(equipPlaces[i], equipPlacesNames[i]); } else { DebugEx.LogError("EquipArea : 装备位置重复"); } } var _trailBossJson = LitJson.JsonMapper.ToObject(GetInputString("MuneKadoTrialBossHead", 1)); trailBossHeadIcons = new Dictionary(); foreach (var _key in _trailBossJson.Keys) { var _npcId = int.Parse(_key); if (!trailBossHeadIcons.ContainsKey(_npcId)) { trailBossHeadIcons.Add(_npcId, _trailBossJson[_key].ToString()); } } var skillPlusAttrIDJson = LitJson.JsonMapper.ToObject(GetInputString("SkillPlusAttrID", 2)); skillAttrIDDict = new Dictionary>(); 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 list = new List(); list.Add(attrId); skillAttrIDDict.Add(id, list); } else { skillAttrIDDict[id].Add(attrId); } } } var _godWeaponJson = LitJson.JsonMapper.ToObject(GetInputString("GodModel", 1)); godWeaponMobs = new Dictionary(); 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(GetInputString("IceLodeNeedPoint", 2)); NoXpDungeons = new List(GetIntArray("XpNoUseDungeon")); RandomJobs = new List(GetIntArray("RandomJob")); elderGodTalkingTime = GetInt("ElderGodTalkingTime"); elderGodBigBoss = GetInt("ElderGodBigBoss"); PassiveSkillShow = new List(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])); } var putInItemPack = FuncConfigConfig.Get("PutInItemPack"); LitJson.JsonData itemPutInData = LitJson.JsonMapper.ToObject(putInItemPack.Numerical1); itemPutInPackDict = new Dictionary>(); foreach (var _key in itemPutInData.Keys) { var itemTypeData = itemPutInData[_key]; int packType = int.Parse(_key); List itemTypes = new List(); 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 nxxdImg = FuncConfigConfig.Get("NXXDPicture"); LitJson.JsonData nxxdData = LitJson.JsonMapper.ToObject(nxxdImg.Numerical1); multipleRealmImgDict = new Dictionary(); 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(GetIntArray("BossShunt")); bossShuntDays = GetInt("BossShunt", 3); itemDropEffect.Clear(); func = FuncConfigConfig.Get("ItemEquipmentEffect"); _data = LitJson.JsonMapper.ToObject(func.Numerical1); List _keys = new List(_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 _content = null; for (i = 0; i < _keys.Count; ++i) { _content = new List(); 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"); OffLineTimeLackRemendLevelLimit = GetInt("TJGLevelLimit"); heroDialogueOffset = GetInputString("NpcHalfLength", 1).Vector3Parse(); heroDialogueRotation = GetInputString("NpcHalfLength", 2).Vector3Parse(); heroDialogueScale = GetFloat("NpcHalfLength", 3); var ancientConfig = FuncConfigConfig.Get("ElderBattleTarget"); ancientGrandTotalAchievements = new List(); ancientGrandTotalAchievements.AddRange(ConfigParse.GetMultipleStr(ancientConfig.Numerical1)); ancientContinueKillAchievements = new List(); ancientContinueKillAchievements.AddRange(ConfigParse.GetMultipleStr(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(GetIntArray("InGameDownLoad")); inGameDownLoadTaskCheckPoints = new List(GetIntArray("InGameDownLoad", 2)); inGameDownLoadHighLevel = GetInt("InGameDownLoad", 3); worldBossNoRebornRemindMaps = new List(GetIntArray("NoRebornRemindMap", 1)); bossHomeNoRebornRemindMaps = new List(GetIntArray("NoRebornRemindMap", 2)); elderGodNoRebornRemindMaps = new List(GetIntArray("NoRebornRemindMap", 3)); demonJarNoRebornRemindMaps = new List(GetIntArray("NoRebornRemindMap", 4)); dogzNoRebornRemindMaps = new List(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(GetIntArray("FBEnterTickeyAuto", 1)); dungeonRebornClientTimes = ConfigParse.GetDic(GetInputString("DuplicatesRebornTime", 2)); dogzBoxLimit = GetInt("DogzBoxLimit"); fairyGrabBossMapLines = ConfigParse.GetDic(GetInputString("MapLine", 2)); var grabBossMaps = fairyGrabBossMapLines.Keys.ToList(); foreach (var _key in grabBossMaps) { fairyGrabBossMapLines[_key] = fairyGrabBossMapLines[_key] - 1; } if (DropItemEffectMapID == null) { DropItemEffectMapID = new Dictionary>(); } 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()); } 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(mapIDs); teamWorldCall = GetInputString("TeamWorldCall"); teamWorldCallInviteCount = GetInt("TeamWorldCall", 2); var ancientKingAwradConfig = FuncConfigConfig.Get("ElderBattlefieldTopAward"); if (ancientKingAwradConfig != null) { var itemArray = LitJson.JsonMapper.ToObject(ancientKingAwradConfig.Numerical1); for (int k = 0; k < itemArray.Length; k++) { ancientKingAwards.Add(new Item() { id = itemArray[k][0], count = itemArray[k][1], bind = itemArray[k][2] == 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>(); 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(); 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); } } GatherSoulDZ = GetInt("GatherSoulDZ"); if (SgzcRealm == null) { SgzcRealm = new Dictionary(); 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]); } } crossServerOneVsOneOpenDay = GetInt("CrossRealmCfg"); UISpringDecorate = GetInt("UISpringDecorate"); mixServerCustomDays = GetInt("MixServer"); ClientPvpAttributePer = GetInt("ClientPvPAttributePer") * Constants.F_DELTA; } catch (Exception ex) { Debug.LogError(ex); } } public static string GetJobHeadPortrait(int _job, int _ReincarnationLv) { if (jobHeadPortrait.ContainsKey(_job) && jobHeadPortrait[_job].ContainsKey(_ReincarnationLv)) { return jobHeadPortrait[_job][_ReincarnationLv]; } else { return string.Empty; } } public static List GetAttrIdsBySkill(int _skillId) { if (skillAttrIDDict.ContainsKey(_skillId)) { return skillAttrIDDict[_skillId]; } return null; } public static string GetOtherJobHeadPortrait(int _job, int _ReincarnationLv) { if (otherjobHeadPortrait.ContainsKey(_job) && otherjobHeadPortrait[_job].ContainsKey(_ReincarnationLv)) { return otherjobHeadPortrait[_job][_ReincarnationLv]; } else { return string.Empty; } } public static PackType GetPackTypeByItemType(int itemType) { foreach (var key in itemPutInPackDict.Keys) { var types = itemPutInPackDict[key]; if (types.Contains(itemType)) { return (PackType)key; } } return PackType.Item; } private static int GetInt(string _key, int _index = 1) { var result = 0; int.TryParse(GetInputString(_key, _index), out result); return result; } private static float GetFloat(string _key, int _index = 1) { var result = 0f; float.TryParse(GetInputString(_key, _index), out result); return result; } private static bool GetBool(string _key, int _index = 1) { var result = false; bool.TryParse(GetInputString(_key, _index), out result); return result; } private static int[] GetIntArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new int[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { int.TryParse(stringArray[i], out result[i]); } return result; } private static string[] GetStringArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new string[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { result[i] = stringArray[i]; } return result; } private static float[] GetFloatArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new float[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { float.TryParse(stringArray[i], out result[i]); } return result; } private static bool[] GetBoolArray(string _key, int _index = 1) { var inputString = GetInputString(_key, _index); var stringArray = inputString.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); if (stringArray.Length == 0) { return null; } var result = new bool[stringArray.Length]; for (int i = 0; i < stringArray.Length; i++) { bool.TryParse(stringArray[i], out result[i]); } return result; } private static List GetTimeArray(string _key, int _index = 1) { var configContent = GetInputString(_key, _index); var stringArray = configContent.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); var timeList = new List(); for (int i = 0; i < stringArray.Length; i++) { var input = stringArray[i]; var matches = Regex.Matches(input, "[0-9]{1,2}"); var hour = matches.Count > 0 ? int.Parse(matches[0].Value) : 0; var minute = matches.Count > 1 ? int.Parse(matches[1].Value) : 0; timeList.Add(hour * 60 + minute); } return timeList; } private static string GetInputString(string _key, int _index = 1) { var config = FuncConfigConfig.Get(_key); var inputString = string.Empty; switch (_index) { case 1: inputString = config.Numerical1; break; case 2: inputString = config.Numerical2; break; case 3: inputString = config.Numerical3; break; case 4: inputString = config.Numerical4; break; case 5: inputString = config.Numerical5; break; } return inputString; } }