Main/System/Chat/ChatCenter.cs
@@ -49,8 +49,8 @@ void ParseConfig() { chatCharacterLimit = int.Parse(FuncConfigConfig.Get("MessageLength").Numerical1); var _funcCfg = FuncConfigConfig.Get("BugleItem"); bugleItem = int.Parse(_funcCfg.Numerical1); // var _funcCfg = FuncConfigConfig.Get("BugleItem"); // bugleItem = int.Parse(_funcCfg.Numerical1); chatChannels = new List<ChatInfoType>(); chatChannels.Add(ChatInfoType.System); chatChannels.Add(ChatInfoType.World); @@ -63,16 +63,16 @@ chatChannels.Add(ChatInfoType.Friend); chatChannels.Add(ChatInfoType.default1); var config = FuncConfigConfig.Get("ClientChatBan"); banCheckSecond = int.Parse(config.Numerical1); repeatCountLimit = int.Parse(config.Numerical2); maliceCheckCount = int.Parse(config.Numerical3); maliceLimitCount = int.Parse(config.Numerical4); var array = ConfigParse.GetMultipleStr<int>(config.Numerical5); singleBanSecond = array[0]; maxBanSecond = array[1]; // var config = FuncConfigConfig.Get("ClientChatBan"); // banCheckSecond = int.Parse(config.Numerical1); // repeatCountLimit = int.Parse(config.Numerical2); // maliceCheckCount = int.Parse(config.Numerical3); // maliceLimitCount = int.Parse(config.Numerical4); // var array = ConfigParse.GetMultipleStr<int>(config.Numerical5); // singleBanSecond = array[0]; // maxBanSecond = array[1]; config = FuncConfigConfig.Get("LocalChatHistoryCount"); var config = FuncConfigConfig.Get("LocalChatHistoryCount"); if (config != null) { LocalChatHistory.localSaveCount = int.Parse(config.Numerical1); @@ -479,36 +479,38 @@ public int singleBanSecond = 1; public int maxBanSecond = 1; public int banSecond { get { return LocalSave.GetInt("ClientChatBanSecond", 0); } set { LocalSave.SetInt("ClientChatBanSecond", value); } } public int banSecond; // { // get { return LocalSave.GetInt("ClientChatBanSecond", 0); } // set { // LocalSave.SetInt("ClientChatBanSecond", value); // } // } private int[] banTimeArray = new int[6]; private DateTime bandTime { get { var timeArray = LocalSave.GetIntArray("ClientChatBanTime"); if (null == timeArray) { return TimeUtility.OriginalTime; } else { return new DateTime(timeArray[0], timeArray[1], timeArray[2], timeArray[3], timeArray[4], timeArray[5]); } } set { banTimeArray[0] = value.Year; banTimeArray[1] = value.Month; banTimeArray[2] = value.Day; banTimeArray[3] = value.Hour; banTimeArray[4] = value.Minute; banTimeArray[5] = value.Second; LocalSave.SetIntArray("ClientChatBanTime", banTimeArray); } } private DateTime bandTime; // { // get { // var timeArray = LocalSave.GetIntArray("ClientChatBanTime"); // if (null == timeArray) // { // return TimeUtility.OriginalTime; // } // else // { // return new DateTime(timeArray[0], timeArray[1], timeArray[2], timeArray[3], timeArray[4], timeArray[5]); // } // } // set { // banTimeArray[0] = value.Year; // banTimeArray[1] = value.Month; // banTimeArray[2] = value.Day; // banTimeArray[3] = value.Hour; // banTimeArray[4] = value.Minute; // banTimeArray[5] = value.Second; // LocalSave.SetIntArray("ClientChatBanTime", banTimeArray); // } // } public void ChatClientBan() { Main/System/Chat/ChatManager.cs
@@ -155,8 +155,8 @@ presentChatType = ChatInfoType.World; IsExtentOpen = false; var _funcCfg = FuncConfigConfig.Get("BugleItem"); BugleItem = int.Parse(_funcCfg.Numerical1); // var _funcCfg = FuncConfigConfig.Get("BugleItem"); // BugleItem = int.Parse(_funcCfg.Numerical1); DTC0102_tagCDBPlayer.switchAccountEvent += SwitchAccountEvent; // TODO YYL @@ -165,28 +165,28 @@ InitChatRedpoints(); FuncConfigConfig _cfg = FuncConfigConfig.Get("RandomWord"); try { achievementRandoms.Add(ChatInfoType.World, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical1))); achievementRandoms.Add(ChatInfoType.Fairy, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical2))); var json = LitJson.JsonMapper.ToObject(_cfg.Numerical3); foreach (var key in json.Keys) { var type = int.Parse(key); m_TaskRandomChats.Add(type, new List<string>(LitJson.JsonMapper.ToObject<string[]>(json[key].ToJson()))); } assistThankLanguages.AddRange(ConfigParse.GetMultipleStr(_cfg.Numerical4)); if (!string.IsNullOrEmpty(_cfg.Numerical5)) { var levelArray = ConfigParse.GetMultipleStr<int>(_cfg.Numerical5); assistThankLevelLimit = new Int2(levelArray[0], levelArray[1]); } } catch (Exception e) { Debug.LogError(e.Message); } // FuncConfigConfig _cfg = FuncConfigConfig.Get("RandomWord"); // try // { // achievementRandoms.Add(ChatInfoType.World, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical1))); // achievementRandoms.Add(ChatInfoType.Fairy, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical2))); // var json = LitJson.JsonMapper.ToObject(_cfg.Numerical3); // foreach (var key in json.Keys) // { // var type = int.Parse(key); // m_TaskRandomChats.Add(type, new List<string>(LitJson.JsonMapper.ToObject<string[]>(json[key].ToJson()))); // } // assistThankLanguages.AddRange(ConfigParse.GetMultipleStr(_cfg.Numerical4)); // if (!string.IsNullOrEmpty(_cfg.Numerical5)) // { // var levelArray = ConfigParse.GetMultipleStr<int>(_cfg.Numerical5); // assistThankLevelLimit = new Int2(levelArray[0], levelArray[1]); // } // } // catch (Exception e) // { // Debug.LogError(e.Message); // } } private void PlayerLoginOkEvent() Main/System/FairyUnion/FairyModel.cs
@@ -163,19 +163,12 @@ public readonly int changeFairyNameItem = 947; public int freeNotifyCount { get; private set; } public int changeNotifyCost { get; private set; } public int fairyFeastDeskNpc { get; private set; } public int fairyCreateTimes { get; private set; } void ParseConfig() { var config = FuncConfigConfig.Get("CreateFamily"); createFairyCost = int.Parse(config.Numerical1); config = FuncConfigConfig.Get("FamilyBroadcast"); freeNotifyCount = int.Parse(config.Numerical1); changeNotifyCost = int.Parse(config.Numerical2); config = FuncConfigConfig.Get("FamilyShop"); fairyStoreLimit = int.Parse(config.Numerical2); config = FuncConfigConfig.Get("FamilyPartyDeskNpcID"); fairyFeastDeskNpc = int.Parse(config.Numerical1); config = FuncConfigConfig.Get("FamilyMatchSet"); fairyLeagueLimit = int.Parse(config.Numerical1); } Main/System/FairyUnion/PlayerFairyData.cs
@@ -344,17 +344,17 @@ public int[] funcArray = null; public bool IsCanFunc(LimitFunc funcType) { if (funcArray == null) { funcArray = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("FamilyPurview").Numerical1); } if (funcArray != null && funcArray.Length > 6) { if (mine != null) { return mine.FamilyLV >= funcArray[(int)funcType]; } } // if (funcArray == null) // { // funcArray = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("FamilyPurview").Numerical1); // } // if (funcArray != null && funcArray.Length > 6) // { // if (mine != null) // { // return mine.FamilyLV >= funcArray[(int)funcType]; // } // } return false; } #endregion Main/System/GeneralConfig/GeneralDefine.cs
@@ -246,727 +246,727 @@ { try { equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0]; equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1]; // equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0]; // equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1]; normalEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 2)[0]; normalEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 2)[1]; // normalEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 2)[0]; // normalEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 2)[1]; suitEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 3)[0]; suitEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 3)[1]; // suitEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 3)[0]; // suitEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 3)[1]; BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel"); initDepotGridCount = GetInt("InitDepotCellCount"); maxDepotGridCount = GetInt("MaxDepotCellCount"); initBagGridCount = GetInt("InitBagCellCount"); maxBagGridCount = GetInt("MaxBagCellCount"); maxXBGridCount = GetInt("TreasureSet", 3); // BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel"); // initDepotGridCount = GetInt("InitDepotCellCount"); // maxDepotGridCount = GetInt("MaxDepotCellCount"); // initBagGridCount = GetInt("InitBagCellCount"); // 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); // 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 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); // 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); string[] equipPlacesNames = GetStringArray("EquipArea", 2); equipPlaceNameDict = new Dictionary<int, string>(); for (i = 0; i < equipPlaces.Length; i++) { if (!equipPlaceNameDict.ContainsKey(equipPlaces[i])) { equipPlaceNameDict.Add(equipPlaces[i], equipPlacesNames[i]); } else { Debug.LogError("EquipArea : 装备位置重复"); } } 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 (i = 0; i < itemTypeData.Count; i++) { int itemType = int.Parse(itemTypeData[i].ToString()); itemTypes.Add(itemType); } } } //拾取贵重物品 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) // bossWearyValues = ConfigParse.GetDic<int, int>(GetInputString("KillBossCntLimit", 2)); // wingEquipLimits = ConfigParse.GetDic<int, int>(GetInputString("WingRealmLimit", 1)); // int i = 0; // int[] equipPlaces = GetIntArray("EquipArea", 1); // string[] equipPlacesNames = GetStringArray("EquipArea", 2); // equipPlaceNameDict = new Dictionary<int, string>(); // for (i = 0; i < equipPlaces.Length; i++) // { // SgzzRobotEquipDict = new Dictionary<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>>(); // for (int job = 1; job <= 3; ++job) // if (!equipPlaceNameDict.ContainsKey(equipPlaces[i])) // { // string _jsonString = GetInputString("SGZCHelpBattleEquip", job); // if (string.IsNullOrEmpty(_jsonString)) // equipPlaceNameDict.Add(equipPlaces[i], equipPlacesNames[i]); // } // else // { // Debug.LogError("EquipArea : 装备位置重复"); // } // } // 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)) // { // continue; // List<int> list = new List<int>(); // list.Add(id); // LingQiTrainIDList.Add(attrId, list); // } // var _jsonData = LitJson.JsonMapper.ToObject(_jsonString); // var _jobDict = new Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>(); // for (i = 0; i < _jsonData.Count; ++i) // else // { // 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); // } // LingQiTrainIDList[attrId].Add(id); // } // } // SgzzRobotEquipDict.Add(job, _jobDict); // } // 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"); if (SgzcRealm == null) { SgzcRealm = new Dictionary<int, int>(); // iceCrystalMonsterScores = ConfigParse.GetDic<int, int>(GetInputString("IceLodeNeedPoint", 2)); var _lvArr = GetInputString("SGZCRobotRealm", 1).Split('|'); var _rLvArr = GetInputString("SGZCRobotRealm", 2).Split('|'); // NoXpDungeons = new List<int>(GetIntArray("XpNoUseDungeon")); // RandomJobs = new List<int>(GetIntArray("RandomJob")); // elderGodTalkingTime = GetInt("ElderGodTalkingTime"); // elderGodBigBoss = GetInt("ElderGodBigBoss"); // PassiveSkillShow = new List<int>(GetIntArray("PassiveSkillShow")); for (int j = 0; j < _lvArr.Length; ++j) { SgzcRealm[int.Parse(_lvArr[j])] = int.Parse(_rLvArr[j]); } } // 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()); // } crossServerBattleFieldOpenDay = GetInt("CrossRealmCfg", 2); UISpringDecorate = GetInt("UISpringDecorate"); // 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 (i = 0; i < itemTypeData.Count; i++) // { // int itemType = int.Parse(itemTypeData[i].ToString()); // itemTypes.Add(itemType); // } // } // } mixServerCustomDays = GetInt("MixServer"); openServerCustomDays = GetInt("OperationAction"); ClientPvpAttributePer = GetInt("ClientPvPAttributePer") * Constants.F_DELTA; // //拾取贵重物品 // FuncConfigConfig importantItemType = FuncConfigConfig.Get("AutoBuyDrug"); // ImportantItemType = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical2); // ImportantItemID = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical3); 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]; } // 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()); // } // } // } mysteryShopRefreshItemValue = GetInt("MysteryShopRefresh", 3); mysteryShopRefreshInterval = GetInt("MysteryShopRefresh", 4); // bossShuntMaps = new List<int>(GetIntArray("BossShunt")); // bossShuntDays = GetInt("BossShunt", 3); 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); } // 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; // } equipTrainMustItemId = GetInt("EquipWashMustID"); acutionItemHour = GetInt("AuctionItem"); mainWinTopCloseTime = GetInt("AutomaticSwitch"); // 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; // } equipDecomposeScreen.AddRange(GetIntArray("EquipDecomposeScreen", 2)); // 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; // } 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; } // 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]]; // } 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]); // 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); // } // 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)); // 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]); // } // } var signInSkillArray = GetIntArray("SignInPromoteSkill", 1); if (signInSkillArray != null) { signInPromoteSkills.AddRange(signInSkillArray); } // 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")); MasteryLoadingLevelLimit1 = GetInt("MasteryLoadingLevelLimit"); MasteryLoadingLevelLimit2 = GetInt("MasteryLoadingLevelLimit", 2); // 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()); // } chestDisplayItems = new List<int>(GetIntArray("ChestShowItems")); // munekadolockLimit = GetInt("MunekadoLockLimit"); // demonJarRedPoint = GetInt("DemonJarRedPoint"); // LoadLV = GetInputString("LoadLV"); 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()); } // mainWinSkillResetTime = GetFloat("AutomaticSwitch"); // heroDialogueOffset = GetInputString("NpcHalfLength", 1).Vector3Parse(); // heroDialogueRotation = GetInputString("NpcHalfLength", 2).Vector3Parse(); // heroDialogueScale = GetFloat("NpcHalfLength", 3); 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()); } } // 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)); 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); // 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); } catch (Exception ex) Main/System/HappyXB/HappyXBModel.cs
@@ -58,12 +58,12 @@ SetXBFuncDict(1); SetXBFuncDict(2); var treasureIDArr = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("TreasureLuckyDraw").Numerical1); for (int i = 0; i < treasureIDArr.Length; i++) { int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType; SetXBFuncDict(type); } // var treasureIDArr = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("TreasureLuckyDraw").Numerical1); // for (int i = 0; i < treasureIDArr.Length; i++) // { // int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType; // SetXBFuncDict(type); // } SetXBFuncDict(105); SetXBFuncDict(106); @@ -75,11 +75,11 @@ XBCostTypeDict[(int)HappXBTitle.Best] = TreasureSetConfig.Get(1).CostMoneyType; XBCostTypeDict[(int)HappXBTitle.Rune] = TreasureSetConfig.Get(2).CostMoneyType; for (int i = 0; i < treasureIDArr.Length; i++) { int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType; XBCostTypeDict[(int)HappXBTitle.Gubao1 + i] = TreasureSetConfig.Get(type).CostMoneyType; } // for (int i = 0; i < treasureIDArr.Length; i++) // { // int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType; // XBCostTypeDict[(int)HappXBTitle.Gubao1 + i] = TreasureSetConfig.Get(type).CostMoneyType; // } XBCostTypeDict[(int)HappXBTitle.YunShi1] = TreasureSetConfig.Get(105).CostMoneyType; XBCostTypeDict[(int)HappXBTitle.YunShi2] = TreasureSetConfig.Get(106).CostMoneyType; XBCostTypeDict[(int)HappXBTitle.YunShi3] = TreasureSetConfig.Get(107).CostMoneyType; Main/System/KnapSack/Logic/ItemLogicUtility.cs
@@ -7,22 +7,10 @@ public class ItemLogicUtility : Singleton<ItemLogicUtility> { private string dogzGSFormula; private string normalGSFormula; private Dictionary<int, string> specialSpiritPropertyFormula = new Dictionary<int, string>(); Dictionary<int, int> specialSpiritPropertyMaxLevels; private int[] preciousItemTypes; private int[] preciousItemIDs; // 不展示的物品ID public int[] drugIDs; private int[] onekeySellTypes; private int[] pushItemIds; private int lsItemCnt; // 背包中的灵石数量 private List<int> equipBaseProperties = new List<int>(); private Dictionary<int, int> promptUseLimitDict; private Dictionary<int, List<int>> betterEquipExceptDungeonDict; Dictionary<int, int> equipSkillScores = new Dictionary<int, int>(); PackManager packModel { get { return PackManager.Instance; } } @@ -38,15 +26,8 @@ public void Init() { var GSFormulaConfig = FuncConfigConfig.Get("EquipGSFormula"); dogzGSFormula = GSFormulaConfig.Numerical3; normalGSFormula = GSFormulaConfig.Numerical1; var json = JsonMapper.ToObject(FuncConfigConfig.Get("OutOfPrintValue").Numerical2); foreach (var key in json.Keys) { specialSpiritPropertyFormula[int.Parse(key)] = json[key].ToString(); } specialSpiritPropertyMaxLevels = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("OutOfPrintValueDes").Numerical1); var equipSkillScoreJson = JsonMapper.ToObject(GSFormulaConfig.Numerical4); foreach (var key in equipSkillScoreJson.Keys) { @@ -66,29 +47,9 @@ equipBaseProperties.Add(int.Parse(baseAttr[i].ToString())); } } lsItemCnt = int.Parse(FuncConfigConfig.Get("LingshiShowCount").Numerical1); preciousItemTypes = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("ItemPush").Numerical1); promptUseLimitDict = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("NoPromptUsetItem").Numerical1); preciousItemIDs = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("ItemPush").Numerical3); drugIDs = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("LifePotionlist").Numerical1); onekeySellTypes = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("OneKeySellItemType").Numerical1); pushItemIds = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("IntroductionItem").Numerical1); betterEquipExceptDungeonDict = new Dictionary<int, List<int>>(); var excEquipData = JsonMapper.ToObject(FuncConfigConfig.Get("GoodItemDungeon").Numerical1); foreach (var dungeonId in excEquipData.Keys) { var itemIds = new List<int>(); betterEquipExceptDungeonDict.Add(int.Parse(dungeonId), itemIds); for (var i = 0; i < excEquipData[dungeonId].Count; i++) { var itemId = int.Parse(excEquipData[dungeonId][i].ToString()); itemIds.Add(itemId); } } DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; } @@ -385,370 +346,7 @@ #endregion #region 主界面物品弹框展示 public event Action<PackType, string> GetPreciousItemEvent; //得到珍品 value 物品的实例ID public event Action<PackType, string> GetExpItemEvent; //得到经验物品 value 物品的实例ID public void RecommendItem(ItemModel item) { if (item.packType != PackType.Item) { return; } if (!preciousItemTypes.Contains(item.config.Type)) { int mapId = PlayerDatas.Instance.baseData.MapID; var drugList = packModel.GetDrugIDListByDungeonID(mapId); if (drugList == null) return; if (!drugList.Contains(item.config.ID)) return; } if (item.config.Type == 145 && item.config.CDTime > 0) { var createTime = item.GetUseDataFirstValue((int)ItemUseDataKey.createTime); if (createTime > 0) { DateTime useTime; if (item.config.CDTypeEx == 1) { //itemConfig.CDTime 为天,过0点可用 useTime = TimeUtility.GetTime((uint)createTime).AddDays(item.config.CDTime); useTime = TimeUtility.GetDayStartTime(useTime.Year, useTime.Month, useTime.Day); } else { useTime = TimeUtility.GetTime((uint)createTime).AddSeconds(item.config.CDTime); } if (TimeUtility.ServerNow < useTime) { return; } } } if (preciousItemIDs != null && preciousItemIDs.Contains(item.config.ID)) { return; } if (item.config.ID == packModel.lsItemID) { int tmpCnt = PlayerDatas.Instance.baseData.LV < 50 ? 5 : lsItemCnt; if (packModel.GetItemCountByID(PackType.Item, packModel.lsItemID) < tmpCnt) return; } //if (item.isAuction) //{ // return; //} if (item.config.UseLV > PlayerDatas.Instance.baseData.LV) { return; } if (IsOverdue(item.guid)) { return; } // if (!IsAbleToUse(item)) // { // return; // } if (IsSpiritWeapon(item.itemId)) { if (IsFightUp(item.itemId, item.score) != 1) { return; } } if (item.config.Type == 13) { // 经验丹特殊处理,优先显示 if (GetExpItemEvent != null) { GetExpItemEvent(item.packType, item.guid); } } else { if (GetPreciousItemEvent != null) { GetPreciousItemEvent(item.packType, item.guid); } } } // bool IsAbleToUse(ItemModel item) // { // var windowSearch = WindowSearchConfig.Get(item.config.Jump); // if (windowSearch != null) // { // if (!FuncOpen.Instance.IsFuncOpen(windowSearch.Lv) && windowSearch.Lv != 0) // { // return false; // } // } // if (pushItemIds.Contains(item.itemId)) // { // var itemCnt = packModel.GetItemCountByID(PackType.Item, item.itemId) - item.count; // if (itemCnt > 0) // { // return false; // } // else // { // if (item.preItemCount > 0) // { // return false; // } // } // } // if (promptUseLimitDict.ContainsKey(item.itemId)) // { // var playerLv = PlayerDatas.Instance.baseData.LV; // if (playerLv < promptUseLimitDict[item.itemId]) // { // return false; // } // } // ulong canUseCnt = 0; // if (packModel.IsReachUseLimit(item.guid, out canUseCnt)) // { // return false; // } // bool isBox = false; // bool isCanOpen = ModelCenter.Instance.GetModel<BoxGetItemModel>().CheckOpenBoxCondition(item.itemId, out isBox); // if (isBox) // { // if (!isCanOpen) // { // return false; // } // } // //if (trialModel.trialTokens.Contains(item.itemId)) // //{ // // if (!trialModel.IsAnySatisfyExchangeBetter(item.itemId)) // // { // // return false; // // } // //} // if (packModel.CheckIsDrugById(item.itemId)) // { // if (item.config.RealmLimit > PlayerDatas.Instance.baseData.realmLevel) // { // return false; // } // } // var fruitConfig = AttrFruitConfig.Get(item.itemId); // if (fruitConfig != null && fruitConfig.FuncID == 2) // { // if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace)) // { // return false; // } // } // switch (item.config.Type) // { // case 8: // if (buffDatas.BastBuff(item.itemId)) // { // return false; // } // break; // case 20: // if (magicianModel.IsGodWeaponMaxLevelByItem(item.itemId)) // { // return false; // } // break; // case 21: // if (!mountDatas.IsHint(HorseEnum.HorseDan, item.itemId)) // { // return false; // } // break; // case 22: // if (!mountDatas.IsHint(HorseEnum.HorseStone, item.itemId)) // { // return false; // } // break; // case 41: // if (!mountDatas.IsHint(HorseEnum.HorseDebris, item.itemId)) // { // return false; // } // break; // case 26: // if (!petDatas.IsHint(PetEnum.PetDebris, item.itemId)) // { // return false; // } // break; // case 27: // if (!petDatas.IsHint(PetEnum.PetDan, item.itemId)) // { // return false; // } // break; // case 28: // if (!petDatas.IsHint(PetEnum.PetStone, item.itemId)) // { // return false; // } // break; // case 25: // if (!ModelCenter.Instance.GetModel<EquipGemModel>().IsBetterGem(item.itemId)) // { // return false; // } // break; // case 39: // if (!IsBetterWings(item)) // { // return false; // } // break; // case 52: // if (!strengthDatas.IsHint(item.itemId)) // { // return false; // } // break; // case 55: // if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace)) // { // return false; // } // var alchemyId = 0; // if (alchemyModel.TryGetAlchemyByStudyMaterial(item.itemId, out alchemyId)) // { // var alchemyConfig = AlchemyConfig.Get(alchemyId); // int alchemingId; // if (alchemyModel.IsStoveAlcheming((AlchemyType)alchemyConfig.AlchemType, out alchemingId)) // { // return false; // } // if (alchemyModel.IsGraspRecipe(alchemyId)) // { // return false; // } // var studyError = 0; // if (!alchemyModel.TryLearn(alchemyId, out studyError)) // { // return false; // } // } // break; // case 127: // var error = 0; // bool isHaveMakeNum = ItemOperateUtility.Instance.CanUseItem(item.guid, 1, out error); // int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum(); // if (!CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch // || remainNum > 0 // || !isHaveMakeNum) // { // return false; // } // break; // default: // break; // } // switch (item.itemId) // { // case 951: // if (!CheckIsExtendGrid(item.itemId)) // { // return false; // } // break; // case 952: // return false; // break; // } // return true; // } // private bool IsBetterWings(ItemModel item) // { // if (item == null) // { // return false; // } // var putModel = packModel.GetItemByIndex(PackType.Equip, SpiritWeaponModel.WING_EQUIPINDEX); // var singlePack = packModel.GetSinglePack(PackType.Item); // if (singlePack == null) // { // return false; // } // int[] composeTypes = item.config.JumpComposeCondi; // bool isOpenCompose = false; // if (composeTypes != null && composeTypes.Length >= 3) // { // int first = composeTypes[0]; // int second = composeTypes[1]; // int third = composeTypes[2]; // ComposeWinModel.ComposeThirdTypeData thirdTypeData = null; // composeModel.TryGetThirdTypeData(first, second, third, out thirdTypeData); // if (thirdTypeData != null) // { // var itemCompound = thirdTypeData.itemCompound; // if (itemCompound.levelNeed <= PlayerDatas.Instance.baseData.LV) // { // isOpenCompose = true; // } // } // } // if (!isOpenCompose) // { // return false; // } // if (putModel != null && putModel.config.LV >= item.config.LV) // { // return false; // } // var itemModels = packModel.GetItems(PackType.Item, new SinglePack.FilterParams() // { // itemTypes = new List<int>() { (int)ItemType.Equip_Wing } // }); // if (itemModels != null) // { // for (int i = 0; i < itemModels.Count; i++) // { // if (IsJobCompatibleItem(itemModels[i].itemId)) // { // if (itemModels[i].config.LV >= item.config.LV) // { // return false; // } // } // } // } // return true; // } private bool CheckIsExtendGrid(int itemId) { SinglePack singlePack = packModel.GetSinglePack(PackType.Item); @@ -954,7 +552,6 @@ // } // return RealmDruglist; // } #endregion #region 物品处于CD中的逻辑处理 Main/System/KnapSack/PackManager.cs
@@ -24,12 +24,9 @@ //AlchemyModel alchemyModel { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } } //ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } public int lsItemID = 150; //可兑换的灵石物品ID int lsItemCnt = 0; List<string> commonShowAwardEvents = new List<string>(); public int[] autoUseItemIDs; UIEffect lingshiEffect; //灵石特效 public override void Init() { DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize; @@ -37,72 +34,25 @@ DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk; ParseConfig(); //SysNotifyMgr.Instance.sysNotifyEvent += RefreshSysInfo; // List<DungeonOpenTimeConfig> dungeonlist = DungeonOpenTimeConfig.GetValues(); // if (dungeonlist != null) // { // //DrugToDungeonDict = new Dictionary<int, int>(); // DungeonToDrugDict = new Dictionary<int, int[]>(); // for (int i = 0; i < dungeonlist.Count; i++) // FuncConfigConfig ShareUseCntItem = FuncConfigConfig.Get("ShareUseCntItem"); // sharedUseCountItemDict = new Dictionary<int, List<int>>(); // JsonData shareUseJson = JsonMapper.ToObject(ShareUseCntItem.Numerical1); // if (shareUseJson.IsArray) // { // for (int i = 0; i < shareUseJson.Count; i++) // { // int[] drugIdlist = dungeonlist[i].ElixirHint; // if (drugIdlist != null && drugIdlist.Length > 0) // var idListJson = shareUseJson[i]; // var idlist = new List<int>(); // sharedUseCountItemDict.Add(i, idlist); // foreach (var id in idListJson) // { // DungeonToDrugDict.Add(dungeonlist[i].DataMapID, drugIdlist); // //for (int j = 0; j < drugIdlist.Length; j++) // //{ // // DrugToDungeonDict.Add(drugIdlist[j], dungeonlist[i].DataMapID); // //} // idlist.Add(int.Parse(id.ToString())); // } // } // } // makeDruglist = new List<AttrFruitConfig>(); // List<AttrFruitConfig> fruitlist = AttrFruitConfig.GetValues(); // for (int i = 0; i < fruitlist.Count; i++) // { // if (fruitlist[i].FuncID == 2) // { // makeDruglist.Add(fruitlist[i]); // } // } // StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish; SetDevourEquipPlace(); // decomposeAttrDict.Clear(); // List<EquipDeComposeConfig> decomlist = EquipDeComposeConfig.GetValues(); // for (int i = 0; i < decomlist.Count; i++) // { // JsonData attrData = JsonMapper.ToObject(decomlist[i].Attr); // Dictionary<int, int> attrDict = new Dictionary<int, int>(); // decomposeAttrDict.Add(decomlist[i].LV, attrDict); // foreach (var id in attrData.Keys) // { // attrDict.Add(int.Parse(id), int.Parse(attrData[id].ToString())); // } // } FuncConfigConfig equipDecompose = FuncConfigConfig.Get("EquipDevourCount"); minDecomposeNum = int.Parse(equipDecompose.Numerical1); defaultUnSelectlist = ConfigParse.GetMultipleStr<int>(equipDecompose.Numerical2); FuncConfigConfig ShareUseCntItem = FuncConfigConfig.Get("ShareUseCntItem"); sharedUseCountItemDict = new Dictionary<int, List<int>>(); JsonData shareUseJson = JsonMapper.ToObject(ShareUseCntItem.Numerical1); if (shareUseJson.IsArray) { for (int i = 0; i < shareUseJson.Count; i++) { var idListJson = shareUseJson[i]; var idlist = new List<int>(); sharedUseCountItemDict.Add(i, idlist); foreach (var id in idListJson) { idlist.Add(int.Parse(id.ToString())); } } } ParseItemCount(); @@ -140,27 +90,18 @@ private void OnFuncStateChangeEvent(int id) { if (id == (int)FuncOpenEnum.EquipDecompose) { EquipDecomRedCtrl(); } } public void OnBeforePlayerDataInitialize() { GlobalTimeEvent.Instance.secondEvent -= UpdateSecond; PlayerDatas.Instance.playerDataRefreshEvent -= UpdatePlayerLv; LocalSave.DeleteKey(RecordKnapsackTitle); cacheMapId = 0; playerPackDict.Clear(); itemDayUseCntDict.Clear(); itemSumUseCntDict.Clear(); itemGUIDDict.Clear(); isPlayBetterEquipEffect = false; colorType = EquipColorType.Orange; decomposeLv = 1; decomposeExp = 0; decomposeProgress = 0; isAutoDecompose = false; } public void OnAfterPlayerDataInitialize() @@ -171,7 +112,6 @@ public void OnPlayerLoginOk() { //ItemOperateUtility.Instance.RequestWarehouseData(); EquipDecomRedCtrl(); RoleEquipLocalSave = StringUtility.Contact("RoleEquipLocalSave", PlayerDatas.Instance.baseData.PlayerID); StrengthAttrShift_RecordKey = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "StrengthAttrShift"); if (LocalSave.GetIntArray(RoleEquipLocalSave) != null) @@ -321,20 +261,10 @@ UpdatePackRedpoint(type); //EquipDecomRedCtrl(); m_CheckEquipDecomRedCtrl = true; AutoUseItem(itemInfo.itemId, serverItem.ItemGUID); } bool m_CheckEquipDecomRedCtrl = false; void CheckEquipDecomRedCtrl() { if (m_CheckEquipDecomRedCtrl) { EquipDecomRedCtrl(); m_CheckEquipDecomRedCtrl = false; } } public void UpdateUnlockedGridCount(H0724_tagRolePackCanUseCount useCount) @@ -381,7 +311,6 @@ { itemCntAddEvent(type, itemModel.gridIndex, itemModel.itemId); } ItemLogicUtility.Instance.RecommendItem(itemModel); ItemLogicUtility.Instance.RefreshPickItem(type, itemModel.itemId.ToString()); } else @@ -397,7 +326,6 @@ refreshItemCountEvent(type, itemModel.gridIndex, itemModel.itemId); } UpdateLSRedpoint(type, itemModel.itemId); } } @@ -444,8 +372,6 @@ } UpdatePackRedpoint(type); m_CheckEquipDecomRedCtrl = true; //EquipDecomRedCtrl(); if (GetItemByGuid(guid) == null) { @@ -468,16 +394,6 @@ return; } MakeUseItemSuccess(success.ItemIndex, (int)success.ItemID); switch (success.ItemID) { // case 221: // if (WindowCenter.Instance.IsOpen<KnapSackWin>()) // { // WindowCenter.Instance.Close<KnapSackWin>(); // } // break; } if (useItemSuccessEvent != null) { @@ -493,28 +409,6 @@ // } } private void MakeUseItemSuccess(int index, int id) { ItemConfig itemConfig = ItemConfig.Get(id); if (itemConfig.CDType != 0) { var items = GetItems(PackType.Item, new SinglePack.FilterParams() { itemTypes = new List<int>() { (int)ItemType.Buff } }); for (int i = 0; i < items.Count; i++) { if (ItemLogicUtility.Instance.drugIDs.Contains(items[i].itemId)) { itemConfig = ItemConfig.Get(items[i].itemId); float configCdTime = (float)Math.Round((double)itemConfig.CDTime / 1000, 1); KnapsackTimeCDMgr.Instance.Register(items[i].guid, items[i].itemId, configCdTime); } } } } void AddItemGUIDDict(ItemModel itemModel, bool showNewItem) { @@ -586,67 +480,16 @@ #endregion #region 玩家装备特殊逻辑 public Dictionary<int, Dictionary<int, int>> spiritWeaponPathIds { get; private set; } public Dictionary<int, int> wingsGetPathIdDict { get; private set; } public Dictionary<int, List<int>> dungeonUseDict { get; private set; } void ParseConfig() { FuncConfigConfig funcConfig = FuncConfigConfig.Get("WingYuPeiHQTJ"); spiritWeaponPathIds = new Dictionary<int, Dictionary<int, int>>(); var splits = funcConfig.Numerical3.Split('|'); for (int i = 0; i < splits.Length; i++) { var tempString = splits[i]; var matches = Regex.Matches(tempString.Trim(), "\\d+"); var equipPlace = int.Parse(matches[0].Value); var job = int.Parse(matches[1].Value); var itemId = int.Parse(matches[2].Value); if (!spiritWeaponPathIds.ContainsKey(equipPlace)) { spiritWeaponPathIds[equipPlace] = new Dictionary<int, int>(); } spiritWeaponPathIds[equipPlace][job] = itemId; } FuncConfigConfig copyItemBulletWindow = FuncConfigConfig.Get("CopyItemBulletWindow"); JsonData copyWinData = JsonMapper.ToObject(copyItemBulletWindow.Numerical1); dungeonUseDict = new Dictionary<int, List<int>>(); foreach (var dungeonId in copyWinData.Keys) { List<int> idlist = new List<int>(); dungeonUseDict.Add(int.Parse(dungeonId), idlist); if (copyWinData[dungeonId].IsArray) { JsonData useData = copyWinData[dungeonId]; for (int i = 0; i < useData.Count; i++) { idlist.Add(int.Parse(useData[i].ToString())); } } } lsItemCnt = int.Parse(FuncConfigConfig.Get("LingshiShowCount").Numerical1); var config = FuncConfigConfig.Get("CommonShowAwards"); commonShowAwardEvents = JsonMapper.ToObject<List<string>>(config.Numerical1); } public int GetRoleEquipPathId(int equipPlace) { int playerJob = PlayerDatas.Instance.baseData.Job; switch ((RoleEquipType)equipPlace) { case RoleEquipType.Guard: case RoleEquipType.PeerlessWeapon1: case RoleEquipType.PeerlessWeapon2: case RoleEquipType.Wing: return spiritWeaponPathIds[equipPlace][playerJob]; default: return 0; } } private void UpdateSecond() { @@ -654,7 +497,6 @@ { isUpdatePlayerLv = false; } CheckEquipDecomRedCtrl(); } private void UpdatePlayerLv(PlayerDataType type) @@ -947,27 +789,6 @@ const int LS_REDKEY = 102011015; Redpoint redpointLS = new Redpoint(MainRedDot.RedPoint_BagFuncKey, LS_REDKEY); private void UpdateLSRedpoint(PackType type, int itemID) { var singlePack = GetSinglePack(type); if (singlePack == null) { return; } if (type != PackType.Item) return; if (itemID != lsItemID) return; if (GetItemCountByID(PackType.Item, lsItemID) < lsItemCnt) { redpointLS.state = RedPointState.None; } else { redpointLS.state = RedPointState.Simple; } } private void UpdatePackRedpoint(PackType type) { @@ -989,14 +810,7 @@ { redpointItemPack.state = RedPointState.None; } if (GetItemCountByID(PackType.Item, lsItemID) < lsItemCnt) { redpointLS.state = RedPointState.None; } else { redpointLS.state = RedPointState.Simple; } break; case PackType.Warehouse: if (singlePack.GetEmptyGridCount() <= 0) @@ -1011,34 +825,7 @@ } } const int PLAYERSUMSTAR_REDKEY = 102011002; Redpoint redpointSTAR = new Redpoint(MainRedDot.RedPoint_BagFuncKey, PLAYERSUMSTAR_REDKEY); public const int EquipDecompose_RedKey = 10205; public Redpoint redpointEquipDecom = new Redpoint(MainRedDot.RedPoint_MainPackKey, EquipDecompose_RedKey); public void EquipDecomRedCtrl() { if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.EquipDecompose)) { return; } if (PlayerDatas.Instance.baseData.LV < devourRedpointLevel) { redpointEquipDecom.state = RedPointState.None; return; } var canDevourItems = GetCanDevourModellist(); if (canDevourItems != null && canDevourItems.Count >= minDevourEquipNum) { redpointEquipDecom.state = RedPointState.Simple; } else { redpointEquipDecom.state = RedPointState.None; } } #endregion #region 查看某个位置的物品 @@ -1090,33 +877,7 @@ private int cacheMapId = 0; public event Action<PackType, string> itemUseAct; private Dictionary<int, int> itemUseTypeDict = new Dictionary<int, int>(); //key SkillTypeID,value 使用物品的ID private void OnStageLoadFinish() { // itemUseTypeDict.Clear(); // if (PlayerDatas.Instance.baseData.MapID == cacheMapId) // { // return; // } // cacheMapId = PlayerDatas.Instance.baseData.MapID; // UpdateDungeonDanUse(); // UpdateDungeonUse(); // SinglePack singlePack = GetSinglePack(PackType.Item); // foreach (int itemId in itemUseTypeDict.Values) // { // var modellist = singlePack.GetItemsById(itemId); // if (modellist.Count > 0) // { // ItemModel itemModel = modellist[0]; // bool isExist = StatusMgr.Instance.IsExist(PlayerDatas.Instance.hero.ServerInstID, itemModel.config.AddSkill1); // Debug.Log("Buff是否存在" + isExist); // if (itemUseAct != null && !isExist) // { // itemUseAct(PackType.Item, itemModel.guid); // } // } // } } private void AddItemUseTypeDict(int id) { @@ -1139,31 +900,8 @@ } } private void UpdateDungeonDanUse() { int mapId = PlayerDatas.Instance.baseData.MapID; int[] useDrugs = GetDrugIDListByDungeonID(mapId); if (useDrugs == null) return; for (int i = 0; i < useDrugs.Length; i++) { int id = useDrugs[i]; AddItemUseTypeDict(id); } } private void UpdateDungeonUse() { int mapId = PlayerDatas.Instance.baseData.MapID; if (!dungeonUseDict.ContainsKey(mapId)) return; List<int> useIdlist = dungeonUseDict[mapId]; for (int i = 0; i < useIdlist.Count; i++) { int id = useIdlist[i]; AddItemUseTypeDict(id); } } public SkillConfig GetSkillConfig(int itemId) { @@ -1172,19 +910,8 @@ return skillConfig; } public int GetDungeonIDByDrugID(int drugID) { int dungeonID = 0; //DrugToDungeonDict.TryGetValue(drugID, out dungeonID); return dungeonID; } public int[] GetDrugIDListByDungeonID(int dungeonID) { int[] drugIDlist = null; DungeonToDrugDict.TryGetValue(dungeonID, out drugIDlist); return drugIDlist; } #endregion #region 判断物品是否达到使用上限 @@ -1228,442 +955,9 @@ // } #endregion #region 物品吞噬逻辑处理 public EquipColorType colorType { get; private set; } public event Action<EquipColorType> RefreshColorSelectAct; public event Action RefreshEquipDecomNumAct; public int[] defaultUnSelectlist { get; private set; } public int GetBetterEquipCount(List<ItemModel> itemModels) { if (itemModels.IsNullOrEmpty()) { return 0; } var count = 0; foreach (var item in itemModels) { if (ItemLogicUtility.Instance.IsFightUp(item.itemId, item.score) == 1) { count += item.count; } } return count; } public void SetColorSelect(EquipColorType type) { colorType = type; if (RefreshColorSelectAct != null) { RefreshColorSelectAct(type); } SendEquipDevourRecordQuest(); EquipDecomRedCtrl(); } public List<int> devourPlacelist { get; private set; } public int devourRedpointLevel { get; private set; } public int minDevourEquipNum { get; private set; } public void SetDevourEquipPlace() { devourPlacelist = new List<int>(); FuncConfigConfig funcConfig = FuncConfigConfig.Get("PetAbsorbType"); int[] placeArray = ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1); for (int i = 0; i < placeArray.Length; i++) { devourPlacelist.Add(placeArray[i]); } devourRedpointLevel = int.Parse(funcConfig.Numerical2); minDevourEquipNum = int.Parse(funcConfig.Numerical3); } List<ItemModel> devourModellist = new List<ItemModel>(); List<ItemModel> orderDevourModellist = new List<ItemModel>(); public List<ItemModel> GetDevourModellist() { SinglePack singlePack = GetSinglePack(PackType.Item); if (singlePack == null) return null; devourModellist.Clear(); orderDevourModellist.Clear(); foreach (var model in singlePack.GetAllItems().Values) { if (model.config.Type == 29) { devourModellist.Add(model); } else { if (devourPlacelist.Contains(model.config.EquipPlace)) { if (GeneralDefine.equipDecomposeScreen.Contains(model.config.ItemColor)) { devourModellist.Add(model); } } } } orderDevourModellist.AddRange(devourModellist); orderDevourModellist.Sort(CompareByColor); return orderDevourModellist; } public int CompareByColor(ItemModel start, ItemModel next) { bool typeX = start.config.Type == 29 ? true : false; bool typeY = next.config.Type == 29 ? true : false; if (typeX.CompareTo(typeY) != 0) return -typeX.CompareTo(typeY); int colorX = start.config.ItemColor; int colorY = next.config.ItemColor; if (colorX.CompareTo(colorY) != 0) return colorX.CompareTo(colorY); int startIndex = devourModellist.IndexOf(start); int nextIndex = devourModellist.IndexOf(next); if (startIndex.CompareTo(nextIndex) != 0) return startIndex.CompareTo(nextIndex); return 0; } public List<ItemModel> GetCanDevourModellist() { List<ItemModel> canDevourModellist = new List<ItemModel>(); SinglePack singlePack = GetSinglePack(PackType.Item); if (singlePack == null || colorType == EquipColorType.None) { if (RefreshEquipDecomNumAct != null) { RefreshEquipDecomNumAct(); } return null; } foreach (var model in singlePack.GetAllItems().Values) { if (model.config.Type == 29) { if (!defaultUnSelectlist.Contains(model.itemId)) { canDevourModellist.Add(model); } } else { if (IsCanDevour(model)) { canDevourModellist.Add(model); } } } if (RefreshEquipDecomNumAct != null) { RefreshEquipDecomNumAct(); } return canDevourModellist; } public bool IsCanDevour(ItemModel model) { // if (devourPlacelist.Contains(model.config.EquipPlace)) // { // if (GeneralDefine.equipDecomposeScreen.Contains(model.config.ItemColor)) // { // var eatEquipConfig = PetEatEquipConfig.GetEquipColorAndEquipClass(model.config.ItemColor, model.config.LV); // if (eatEquipConfig == null) return false; // if (EquipControlConfig.Get(model.config.LV, 1).realm > PlayerDatas.Instance.baseData.realmLevel) // { // //bug:玩家挂机会打高境界怪,导致装备无法分解背包太满的情况 // //境界大于玩家境界,且在指定颜色品质下的直接分解紫色以下装备 // if (model.config.ItemColor <= (int)colorType && model.config.ItemColor <= 3) // { // return true; // } // } // //1. 非拍卖装备 // //2. 装备品质小于等于当前选择的品质 // //3. 非本职业的套装装备 // //4. 非战斗力提升的装备 // if (!model.isAuction && model.config.ItemColor <= (int)colorType // && !(ItemLogicUtility.Instance.IsJobCompatibleItem(model.itemId) // && model.config.ItemColor == 4 && model.config.SuiteiD != 0) // && ItemLogicUtility.Instance.IsFightUp(model.itemId, model.score) != 1) // { // return true; // } // } // } return false; } public bool IsMaxDecomLv(int decomLv, out int realLv) { realLv = decomLv; // var decomlist = EquipDeComposeConfig.GetValues(); // if (decomLv > decomlist[decomlist.Count - 1].LV) // { // realLv = decomlist[decomlist.Count - 1].LV; // return true; // } return false; } public List<ItemModel> selectDevourlist = new List<ItemModel>(); public void GetSelectDevourList() { selectDevourlist.Clear(); List<ItemModel> itemModels = GetCanDevourModellist(); if (itemModels != null) { selectDevourlist.AddRange(itemModels); } } public void RefreshGetNewItem(ItemModel model) { if (model == null) return; if (CheckIsReachDevourCondi(model)) { selectDevourlist.Add(model); if (RefreshEquipDecomNumAct != null) { RefreshEquipDecomNumAct(); } } } public void AddSelectDevourModellist(ItemModel model) { selectDevourlist.Add(model); if (RefreshEquipDecomNumAct != null) { RefreshEquipDecomNumAct(); } } public bool CheckIsReachDevourCondi(ItemModel model) { if (model.config.Type == 29) { if (!defaultUnSelectlist.Contains(model.itemId)) { return true; } return false; } else { if (IsCanDevour(model)) { return true; } } return false; } public void RemoveSelectDevourModellist(ItemModel model) { if (selectDevourlist.Contains(model)) { selectDevourlist.Remove(model); } if (RefreshEquipDecomNumAct != null) { RefreshEquipDecomNumAct(); } } public Dictionary<int, int> GetDecomAttrDictByLv(int decomLv) { if (decomposeAttrDict.ContainsKey(decomLv)) { return decomposeAttrDict[decomLv]; } return null; } public bool IsReachMinDecomposeNum() { List<ItemModel> itemModels = GetCanDevourModellist(); if (itemModels != null && itemModels.Count >= minDecomposeNum) { return true; } return false; } public void SendEquipdevourQuest(bool auto) { List<ItemModel> items = null; if (auto) { items = GetCanDevourModellist(); } else { items = selectDevourlist; } // if (items == null || items.Count < minDecomposeNum || !ItemLogicUtility.Instance.isPackResetOk || SettingEffectMgr.Instance.isStartDecompose) return; // SettingEffectMgr.Instance.isStartDecompose = true; // isAutoDecompose = auto; // recordAutoDecomNum = Math.Min(items.Count, 100); //单次最多100件分解 // var package = new CA32C_tagCMEquipDecompose(); // var indexLists = new ushort[recordAutoDecomNum]; // var idlist = new uint[recordAutoDecomNum]; // for (int i = 0; i < recordAutoDecomNum; i++) // { // indexLists[i] = (ushort)items[i].gridIndex; // idlist[i] = (uint)items[i].itemId; // if ((items[i].config.EquipPlace == 0 && items[i].config.Type != 29)) // { // return; // } // } // package.Count = (byte)indexLists.Length; // package.IndexList = indexLists; // package.ItemIDList = idlist; // package.IsAuto = (byte)(auto ? 1 : 0); // GameNetSystem.Instance.SendInfo(package); } public void SendEquipDevourRecordQuest() { var record = StringUtility.Contact((int)colorType + 1, 1, 1); var decomSet = new CA32D_tagCMDecomposeSeting(); decomSet.Seting = uint.Parse(record); GameNetSystem.Instance.SendInfo(decomSet); } public int decomposeLv { get; private set; } public int decomposeExp { get; private set; } public int decomposeProgress { get; private set; } public int addDecomposeExp { get; private set; } public int minDecomposeNum { get; private set; } public bool isAutoDecompose { get; set; } public int recordAutoDecomNum { get; private set; } public DecomposeGetMatInfo[] getItems { get; private set; } public event Action RefreshDecomAttrAct; // public void GetServerDecomposeSet(HA31C_tagMCEquipDecomposeInfo info) // { // addDecomposeExp = 0; // int realLv = info.LV + 1; // bool isMax = IsMaxDecomLv(realLv, out realLv); // if (realLv == decomposeLv) // { // addDecomposeExp = (int)info.Exp - decomposeExp; // } // else // { // for (int i = decomposeLv; i <= realLv; i++) // { // var deComposeConfig = EquipDeComposeConfig.Get(i); // if (i == decomposeLv) // { // addDecomposeExp = deComposeConfig.UpNeedExp - decomposeExp; // } // else if (i == realLv) // { // addDecomposeExp += (int)info.Exp; // } // else // { // addDecomposeExp += deComposeConfig.UpNeedExp; // } // } // } // decomposeLv = realLv; // decomposeExp = (int)info.Exp; // decomposeProgress = info.DecomposeCnt; // getItems = JsonMapper.ToObject<DecomposeGetMatInfo[]>(info.GetItemData); // if (info.Seting != 0) // { // string decomSetStr = info.Seting.ToString(); // string colorStr = decomSetStr.Substring(0, 1); // colorType = (EquipColorType)(int.Parse(colorStr) - 1); // string lvStr = decomSetStr.Substring(1, decomSetStr.Length - 2); // } // if (RefreshDecomAttrAct != null) // { // RefreshDecomAttrAct(); // } // } /// <summary> /// 设置获得炼丹材料的展示数据 /// </summary> /// <param name="getMatInfos"></param> /// <returns></returns> private List<DecomposeGetMatInfo> getMatInfos = new List<DecomposeGetMatInfo>(); public List<DecomposeGetMatInfo> SetShowMatInfo() { getMatInfos.Clear(); int sumMatCnt = 0; if (getItems != null) { for (int i = 0; i < getItems.Length; i++) { if (getItems[i].Count > 0) { sumMatCnt += getItems[i].Count; } else { sumMatCnt += 1; } } } if (sumMatCnt > 5) { for (int i = 0; i < getItems.Length; i++) { getMatInfos.Add(getItems[i]); } } else { if (getItems != null) { for (int i = 0; i < getItems.Length; i++) { //if (getItems[i].Count > 0) //{ // for (int j = 0; j < getItems[i].Count; j++) // { // DecomposeGetMatInfo matInfo = new DecomposeGetMatInfo(); // matInfo.ItemID = getItems[i].ItemID; // matInfo.Count = 1; // matInfo.IsSuite = getItems[i].IsSuite; // matInfo.UserData = getItems[i].UserData; // getMatInfos.Add(matInfo); // } //} //else { getMatInfos.Add(getItems[i]); } } } } return getMatInfos; } public enum EquipColorType { @@ -1673,177 +967,11 @@ Purple = 3, Orange = 4, Red = 5, //后续IL开发添加预设 default1, default2, default3, default4, All = 10, } public class DecomposeGetMatInfo { public int ItemID; public int Count; public int IsSuite; public string UserData; } #endregion #region 丹药逻辑处理 // private int CompareMakeDrug(AttrFruitConfig start, AttrFruitConfig end) // { // ItemConfig configS = ItemConfig.Get(start.ID); // ItemConfig configE = ItemConfig.Get(end.ID); // if (configS.RealmLimit.CompareTo(configE.RealmLimit) != 0) // { // return configS.RealmLimit.CompareTo(configE.RealmLimit); // } // if (configS.LV.CompareTo(configE.LV) != 0) // { // return configS.LV.CompareTo(configE.LV); // } // int x = makeDruglist.IndexOf(start); // int y = makeDruglist.IndexOf(end); // if (x.CompareTo(y) != 0) x.CompareTo(y); // return 0; // } // List<AttrFruitConfig> drugOrderlist = new List<AttrFruitConfig>(); // List<AttrFruitConfig> haveDruglist = new List<AttrFruitConfig>(); // public List<AttrFruitConfig> GetDrugOrderByCnt() // { // drugOrderlist.Clear(); // haveDruglist.Clear(); // drugOrderlist.AddRange(makeDruglist); // drugOrderlist.Sort(CompareByIsHave); // for (int i = 0; i < drugOrderlist.Count; i++) // { // if (IsHaveDrugUse(drugOrderlist[i])) // { // haveDruglist.Add(drugOrderlist[i]); // } // } // haveDruglist.Sort(CompareMakeDrug); // for (int i = 0; i < haveDruglist.Count; i++) // { // drugOrderlist[i] = haveDruglist[i]; // } // return drugOrderlist; // } public bool CheckIsDrugById(int itemId) { // for (int i = 0; i < makeDruglist.Count; i++) // { // if (makeDruglist[i].ID == itemId) // { // return true; // } // } return false; } // public int CompareByIsHave(AttrFruitConfig start, AttrFruitConfig end) // { // bool isHaveStart = IsHaveDrugUse(start); // bool isHaveEnd = IsHaveDrugUse(end); // if (isHaveStart.CompareTo(isHaveEnd) != 0) return -isHaveStart.CompareTo(isHaveEnd); // //isHaveStart = IsHaveDrugRecycle(start); // //isHaveEnd = IsHaveDrugRecycle(end); // //if (isHaveStart.CompareTo(isHaveEnd) != 0) return -isHaveStart.CompareTo(isHaveEnd); // isHaveStart = GetItemCountByID(PackType.Item, start.ID) > 0 ? true : false; // isHaveEnd = GetItemCountByID(PackType.Item, end.ID) > 0 ? true : false; // if (isHaveStart.CompareTo(isHaveEnd) != 0) return isHaveStart.CompareTo(isHaveEnd); // isHaveStart = IsReachMaxUseDrug(start); // isHaveEnd = IsReachMaxUseDrug(end); // if (isHaveStart.CompareTo(isHaveEnd) != 0) return isHaveStart.CompareTo(isHaveEnd); // int x = makeDruglist.IndexOf(start); // int y = makeDruglist.IndexOf(end); // if (x.CompareTo(y) != 0) return x.CompareTo(y); // return 0; // } // public bool IsHaveDrugUse(AttrFruitConfig fruitConfig) // { // if (!IsReachMaxUseDrug(fruitConfig)) // { // return GetItemCountByID(PackType.Item, fruitConfig.ID) > 0 ? true : false; // } // return false; // } // public bool IsHaveDrugRecycle(AttrFruitConfig fruitConfig) // { // if (IsReachMaxUseDrug(fruitConfig)) // { // return GetItemCountByID(PackType.Item, fruitConfig.ID) > 0 ? true : false; // } // return false; // } // public bool IsReachMaxUseDrug(AttrFruitConfig fruitConfig) // { // if (fruitConfig == null) // { // return false; // } // if (fruitConfig.FuncID == 2) // { // AlchemyDrugUseLimit drugUseLimit; // if (alchemyModel.TryGetAlchemyUseLimit(fruitConfig.ID, out drugUseLimit)) // { // return drugUseLimit.IsReachLimit(); // } // } // int useNum = GetItemTotalUsedTimes(fruitConfig.ID); // if (useNum >= fruitConfig.basicUseLimit) // { // return true; // } // return false; // } #endregion //获取背包中的一件可拍卖物品 优先其他职业 public string GetAuctionEquip() { var itemPackage = GetSinglePack(PackType.Item); var allItems = itemPackage.GetAllItems(); var guid = string.Empty; List<string> guidList = new List<string>(); foreach (var item in allItems.Values) { var isAuction = item.isAuction; if (isAuction && ItemLogicUtility.Instance.IsRealmEquip(item.itemId)) { if (!ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId)) { return item.guid; } else { if (guid != string.Empty) continue; guid = item.guid; } } } return guid; } public void ReceiveAwardNotify(HA801_tagMCGiveAwardInfo netPack) { Main/System/KnapSack/VirtualPackManager.cs
@@ -60,8 +60,7 @@ void ParseConfig() { var funcConfig = FuncConfigConfig.Get("RunePackageNum"); virtualPackCapacityDict.Add(PackType.RunePack, int.Parse(funcConfig.Numerical1)); // virtualPackCapacityDict.Add(PackType.RunePack, int.Parse(funcConfig.Numerical1)); } public bool IsVirtualPack(PackType packType) Main/System/Main/HomeWin.cs
New file @@ -0,0 +1,62 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// <summary> /// 游戏主界面 /// </summary> public class HomeWin : UIBase { /// <summary> /// 初始化组件 /// </summary> protected override void InitComponent() { } public override void Refresh() { UpdatePlayerInfo(); UpdateCurrency(); } protected override void OnPreOpen() { Refresh(); } // protected override void OnPreClose() // { // } /// <summary> /// 更新玩家信息 /// </summary> private void UpdatePlayerInfo() { // 从玩家数据中获取信息并更新UI // 例如: // playerNameText.text = PlayerData.Instance.Name; // playerLevelText.text = "Lv." + PlayerData.Instance.Level; // powerText.text = PlayerData.Instance.Power.ToString(); // expSlider.value = PlayerData.Instance.ExpRatio; } /// <summary> /// 更新货币信息 /// </summary> private void UpdateCurrency() { // 从玩家数据中获取货币信息并更新UI // 例如: // goldText.text = PlayerData.Instance.Gold.ToString(); // diamondText.text = PlayerData.Instance.Diamond.ToString(); // energyText.text = PlayerData.Instance.Energy + "/" + PlayerData.Instance.MaxEnergy; } } Main/System/Main/HomeWin.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 428e25b7deff7474e8c611d41bbbaf7b MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/System/Main/MainWin.cs
@@ -4,16 +4,13 @@ using UnityEngine.UI; /// <summary> /// 游戏主界面 /// 游戏主界面底部功能按钮 /// </summary> public class MainWin : UIBase { public GameObject windowBackground; // 底部按钮组 public Button[] bottomTabButtons; private GameObject[] bottomTabEffects; // 当前选中的底部标签索引 private int currentTabIndex = 0; @@ -48,55 +45,25 @@ } protected override void OnOpen() public override void Refresh() { base.OnOpen(); UpdateCurrency(); } protected override void OnPreOpen() { // 默认选中第一个标签 SelectBottomTab(0); // 刷新UI Refresh(); } public override void Refresh() { UpdatePlayerInfo(); UpdateCurrency(); } protected override void OnPreOpen() { base.OnPreOpen(); bottomTabEffects = new GameObject[bottomTabButtons.Length]; for (int i = 0; i < bottomTabButtons.Length; i++) { bottomTabEffects[i] = PlayUIEffect(1004, bottomTabButtons[i].transform, false); } } protected override void OnPreClose() { base.OnPreClose(); foreach (var effectGO in bottomTabEffects) { DestroyImmediate(effectGO); } bottomTabEffects = null; } // protected override void OnPreClose() // { // } /// <summary> /// 更新玩家信息 /// </summary> private void UpdatePlayerInfo() { // 从玩家数据中获取信息并更新UI // 例如: // playerNameText.text = PlayerData.Instance.Name; // playerLevelText.text = "Lv." + PlayerData.Instance.Level; // powerText.text = PlayerData.Instance.Power.ToString(); // expSlider.value = PlayerData.Instance.ExpRatio; } /// <summary> /// 更新货币信息 @@ -115,6 +82,13 @@ /// </summary> private void OnBottomTabButtonClicked(int index) { if (index == 0) { if (currentSubUI != null && currentSubUI.name == "HomeWin") { //打开主界面的情况下再点击按钮,执行攻击逻辑 } } SelectBottomTab(index); } @@ -150,12 +124,8 @@ // 遍历所有按钮,设置选中状态 for (int i = 0; i < bottomTabButtons.Length; i++) { // 这里可以根据是否选中设置按钮的视觉效果 // 例如:改变图片、颜色等 // bottomTabButtons[i].GetComponent<Image>().color = (i == currentTabIndex) ? Color.blue : Color.white; // 或者激活/禁用选中图标 bottomTabButtons[i].image.color = (i == currentTabIndex) ? Color.white : Color.gray; // bottomTabButtons[i].image.color = (i == currentTabIndex) ? Color.white : Color.gray; } } @@ -179,34 +149,29 @@ { Debug.Log("打开子界面 : " + index); // 主城 阵容 同盟 福利 冒险 windowBackground.SetActive(index != 4); // 主城 内政 武将 挑战 公会 //根据索引打开不同的界面 switch (index) { case 0: // 例如:打开主页界面 // currentSubUI = UIManager.Instance.OpenUI<HomeUI>(); // 打开主页界面 currentSubUI = UIManager.Instance.OpenWindow<HomeWin>(); Debug.Log("打开主城界面"); break; case 1: // 例如:打开角色界面 // currentSubUI = UIManager.Instance.OpenUI<CharacterUI>(); Debug.Log("打开阵容界面"); break; case 2: // 例如:打开背包界面 // currentSubUI = UIManager.Instance.OpenUI<BagUI>(); Debug.Log("打开同盟界面"); break; case 3: // 例如:打开任务界面 // currentSubUI = UIManager.Instance.OpenUI<QuestUI>(); Debug.Log("打开福利界面"); break; case 4: // 例如:打开设置界面 currentSubUI = UIManager.Instance.OpenWindow<PlaceWin>(); //currentSubUI = UIManager.Instance.OpenWindow<PlaceWin>(); Debug.Log("打开冒险界面"); break; default: Main/System/MainInterfacePanel.meta
File was deleted Main/System/MainInterfacePanel/MainRedDot.cs
File was deleted Main/System/Recharge/RechargeManager.cs
@@ -217,11 +217,6 @@ #endif } } var _funcConfig = FuncConfigConfig.Get("ChargeDelayTime"); m_CTGDelayTime = int.Parse(_funcConfig.Numerical1); m_CTGLimitDelayTime = int.Parse(_funcConfig.Numerical2); _funcConfig = FuncConfigConfig.Get("FirstGoldMobs"); firstRechargeWeapon = ConfigParse.GetDic<int, int>(_funcConfig.Numerical1); } public List<int> GetCTGConfigs(string _appid) @@ -305,7 +300,6 @@ #region 充值 public Dictionary<int, int> firstRechargeWeapon { get; private set; } public Dictionary<int, List<Item>> m_RechargeGainItemDict { get; private set; } private Dictionary<int, RechargeCount> m_RechargeCountDict = new Dictionary<int, RechargeCount>(); Dictionary<string, List<OrderInfoConfig>> m_OrderInfoDict = new Dictionary<string, List<OrderInfoConfig>>(); Main/System/Redpoint/MainRedDot.cs
New file @@ -0,0 +1,115 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, November 16, 2017 //-------------------------------------------------------- public class MainRedDot : Singleton<MainRedDot> { //主界面 public const int MainAffairsRedpoint = 1; //内政 public Redpoint redpointAffairs = new Redpoint(MainAffairsRedpoint); public const int MainHerosRedpoint = 2; //武将 public Redpoint redpointHeros = new Redpoint(MainHerosRedpoint); public const int MainChallengeRedpoint = 3; //挑战 public Redpoint redpointChallenge = new Redpoint(MainChallengeRedpoint); public const int MainGuildRedpoint = 4; //公会 public Redpoint redpointGuild = new Redpoint(MainGuildRedpoint); public const int RedPoint_key = 11; public const int FAIRY_REDPOINT_KEY1 = 107; public const int RedPoint_UpFuncBase = 12; private Redpoint rightTopRedpint = new Redpoint(RedPoint_UpFuncBase); private Redpoint redPointStrePrentOne = new Redpoint(RedPoint_key); //public Redpoint jadeDynastyRedpoint = new Redpoint(1, 117); #region 邮件红点 public const int RedPoint_MainMailKey = 24; public const int RedPoint_MailFuncKey = 2401; public Redpoint redpointMainMail = new Redpoint(RedPoint_MainMailKey); public Redpoint redpointMailFunc = new Redpoint(RedPoint_MainMailKey, RedPoint_MailFuncKey); #endregion #region 好友红点 public const int RedPoint_FriendQuestKey = 26; public const int RedPoint_FriendChatKey = 25; //好友 public Redpoint redpointFriendQuest = new Redpoint(RedPoint_FriendQuestKey); public Redpoint redPointFriendChat = new Redpoint(RedPoint_FriendChatKey); #endregion #region 背包红点 public const int RedPoint_MainPackKey = 102; public const int RedPoint_BagFuncKey = 10201; public const int RedPoint_DepotFuncKey = 10204; public Redpoint redPointMainPack = new Redpoint(RedPoint_MainPackKey); public Redpoint redPointBagFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_BagFuncKey); public Redpoint redPointDepotFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_DepotFuncKey); #endregion #region 仙盟公用红点 public const int FAIRY_REDPOINT_KEY2 = 10701; public Redpoint fairyLaunch = new Redpoint(RedPoint_key, FAIRY_REDPOINT_KEY1); public Redpoint fairyBaseFuncRedPoint = new Redpoint(FAIRY_REDPOINT_KEY1, FAIRY_REDPOINT_KEY2); #endregion #region 仙盟商店红点 public const int FAIRYStore_REDPOINT_KEY3 = 1070106; public Redpoint fairyStoreRedPoint = new Redpoint(FAIRY_REDPOINT_KEY2, FAIRYStore_REDPOINT_KEY3); #endregion #region 开服活动红点 public const int REDPOINT_OPENSERVER = 209; public Redpoint openServerRedpoint = new Redpoint(REDPOINT_OPENSERVER); //280 开头用于节日祝福 public const int RedPoint_HolidayWishes = 280; public Redpoint holidayWishesRedpoint = new Redpoint(RedPoint_HolidayWishes); #endregion public const int REDPOINT_OPENRANK = 258; public Redpoint openRankRedpoint = new Redpoint(REDPOINT_OPENRANK); #region 仙盟活动红点 public readonly Redpoint fairyActivityRedpoint = new Redpoint(218); #endregion public static int DailySpecialsRedpoint = 439; //每日特惠入口红点 public static int BlessedLandRedpoint = 444; //福地红点 public const int CustomizedGiftRedpoint = 448; //自选礼包 public const int LoginZhanLingRedpoint = 449; //登录战令 public const int PhantasmPavilionRepoint = 459; //幻境阁 public const int FairyEmbleManageRepoint = 462;//仙盟徽章管理入口红点 public const int CycleHallRepoint = 463; //轮回殿 public const int YunShiRepoint = 464; //运势 public const int LianQiRepoint = 465; //仙匠大会 public const int FairySiegeRepoint = 466; //仙盟攻城战 public const int MailRepoint = 467; //邮箱 public void Register() { } } Main/System/Redpoint/MainRedDot.cs.meta
Main/System/Redpoint/RedpointBehaviour.cs
@@ -6,114 +6,119 @@ using System.Collections; using UnityEngine.UI; public class RedpointBehaviour : MonoBehaviour { [SerializeField] int m_RedpointId; public int redpointId { get { return m_RedpointId; } set { m_RedpointId = value; UpdateRedpoint(value); } public class RedpointBehaviour : MonoBehaviour { [SerializeField] int m_RedpointId; public int redpointId { get { return m_RedpointId; } [SerializeField] Transform m_SimpleRedpoint; public Transform simpleRedpoint { get { return m_SimpleRedpoint; } set { m_RedpointId = value; UpdateRedpoint(value); } [SerializeField] Transform m_QuantityRedpoint; public Transform quantityRedpoint { get { return m_QuantityRedpoint; } } [SerializeField] Text m_Quantity; public Text quantityText { get { return m_Quantity; } } [SerializeField] Transform m_FullRedpoint; [SerializeField] Transform m_GetRewardRedpoint; bool m_Show = false; public bool show { get { return m_Show; } set { if (m_Show != value) { m_Show = value; this.SetActive(m_Show); } } } private void Awake() { UpdateRedpoint(redpointId); RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint; } private void OnDestroy() { RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint; } void UpdateRedpoint(int _id) { if (_id != redpointId) { return; } var state = RedpointCenter.Instance.GetRedpointState(redpointId); if (m_SimpleRedpoint != null) { m_SimpleRedpoint.SetActive(state == RedPointState.Simple); } if (m_QuantityRedpoint != null) { m_QuantityRedpoint.SetActive(state == RedPointState.Quantity); } if (m_Quantity != null) { m_Quantity.SetActive(state == RedPointState.Quantity); } if (m_FullRedpoint != null) { m_FullRedpoint.SetActive(state == RedPointState.Full); } if (m_GetRewardRedpoint != null) { m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward); } if (state == RedPointState.Quantity && m_Quantity != null) { var count = RedpointCenter.Instance.GetRedpointCount(redpointId); m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : ""; } } } [SerializeField] Transform m_SimpleRedpoint; public Transform simpleRedpoint { get { return m_SimpleRedpoint; } } [SerializeField] Transform m_QuantityRedpoint; public Transform quantityRedpoint { get { return m_QuantityRedpoint; } } [SerializeField] Text m_Quantity; public Text quantityText { get { return m_Quantity; } } [SerializeField] Transform m_FullRedpoint; [SerializeField] Transform m_GetRewardRedpoint; [SerializeField] Transform m_NewRedpoint; bool m_Show = false; public bool show { get { return m_Show; } set { if (m_Show != value) { m_Show = value; this.SetActive(m_Show); } } } private void Awake() { UpdateRedpoint(redpointId); RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint; } private void OnDestroy() { RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint; } void UpdateRedpoint(int _id) { if (_id != redpointId) { return; } var state = RedpointCenter.Instance.GetRedpointState(redpointId); if (m_SimpleRedpoint != null) { m_SimpleRedpoint.SetActive(state == RedPointState.Simple); } if (m_QuantityRedpoint != null) { m_QuantityRedpoint.SetActive(state == RedPointState.Quantity); } if (m_Quantity != null) { m_Quantity.SetActive(state == RedPointState.Quantity); } if (m_FullRedpoint != null) { m_FullRedpoint.SetActive(state == RedPointState.Full); } if (m_GetRewardRedpoint != null) { m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward); } if (state == RedPointState.Quantity && m_Quantity != null) { var count = RedpointCenter.Instance.GetRedpointCount(redpointId); m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : ""; } if (m_NewRedpoint != null) { m_NewRedpoint.SetActive(state == RedPointState.New); } } } Main/System/Redpoint/RedpointCenter.cs
@@ -3,128 +3,128 @@ using UnityEngine; using System; public class RedpointCenter : Singleton<RedpointCenter> public class RedpointCenter : Singleton<RedpointCenter> { public event Action<int> redpointValueChangeEvent; Dictionary<int, Redpoint> redpoints = new Dictionary<int, Redpoint>(); Dictionary<int, List<int>> parentChildren = new Dictionary<int, List<int>>(); public RedpointCenter() { public event Action<int> redpointValueChangeEvent; Dictionary<int, Redpoint> redpoints = new Dictionary<int, Redpoint>(); Dictionary<int, List<int>> parentChildren = new Dictionary<int, List<int>>(); public RedpointCenter() { } public void ResetAllRedpointState() { foreach (var redpoint in redpoints.Values) { redpoint.state = RedPointState.None; } } public void Register(Redpoint _redpoint) { var id = _redpoint.id; if (redpoints.ContainsKey(id)) { Debug.LogErrorFormat("重复注册红点:id->{0}", id); } redpoints[id] = _redpoint; var parentId = _redpoint.parent; if (parentId > 0) { List<int> children = null; if (!parentChildren.TryGetValue(parentId, out children)) { parentChildren[parentId] = children = new List<int>(); } if (!children.Contains(id)) { children.Add(id); } } } public void Report(Redpoint _redpoint) { var parentId = _redpoint.parent; if (redpointValueChangeEvent != null) { redpointValueChangeEvent(_redpoint.id); } if (parentId > 0) { TestParentValue(_redpoint.parent); } } public void ReportWithoutParent(Redpoint _redpoint) { if (redpointValueChangeEvent != null) { redpointValueChangeEvent(_redpoint.id); } } public RedPointState GetRedpointState(int _id) { Redpoint redpoint = null; if (this.redpoints.TryGetValue(_id, out redpoint)) { return redpoint.state; } else { return RedPointState.None; } } public int GetRedpointCount(int _id) { Redpoint redpoint = null; if (this.redpoints.TryGetValue(_id, out redpoint)) { return redpoint.count; } else { return 0; } } void TestParentValue(int _parentId) { List<int> children = null; Redpoint parent = null; if (redpoints.TryGetValue(_parentId, out parent) && parentChildren.TryGetValue(_parentId, out children)) { var parentState = RedPointState.None; for (int i = 0; i < children.Count; i++) { Redpoint child = null; if (redpoints.TryGetValue(children[i], out child)) { if (child.state > parentState) { parentState = child.state; } } if (parentState == RedPointState.Full) { break; } } parent.state = parentState; } } } public void ResetAllRedpointState() { foreach (var redpoint in redpoints.Values) { redpoint.state = RedPointState.None; } } public void Register(Redpoint _redpoint) { var id = _redpoint.id; if (redpoints.ContainsKey(id)) { Debug.LogErrorFormat("重复注册红点:id->{0}", id); } redpoints[id] = _redpoint; var parentId = _redpoint.parent; if (parentId > 0) { List<int> children = null; if (!parentChildren.TryGetValue(parentId, out children)) { parentChildren[parentId] = children = new List<int>(); } if (!children.Contains(id)) { children.Add(id); } } } public void Report(Redpoint _redpoint) { var parentId = _redpoint.parent; if (redpointValueChangeEvent != null) { redpointValueChangeEvent(_redpoint.id); } if (parentId > 0) { TestParentValue(_redpoint.parent); } } public void ReportWithoutParent(Redpoint _redpoint) { if (redpointValueChangeEvent != null) { redpointValueChangeEvent(_redpoint.id); } } public RedPointState GetRedpointState(int _id) { Redpoint redpoint = null; if (this.redpoints.TryGetValue(_id, out redpoint)) { return redpoint.state; } else { return RedPointState.None; } } public int GetRedpointCount(int _id) { Redpoint redpoint = null; if (this.redpoints.TryGetValue(_id, out redpoint)) { return redpoint.count; } else { return 0; } } void TestParentValue(int _parentId) { List<int> children = null; Redpoint parent = null; if (redpoints.TryGetValue(_parentId, out parent) && parentChildren.TryGetValue(_parentId, out children)) { var parentState = RedPointState.None; for (int i = 0; i < children.Count; i++) { Redpoint child = null; if (redpoints.TryGetValue(children[i], out child)) { if (child.state > parentState) { parentState = child.state; } } if (parentState == RedPointState.Full) { break; } } parent.state = parentState; } } } Main/System/Store/StoreModel.cs
@@ -28,13 +28,11 @@ public class StoreModel : GameSystemManager<StoreModel> { public int[] normalBuyCoinsTypes { get; private set; } public string UNIONSTORESAVE_KEY { get; private set; } public string MUSTBUYSAVE_KEY { get; private set; } public string StoreEffectRecord_Key { get; private set; } public Dictionary<int, Dictionary<int, int>> JobReplaceIdDict = new Dictionary<int, Dictionary<int, int>>(); public Dictionary<int, string> resetTimeDict { get; private set; } public Dictionary<int, int> showCoinsUIDict { get; private set; } public Dictionary<int, int> showCoinUIDict { get; private set; } public int storeTrailerLv { get; private set; } @@ -72,15 +70,6 @@ ParseFuncConfig(); ParseStoreConfig(); SetShopRedpoint(); FuncConfigConfig buyItemHinit = FuncConfigConfig.Get("BuyItemHinit"); normalBuyCoinsTypes = ConfigParse.GetMultipleStr<int>(buyItemHinit.Numerical1); FuncConfigConfig restTimeConfig = FuncConfigConfig.Get("RefreshText"); resetTimeDict = ConfigParse.GetDic<int, string>(restTimeConfig.Numerical1); FuncConfigConfig mallCurrency = FuncConfigConfig.Get("MallCurrency"); showCoinsUIDict = ConfigParse.GetDic<int, int>(mallCurrency.Numerical1); FuncConfigConfig mallPush = FuncConfigConfig.Get("MallPush"); storeTrailerLv = int.Parse(mallPush.Numerical1); } public void OnBeforePlayerDataInitialize() @@ -677,19 +666,7 @@ } #endregion public string GetStoreRefreshTimeByType(int type) { if (resetTimeDict == null || !resetTimeDict.ContainsKey(type)) return string.Empty; switch (type) { case 7: int willRefreshTime = GetWillRefreshTime(); return Language.Get(resetTimeDict[type], UIHelper.AppendColor(TextColType.Green, TimeUtility.SecondsToHMS(willRefreshTime), true)); default: return Language.Get(resetTimeDict[type]); } } public string GetMysteryStoreRefreshTime() { @@ -1056,28 +1033,15 @@ public void GetBuyResult(HA811_tagMCShoppingResult result) { Debug.Log("GetBuyResult"); //Debug.Log("GetBuyResult"); StoreConfig tagStore = StoreConfig.Get((int)result.ItemIndex); if (tagStore != null) { ItemConfig chinModel = ItemConfig.Get(GetReplaceId(tagStore.ID, tagStore.ItemID)); if (!normalBuyCoinsTypes.Contains(tagStore.MoneyType)) if (tagStore.RemindSuccess == 0) { if (tagStore.RemindSuccess == 0) { return; } // BuySuccessModel.Instance.SetBuySuccessModel(chinModel.ID, (int)result.ItemCnt); // if (!WindowCenter.Instance.IsOpen<BuySuccessWin>()) // { // WindowCenter.Instance.Open<BuySuccessWin>(); // } } else { float costMoney = tagStore.MoneyNumber; SysNotifyMgr.Instance.ShowTip("BuyItemHinit", costMoney, tagStore.MoneyType, chinModel.ItemName); return; } if (RefreshBuyResultEvent != null) Main/System/Task/TaskManager.cs
@@ -170,36 +170,36 @@ // StageLoad.Instance.onStageLoadFinish += onStageLoadFinish; // NPCInteractProcessor.s_NpcInteractEvent += NpcInterac; string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1; BossDelayTimeint = float.Parse(BossDelayTime); var Task_Auto = FuncConfigConfig.Get("TaskAuto"); TaskAutoLv = int.Parse(Task_Auto.Numerical1); TaskAutoTime = int.Parse(Task_Auto.Numerical2); mainTaskAutoWaitTime = int.Parse(Task_Auto.Numerical3) / 1000f; var mapIds = ConfigParse.GetMultipleStr<int>(Task_Auto.Numerical4); if (mapIds != null && mapIds.Length > 0) { allowAutoTaskMapIds.AddRange(mapIds); } // string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1; // BossDelayTimeint = float.Parse(BossDelayTime); // var Task_Auto = FuncConfigConfig.Get("TaskAuto"); // TaskAutoLv = int.Parse(Task_Auto.Numerical1); // TaskAutoTime = int.Parse(Task_Auto.Numerical2); // mainTaskAutoWaitTime = int.Parse(Task_Auto.Numerical3) / 1000f; // var mapIds = ConfigParse.GetMultipleStr<int>(Task_Auto.Numerical4); // if (mapIds != null && mapIds.Length > 0) // { // allowAutoTaskMapIds.AddRange(mapIds); // } FairyAuTaskCount_Day = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical1.Split('|')[1].Split('_')[1]); FairyAuTaskCount_Round = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical2.Split('|')[1].Split('_')[1]); // FairyAuTaskCount_Day = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical1.Split('|')[1].Split('_')[1]); // FairyAuTaskCount_Round = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical2.Split('|')[1].Split('_')[1]); var cliengGuardConfig = FuncConfigConfig.Get("ClientGuardDungeon"); clientGuardDugeonTask = int.Parse(cliengGuardConfig.Numerical5); // var cliengGuardConfig = FuncConfigConfig.Get("ClientGuardDungeon"); // clientGuardDugeonTask = int.Parse(cliengGuardConfig.Numerical5); var funcConfig = FuncConfigConfig.Get("AutoSelectTaskChain"); var taskChainArray = LitJson.JsonMapper.ToObject<int[][]>(funcConfig.Numerical1); if (taskChainArray != null) { for (int i = 0; i < taskChainArray.Length; i++) { priorityTaskChains.Add(taskChainArray[i]); } } var config = FuncConfigConfig.Get("NPCTalk"); npcImages = JsonMapper.ToObject<List<int>>(config.Numerical1); playerJobImages = JsonMapper.ToObject<List<int>>(config.Numerical2); // var funcConfig = FuncConfigConfig.Get("AutoSelectTaskChain"); // var taskChainArray = LitJson.JsonMapper.ToObject<int[][]>(funcConfig.Numerical1); // if (taskChainArray != null) // { // for (int i = 0; i < taskChainArray.Length; i++) // { // priorityTaskChains.Add(taskChainArray[i]); // } // } // var config = FuncConfigConfig.Get("NPCTalk"); // npcImages = JsonMapper.ToObject<List<int>>(config.Numerical1); // playerJobImages = JsonMapper.ToObject<List<int>>(config.Numerical2); } public override void Release() Main/Utility/EnumHelper.cs
@@ -1144,6 +1144,7 @@ Quantity = 2, Full = 3, GetReward = 4, New = 5, }