using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using LitJson; 
 | 
using System; 
 | 
using System.Text.RegularExpressions; 
 | 
using System.Linq; 
 | 
  
 | 
public class GeneralDefine 
 | 
{ 
 | 
    public static Dictionary<int, int> MoneyDisplayModel { get; private set; } 
 | 
    public static int playerMaxLevel { get; private set; } 
 | 
     
 | 
    public static int expDisplayId { get; private set; } 
 | 
     
 | 
  
 | 
    //参数int,int ,string 分别表示职业,转生等级,icon 
 | 
    static Dictionary<int, Dictionary<int, string>> jobHeadPortrait = new Dictionary<int, Dictionary<int, string>>(); 
 | 
    static Dictionary<int, Dictionary<int, string>> otherjobHeadPortrait = new Dictionary<int, Dictionary<int, string>>(); 
 | 
     
 | 
  
 | 
    public static int rechargeRedpointLv { get; private set; } 
 | 
    public static int rechargeRedpointMinLv { get; private set; } 
 | 
  
 | 
     
 | 
    public static List<int> inGameDownLoadLevelCheckPoints = null; 
 | 
    public static List<int> inGameDownLoadTaskCheckPoints = null; 
 | 
    public static int inGameDownLoadHighLevel { get; private set; } 
 | 
     
 | 
    public static int[] CompareEquipPlaces { get; private set; } 
 | 
    public static Dictionary<int, List<int>> itemPutInPackDict { get; private set; } 
 | 
    public static Dictionary<int, int> itemMoneyCountDict { get; private set; } //背包中用于展示货币数量的物品 
 | 
     
 | 
    public static int UISpringDecorate { get; private set; } 
 | 
    public static Dictionary<int, List<int>> skillAttrIDDict { get; private set; } 
 | 
     
 | 
    public static int mysteryShopRefreshInterval { get; private set; } 
 | 
     
 | 
    public static int acutionItemHour { get; private set; } 
 | 
    public static int maxXBGridCount { get; private set; } 
 | 
  
 | 
    public static FuncConfigConfig parryCfg; 
 | 
  
 | 
    public static void Init() 
 | 
    { 
 | 
        try 
 | 
        { 
 | 
            MoneyDisplayModel = ConfigParse.ParseIntDict(GetInputString("MoneyDisplayModel", 1)); 
 | 
            // equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0]; 
 | 
            // equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1]; 
 | 
  
 | 
            // normalEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 2)[0]; 
 | 
            // normalEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 2)[1]; 
 | 
  
 | 
            // suitEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 3)[0]; 
 | 
            // suitEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 3)[1]; 
 | 
  
 | 
            // BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel"); 
 | 
            // initDepotGridCount = GetInt("InitDepotCellCount"); 
 | 
            // maxDepotGridCount = GetInt("MaxDepotCellCount"); 
 | 
            // maxBagGridCount = GetInt("MaxBagCellCount"); 
 | 
            // maxXBGridCount = GetInt("TreasureSet", 3); 
 | 
  
 | 
            // CompareEquipPlaces = GetIntArray("EquipUpType"); 
 | 
            // playerMaxLevel = GetInt("PlayerMaxLV"); 
 | 
            // kylinHomeCollectItems = GetIntArray("KirinNpc", 2); 
 | 
            // dailyQuestOpenTime = GetTimeArray("ActionTime", 1); 
 | 
            // flyBootItemId = GetInt("TransportPay"); 
 | 
            // flyBootItemMoney = GetInt("TransportPay", 2); 
 | 
            // 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<int, int>(GetInputString("MoneyDisplayModel", 1)); 
 | 
            // expDisplayId = GetInt("MoneyDisplayModel", 2); 
 | 
            // openJobs = GetIntArray("OpenJob"); 
 | 
            // xpGuideDelay = GetFloat("GuideConfig"); 
 | 
            // xpGuideDuration = GetFloat("GuideConfig", 2); 
 | 
            // ResetComAtkTime = GetFloat("AtkWaitingTime"); 
 | 
            // autoOnHookMap = new List<int>(GetIntArray("AutoOnHookMap")); 
 | 
            // GuardianPickUpID = new List<int>(GetIntArray("GuardianPickUpID")); 
 | 
            // ArenaSetList = new List<int>(GetIntArray("ArenaSet")); 
 | 
            // RotateSpeed = GetInt("RoleTurnedAngle"); 
 | 
            // CloseNpcDist = GetFloat("ConversationDistanc", 2); 
 | 
            // FarawayNpcDist = GetFloat("ConversationDistanc"); 
 | 
            // SpecialNpcIDs = new List<int>(GetIntArray("SpecialCollectNpcs", 1)); 
 | 
            // PetDanceInterval = GetInt("PetDanceInterval") * Constants.F_GAMMA; 
 | 
            // FuncNpcDanceInterval = GetInt("PetDanceInterval", 2) * Constants.F_GAMMA; 
 | 
            // ruinsTranscriptMapId = GetInt("SpRewardMapID"); 
 | 
            // EarlierGetTreasure = new List<int>(GetIntArray("EarlierGetTreasure")); 
 | 
            // BossSound = GetInt("BossSound"); 
 | 
            // PlayBossHurtInterval = GetFloat("BossSound", 2); 
 | 
            // var jobHeadPortraitConfig1 = FuncConfigConfig.Get("Job1Head"); 
 | 
            // jobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical1); 
 | 
            // otherjobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical2); 
 | 
  
 | 
            // var jobHeadPortraitConfig2 = FuncConfigConfig.Get("Job2Head"); 
 | 
            // jobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical1); 
 | 
            // otherjobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical2); 
 | 
  
 | 
            // var jobHeadPortraitConfig3 = FuncConfigConfig.Get("Job3Head"); 
 | 
            // jobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical1); 
 | 
            // otherjobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical2); 
 | 
  
 | 
            // bossWearyValues = ConfigParse.GetDic<int, int>(GetInputString("KillBossCntLimit", 2)); 
 | 
            // wingEquipLimits = ConfigParse.GetDic<int, int>(GetInputString("WingRealmLimit", 1)); 
 | 
            // int i = 0; 
 | 
            // int[] equipPlaces = GetIntArray("EquipArea", 1); 
 | 
            // var _trailBossJson = LitJson.JsonMapper.ToObject(GetInputString("MuneKadoTrialBossHead", 1)); 
 | 
            // trailBossHeadIcons = new Dictionary<int, string>(); 
 | 
            // foreach (var _key in _trailBossJson.Keys) 
 | 
            // { 
 | 
            //     var _npcId = int.Parse(_key); 
 | 
            //     if (!trailBossHeadIcons.ContainsKey(_npcId)) 
 | 
            //     { 
 | 
            //         trailBossHeadIcons.Add(_npcId, _trailBossJson[_key].ToString()); 
 | 
            //     } 
 | 
            // } 
 | 
            // FuncConfigConfig HorseTrainConfig = FuncConfigConfig.Get("HorseTrain"); 
 | 
            // HorseTrainIDList = LitJson.JsonMapper.ToObject<int[]>(HorseTrainConfig.Numerical1); 
 | 
            // FuncConfigConfig PetTrainConfig = FuncConfigConfig.Get("PetUpItem"); 
 | 
            // PetTrainIDList = LitJson.JsonMapper.ToObject<int[]>(PetTrainConfig.Numerical3); 
 | 
            // FuncConfigConfig LingQiTrainConfig = FuncConfigConfig.Get("HorseTrain"); 
 | 
            // var LingQiTrainJson = LitJson.JsonMapper.ToObject(GetInputString("LingQiTrain", 1)); 
 | 
            // LingQiTrainIDList = new Dictionary<int, List<int>>(); 
 | 
            // foreach (var key in LingQiTrainJson.Keys) 
 | 
            // { 
 | 
            //     int attrId = int.Parse(key); 
 | 
            //     var skillIds = LingQiTrainJson[key]; 
 | 
            //     foreach (var skillId in skillIds) 
 | 
            //     { 
 | 
            //         int id = int.Parse(skillId.ToString()); 
 | 
            //         if (!LingQiTrainIDList.ContainsKey(attrId)) 
 | 
            //         { 
 | 
            //             List<int> list = new List<int>(); 
 | 
            //             list.Add(id); 
 | 
            //             LingQiTrainIDList.Add(attrId, list); 
 | 
            //         } 
 | 
            //         else 
 | 
            //         { 
 | 
            //             LingQiTrainIDList[attrId].Add(id); 
 | 
            //         } 
 | 
            //     } 
 | 
  
 | 
            // } 
 | 
  
 | 
            // var skillPlusAttrIDJson = LitJson.JsonMapper.ToObject(GetInputString("SkillPlusAttrID", 2)); 
 | 
            // skillAttrIDDict = new Dictionary<int, List<int>>(); 
 | 
            // 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<int> list = new List<int>(); 
 | 
            //             list.Add(attrId); 
 | 
            //             skillAttrIDDict.Add(id, list); 
 | 
            //         } 
 | 
            //         else 
 | 
            //         { 
 | 
            //             skillAttrIDDict[id].Add(attrId); 
 | 
            //         } 
 | 
            //     } 
 | 
  
 | 
            // } 
 | 
  
 | 
            // var BossAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 1)); 
 | 
            // BossAssistAward = new Dictionary<int, List<int>>(); 
 | 
            // foreach (var key in BossAssistAwardJson.Keys) 
 | 
            // { 
 | 
            //     int bossID = int.Parse(key); 
 | 
            //     var awards = BossAssistAwardJson[key]; 
 | 
            //     if (!BossAssistAward.ContainsKey(bossID)) 
 | 
            //     { 
 | 
            //         BossAssistAward[bossID] = new List<int>(); 
 | 
            //     } 
 | 
            //     foreach (var award in awards) 
 | 
            //     { 
 | 
            //         BossAssistAward[bossID].Add(int.Parse(award.ToString())); 
 | 
            //     } 
 | 
  
 | 
            // } 
 | 
  
 | 
            // var FBAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 2)); 
 | 
            // FBAssistAward = new Dictionary<int, List<int>>(); 
 | 
            // foreach (var key in FBAssistAwardJson.Keys) 
 | 
            // { 
 | 
            //     int mapID = int.Parse(key); 
 | 
            //     var awards = FBAssistAwardJson[key]; 
 | 
            //     if (!FBAssistAward.ContainsKey(mapID)) 
 | 
            //     { 
 | 
            //         FBAssistAward[mapID] = new List<int>(); 
 | 
            //     } 
 | 
            //     foreach (var award in awards) 
 | 
            //     { 
 | 
            //         FBAssistAward[mapID].Add(int.Parse(award.ToString())); 
 | 
            //     } 
 | 
  
 | 
            // } 
 | 
  
 | 
            // var _godWeaponJson = LitJson.JsonMapper.ToObject(GetInputString("GodModel", 1)); 
 | 
            // godWeaponMobs = new Dictionary<int, string>(); 
 | 
            // 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<int, int>(GetInputString("IceLodeNeedPoint", 2)); 
 | 
  
 | 
            // NoXpDungeons = new List<int>(GetIntArray("XpNoUseDungeon")); 
 | 
            // RandomJobs = new List<int>(GetIntArray("RandomJob")); 
 | 
            // elderGodTalkingTime = GetInt("ElderGodTalkingTime"); 
 | 
            // elderGodBigBoss = GetInt("ElderGodBigBoss"); 
 | 
            // PassiveSkillShow = new List<int>(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])); 
 | 
            // } 
 | 
            // //checkShowSwitchAccount 
 | 
            // var showSwitchAccount = FuncConfigConfig.Get("ShowSwitchAccount"); 
 | 
            // LitJson.JsonData itemShowSwitchAccount = LitJson.JsonMapper.ToObject(showSwitchAccount.Numerical1); 
 | 
            // checkShowSwitchAccount = new List<string>(); 
 | 
            // foreach(var item in itemShowSwitchAccount) 
 | 
            // { 
 | 
            //     checkShowSwitchAccount.Add(item.ToString()); 
 | 
            // } 
 | 
  
 | 
            var putInItemPack = FuncConfigConfig.Get("PutInItemPack"); 
 | 
            LitJson.JsonData itemPutInData = LitJson.JsonMapper.ToObject(putInItemPack.Numerical1); 
 | 
            itemPutInPackDict = new Dictionary<int, List<int>>(); 
 | 
            foreach (var _key in itemPutInData.Keys) 
 | 
            { 
 | 
                var itemTypeData = itemPutInData[_key]; 
 | 
                int packType = int.Parse(_key); 
 | 
                List<int> itemTypes = new List<int>(); 
 | 
                itemPutInPackDict.Add(packType, itemTypes); 
 | 
                if (itemTypeData.IsArray) 
 | 
                { 
 | 
                    for (int i = 0; i < itemTypeData.Count; i++) 
 | 
                    { 
 | 
                        int itemType = int.Parse(itemTypeData[i].ToString()); 
 | 
                        itemTypes.Add(itemType); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
  
 | 
            itemMoneyCountDict = ConfigParse.ParseIntDict(putInItemPack.Numerical2); 
 | 
  
 | 
            // //拾取贵重物品 
 | 
            // FuncConfigConfig importantItemType = FuncConfigConfig.Get("AutoBuyDrug"); 
 | 
            // ImportantItemType = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical2); 
 | 
            // ImportantItemID = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical3); 
 | 
  
 | 
            // FuncConfigConfig nxxdImg = FuncConfigConfig.Get("NXXDPicture"); 
 | 
            // LitJson.JsonData nxxdData = LitJson.JsonMapper.ToObject(nxxdImg.Numerical1); 
 | 
            // multipleRealmImgDict = new Dictionary<int, string>(); 
 | 
            // 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<int>(GetIntArray("BossShunt")); 
 | 
            // bossShuntDays = GetInt("BossShunt", 3); 
 | 
  
 | 
            // itemDropEffect.Clear(); 
 | 
            // func = FuncConfigConfig.Get("ItemEquipmentEffect"); 
 | 
            // _data = LitJson.JsonMapper.ToObject(func.Numerical1); 
 | 
            // List<string> _keys = new List<string>(_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<int[]> _content = null; 
 | 
            // for (i = 0; i < _keys.Count; ++i) 
 | 
            // { 
 | 
            //     _content = new List<int[]>(); 
 | 
            //     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"); 
 | 
            // heroDialogueOffset = GetInputString("NpcHalfLength", 1).Vector3Parse(); 
 | 
            // heroDialogueRotation = GetInputString("NpcHalfLength", 2).Vector3Parse(); 
 | 
            // heroDialogueScale = GetFloat("NpcHalfLength", 3); 
 | 
  
 | 
            // var ancientConfig = FuncConfigConfig.Get("ElderBattleTarget"); 
 | 
            // ancientGrandTotalAchievements = new List<int>(); 
 | 
            // ancientGrandTotalAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical1)); 
 | 
            // ancientContinueKillAchievements = new List<int>(); 
 | 
            // ancientContinueKillAchievements.AddRange(ConfigParse.GetMultipleStr<int>(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<int>(GetIntArray("InGameDownLoad")); 
 | 
            // inGameDownLoadTaskCheckPoints = new List<int>(GetIntArray("InGameDownLoad", 2)); 
 | 
            // inGameDownLoadHighLevel = GetInt("InGameDownLoad", 3); 
 | 
  
 | 
            // worldBossNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 1)); 
 | 
            // bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2)); 
 | 
            // elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3)); 
 | 
            // demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4)); 
 | 
            // dogzNoRebornRemindMaps = new List<int>(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<int>(GetIntArray("FBEnterTickeyAuto", 1)); 
 | 
            // dungeonRebornClientTimes = ConfigParse.GetDic<int, int>(GetInputString("DuplicatesRebornTime", 2)); 
 | 
            // dogzBoxLimit = GetInt("DogzBoxLimit"); 
 | 
  
 | 
            // fairyGrabBossMapLines = ConfigParse.GetDic<int, int>(GetInputString("MapLine", 2)); 
 | 
            // var grabBossMaps = fairyGrabBossMapLines.Keys.ToList(); 
 | 
            // foreach (var _key in grabBossMaps) 
 | 
            // { 
 | 
            //     fairyGrabBossMapLines[_key] = fairyGrabBossMapLines[_key] - 1; 
 | 
            // } 
 | 
  
 | 
            // if (DropItemEffectMapID == null) 
 | 
            // { 
 | 
            //     DropItemEffectMapID = new Dictionary<int, List<int>>(); 
 | 
            // } 
 | 
            // 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<int>()); 
 | 
            //         } 
 | 
            //         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<int>(mapIDs); 
 | 
  
 | 
            // teamWorldCall = GetInputString("TeamWorldCall"); 
 | 
            // teamWorldCallInviteCount = GetInt("TeamWorldCall", 2); 
 | 
  
 | 
            // var ancientKingAwradConfig = FuncConfigConfig.Get("ElderBattlefieldTopAward"); 
 | 
            // if (ancientKingAwradConfig != null) 
 | 
            // { 
 | 
            //     var itemArray = LitJson.JsonMapper.ToObject<int[][]>(ancientKingAwradConfig.Numerical1); 
 | 
            //     for (int k = 0; k < itemArray.Length; k++) 
 | 
            //     { 
 | 
            //         // ancientKingAwards.Add(new Item() 
 | 
            //         // { 
 | 
            //         //     id = itemArray[k][0], 
 | 
            //         //     count = itemArray[k][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<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>>(); 
 | 
  
 | 
            // //     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<int, GA_NpcFightSgzcZZ.EquipRandomInfo>(); 
 | 
  
 | 
            // //         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); 
 | 
  
 | 
            // //     } 
 | 
            // // } 
 | 
  
 | 
  
 | 
            // if (SgzcRealm == null) 
 | 
            // { 
 | 
            //     SgzcRealm = new Dictionary<int, int>(); 
 | 
  
 | 
            //     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]); 
 | 
            //     } 
 | 
            // } 
 | 
  
 | 
            // crossServerBattleFieldOpenDay = GetInt("CrossRealmCfg", 2); 
 | 
            // UISpringDecorate = GetInt("UISpringDecorate"); 
 | 
  
 | 
            // mixServerCustomDays = GetInt("MixServer"); 
 | 
            // openServerCustomDays = GetInt("OperationAction"); 
 | 
            // ClientPvpAttributePer = GetInt("ClientPvPAttributePer") * Constants.F_DELTA; 
 | 
  
 | 
            // mysteryShopRefreshItem = GetInt("MysteryShopRefresh"); 
 | 
            // mysteryShopRefreshItemCount = new Dictionary<int, int>(); 
 | 
            // var mysteryShopJson = JsonMapper.ToObject(GetInputString("MysteryShopRefresh", 2)); 
 | 
            // foreach (var key in mysteryShopJson.Keys) 
 | 
            // { 
 | 
            //     var time = int.Parse(key); 
 | 
            //     mysteryShopRefreshItemCount[time] = (int)mysteryShopJson[key]; 
 | 
            // } 
 | 
  
 | 
            // mysteryShopRefreshItemValue = GetInt("MysteryShopRefresh", 3); 
 | 
            // mysteryShopRefreshInterval = GetInt("MysteryShopRefresh", 4); 
 | 
  
 | 
            // var equipStarConfig = FuncConfigConfig.Get("EquipPartStar"); 
 | 
            // var equipStarJson = LitJson.JsonMapper.ToObject(equipStarConfig.Numerical1); 
 | 
            // equipStarLimit = new Dictionary<int, Dictionary<int, int>>(); 
 | 
            // foreach (var itemColorKey in equipStarJson.Keys) 
 | 
            // { 
 | 
            //     var itemColor = int.Parse(itemColorKey); 
 | 
            //     Dictionary<int, int> dict = new Dictionary<int, int>(); 
 | 
            //     foreach (var itemLevelKey in equipStarJson[itemColorKey].Keys) 
 | 
            //     { 
 | 
            //         var itemLevel = int.Parse(itemLevelKey); 
 | 
            //         var starLimit = int.Parse(equipStarJson[itemColorKey][itemLevelKey].ToString()); 
 | 
            //         dict.Add(itemLevel, starLimit); 
 | 
            //     } 
 | 
            //     equipStarLimit.Add(itemColor, dict); 
 | 
            // } 
 | 
  
 | 
            // equipTrainMustItemId = GetInt("EquipWashMustID"); 
 | 
            // acutionItemHour = GetInt("AuctionItem"); 
 | 
            // mainWinTopCloseTime = GetInt("AutomaticSwitch"); 
 | 
  
 | 
            // equipDecomposeScreen.AddRange(GetIntArray("EquipDecomposeScreen", 2)); 
 | 
  
 | 
            // func = FuncConfigConfig.Get("AtkTypeIncreasePushDis"); 
 | 
            // var _ks = func.Numerical1.Split('|'); 
 | 
            // var _vs = func.Numerical2.Split('|'); 
 | 
            // for (i = 0; i < _ks.Length; ++i) 
 | 
            // { 
 | 
            //     AtkTypeIncreasePushDis[int.Parse(_ks[i])] = int.Parse(_vs[i]) * Constants.F_DELTA; 
 | 
            // } 
 | 
  
 | 
            // func = FuncConfigConfig.Get("NpcDieSetCamera"); 
 | 
            // if (func != null) 
 | 
            // { 
 | 
            //     var _jsonData = LitJson.JsonMapper.ToObject(func.Numerical1); 
 | 
            //     for (i = 0; i < _jsonData.Count; ++i) 
 | 
            //     { 
 | 
            //         var _child = _jsonData[i]; 
 | 
            //         // var _lookAtData = new CameraController.LookAtData(); 
 | 
            //         // _lookAtData.position = new Vector3(MathUtility.GetFloatFromLitJson(_child[1][0]), 
 | 
            //         //                                    MathUtility.GetFloatFromLitJson(_child[1][1]), 
 | 
            //         //                                    MathUtility.GetFloatFromLitJson(_child[1][2])); 
 | 
            //         // _lookAtData.rotX = (int)_child[2]; 
 | 
            //         // _lookAtData.rotY = (int)_child[3]; 
 | 
            //         // _lookAtData.lastTime = MathUtility.GetFloatFromLitJson(_child[4]); 
 | 
  
 | 
            //         // NpcDieSetCamera[(int)_child[0]] = _lookAtData; 
 | 
            //     } 
 | 
            // } 
 | 
            // WorkForEnemySkills = GetIntArray("ArenaSetSkills", 1); 
 | 
            // WorkForMeSkills = GetIntArray("ArenaSetSkills", 2); 
 | 
            // WorkNotSkills = GetIntArray("ArenaSetSkills", 3); 
 | 
            // defenseGetWays = GetIntArray("DefenseGetWays", 1); 
 | 
            // skillYinjis = ConfigParse.GetDic<int, int>(GetInputString("SkillYinji", 1)); 
 | 
            // onlyUsedAtBackpackItems = new List<int>(GetIntArray("ItemPush", 2)); 
 | 
  
 | 
            // var signInSkillArray = GetIntArray("SignInPromoteSkill", 1); 
 | 
            // if (signInSkillArray != null) 
 | 
            // { 
 | 
            //     signInPromoteSkills.AddRange(signInSkillArray); 
 | 
            // } 
 | 
  
 | 
            // MasteryLoadingLevelLimit1 = GetInt("MasteryLoadingLevelLimit"); 
 | 
            // MasteryLoadingLevelLimit2 = GetInt("MasteryLoadingLevelLimit", 2); 
 | 
  
 | 
            // chestDisplayItems = new List<int>(GetIntArray("ChestShowItems")); 
 | 
  
 | 
            // func = FuncConfigConfig.Get("Zhanling"); 
 | 
            // if (func != null) 
 | 
            // { 
 | 
            //     OldZhanLingCtgIdDict = new Dictionary<int, int>(); 
 | 
            //     ZhanLingCtgIdDict = new Dictionary<int, List<int>>(); 
 | 
            //     var tempDict = JsonMapper.ToObject(func.Numerical1); 
 | 
            //     var keyList = tempDict.Keys.ToList(); 
 | 
            //     for (int j = 0; j < keyList.Count; j++) 
 | 
            //     { 
 | 
            //         OldZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson())[0]; 
 | 
            //         ZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson()); 
 | 
            //     } 
 | 
  
 | 
            //     ZhanLingCtgIdHDict = new Dictionary<int, List<int>>(); 
 | 
            //     tempDict = JsonMapper.ToObject(func.Numerical3); 
 | 
            //     keyList = tempDict.Keys.ToList(); 
 | 
            //     for (int k = 0; k < keyList.Count; k++) 
 | 
            //     { 
 | 
            //         ZhanLingCtgIdHDict[int.Parse(keyList[k])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[k]].ToJson()); 
 | 
            //     } 
 | 
            // } 
 | 
  
 | 
            // func = FuncConfigConfig.Get("FBQuickPass"); 
 | 
            // fightPowerMore = float.Parse(func.Numerical1) + 0.01f; //疑似玩家无法雷诛是C/S计算不对等问题,所以加0.01f 
 | 
            // flashOpenArr = JsonMapper.ToObject<int[]>(func.Numerical2); 
 | 
            // flashCntMoreArr = JsonMapper.ToObject<int[]>(func.Numerical3); 
 | 
            // flashKillMaxCount = int.Parse(func.Numerical4); 
 | 
            parryCfg = FuncConfigConfig.Get("ParryCfg"); 
 | 
        } 
 | 
        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<int> 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; 
 | 
    } 
 | 
  
 | 
    public static int GetInt(string _key, int _index = 1) 
 | 
    { 
 | 
        var result = 0; 
 | 
        int.TryParse(GetInputString(_key, _index), out result); 
 | 
        return result; 
 | 
    } 
 | 
  
 | 
    public static float GetFloat(string _key, int _index = 1) 
 | 
    { 
 | 
        var result = 0f; 
 | 
        float.TryParse(GetInputString(_key, _index), out result); 
 | 
        return result; 
 | 
    } 
 | 
  
 | 
    public static bool GetBool(string _key, int _index = 1) 
 | 
    { 
 | 
        var result = false; 
 | 
        bool.TryParse(GetInputString(_key, _index), out result); 
 | 
        return result; 
 | 
    } 
 | 
  
 | 
    public 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; 
 | 
    } 
 | 
  
 | 
    public 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; 
 | 
    } 
 | 
  
 | 
  
 | 
    public 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; 
 | 
    } 
 | 
  
 | 
    public 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; 
 | 
    } 
 | 
  
 | 
    public static List<int> GetTimeArray(string _key, int _index = 1) 
 | 
    { 
 | 
        var configContent = GetInputString(_key, _index); 
 | 
        var stringArray = configContent.Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries); 
 | 
        var timeList = new List<int>(); 
 | 
        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; 
 | 
    } 
 | 
  
 | 
    public 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; 
 | 
    } 
 | 
  
 | 
    public static long GetFactValue(uint value, uint valueEx) 
 | 
    { 
 | 
        return (long)valueEx * (long)Constants.ExpPointValue +(long)value; 
 | 
    } 
 | 
} 
 |