| Core/GameEngine/Model/Config/PetClassCostConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Mount/PlayerMountDatas.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/Pet/PlayerPetDatas.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Config/PetClassCostConfig.cs
@@ -1,6 +1,6 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, January 06, 2018 // [ Date ]: Friday, January 04, 2019 //-------------------------------------------------------- using UnityEngine; @@ -11,11 +11,12 @@ public partial class PetClassCostConfig : ConfigBase { public int ID { get ; private set ; } public int PetID { get ; private set ; } public int Rank { get ; private set ; } public int UpNeedExp { get ; private set ; } public int AtkAdd { get ; private set ; } public int ID { get ; private set ; } public int PetID { get ; private set ; } public int Rank { get ; private set ; } public int UpNeedExp { get ; private set ; } public int AtkAdd { get ; private set ; } public int NeedExpTotal { get ; private set ; } public override string getKey() { @@ -25,15 +26,17 @@ public override void Parse() { try { ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; PetID=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; Rank=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; UpNeedExp=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; AtkAdd=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; ID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; PetID=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; Rank=IsNumeric(rawContents[2]) ? int.Parse(rawContents[2]):0; UpNeedExp=IsNumeric(rawContents[3]) ? int.Parse(rawContents[3]):0; AtkAdd=IsNumeric(rawContents[4]) ? int.Parse(rawContents[4]):0; NeedExpTotal=IsNumeric(rawContents[5]) ? int.Parse(rawContents[5]):0; } catch (Exception ex) { Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta
@@ -1,7 +1,7 @@ fileFormatVersion: 2 guid: a58409c48a307e24eb39a8c2e933c8e8 timeCreated: 1515213576 licenseType: Pro timeCreated: 1546593597 licenseType: Free MonoImporter: serializedVersion: 2 defaultReferences: [] System/Mount/PlayerMountDatas.cs
@@ -332,22 +332,23 @@ } int GetMinLV = 100; int GetMountID = 0; for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低且有未激活技能的坐骑 List<int> IntListSkill = new List<int>(); for (int j = 0; j < SortMount.Count; j++)//选取出可升级坐骑等级最低且有未激活技能的坐骑切经验最少 { int Id = SortMount[j].HorseID; int GetHorseMaxLv = GetMountSkillMaxLV(Id); if (IntList.Contains(Id) && _DicHorse.ContainsKey(Id)) { if (_DicHorse[Id].Lv < GetMinLV && _DicHorse[Id].Lv< GetHorseMaxLv) if (_DicHorse[Id].Lv < GetHorseMaxLv) { GetMinLV = _DicHorse[Id].Lv; GetMountID = Id; IntListSkill.Add(Id); } } } if (GetMountID != 0 && ASingleFeedRedPoint.ContainsKey(GetMountID)) int SkillHorseId = GetRedPointMountID(IntListSkill); if (SkillHorseId != 0 && ASingleFeedRedPoint.ContainsKey(SkillHorseId)) { ASingleFeedRedPoint[GetMountID].state = RedPointState.Simple; ASingleFeedRedPoint[SkillHorseId].state = RedPointState.Simple; return; } @@ -372,7 +373,7 @@ } public int GetMinExpMount() { { foreach (var key in ASingleFeedRedPoint.Keys)//当存在驯养红点时选中当有红点的那只 { if (ASingleFeedRedPoint[key].state == RedPointState.Simple) @@ -382,11 +383,25 @@ } int GetMountID = 0; int MountLV = 999; List<int> IntListSkill = new List<int>(); foreach (var key in _DicHorse.Keys) { var mountConfig = Config.Instance.Get<HorseConfig>(key); if (_DicHorse[key].Lv < mountConfig.MaxLV) { IntListSkill.Add(key); } } int SkillHorseId = GetRedPointMountID(IntListSkill); if (SkillHorseId != 0) { GetMountID = SkillHorseId; return GetMountID; } foreach (var key in _DicHorse.Keys)//无红点时跳转选中最低阶数且未满级 { var mountConfig = Config.Instance.Get<HorseConfig>(key); if (_DicHorse[key].Lv < MountLV && _DicHorse[key].Lv< mountConfig.MaxLV) if (_DicHorse[key].Lv < MountLV && _DicHorse[key].Lv < mountConfig.MaxLV) { GetMountID = key; MountLV = _DicHorse[key].Lv; @@ -395,6 +410,56 @@ return GetMountID; } private int GetRedPointMountID(List<int> MountList) { int GetSkillMinLv = 999; for (int i = 0; i < MountList.Count; i++) { int SkillminLv = GetSkillLvDis(MountList[i]); if (SkillminLv < GetSkillMinLv) { GetSkillMinLv = SkillminLv; } } int mountId = 0; int ExpNumber = 999999999; for (int i = 0; i < MountList.Count; i++) { int SkillLv = GetSkillLvDis(MountList[i]); if (SkillLv > GetSkillMinLv) { continue; } var Hor1 = HorseUpConfig.GetHorseIDAndLV(MountList[i], SkillLv); var Hor2 = HorseUpConfig.GetHorseIDAndLV(MountList[i],_DicHorse[(MountList[i])].Lv); int Exp = Hor1.NeedExpTotal - Hor2.NeedExpTotal - _DicHorse[(MountList[i])].Exp; if (Exp < ExpNumber) { ExpNumber = Exp; mountId = MountList[i]; } } return mountId; } private int GetSkillLvDis(int MountId)//获取离升级最近的技能等级 { int SkillLv = 0; foreach (var key in GetMountSkillAndItem.Keys) { if (_DicHorse.ContainsKey(MountId) && GetMountSkillAndItem[key].HorseID == MountId) { if (GetMountSkillAndItem[key].HorseLV > _DicHorse[MountId].Lv) { SkillLv = GetMountSkillAndItem[key].HorseLV; return SkillLv; } } } return SkillLv; } public int GetMountSkillMaxLV(int MountId)//获取坐骑最大技能等级 { int SkillLv = 0; System/Pet/PlayerPetDatas.cs
@@ -340,7 +340,7 @@ int _NeedExp = PetClassCostConfig.GetPetIdAndRank(petID, _DicPetBack[petID].PetClass).UpNeedExp; int NeedExp = _NeedExp - _DicPetBack[petID].petExp; int NeedNumber = Mathf.CeilToInt((float)NeedExp / PetDanExp); if (itemCount>= NeedNumber) if (itemCount >= NeedNumber) { ListInt.Add(petID); } @@ -356,7 +356,8 @@ return; } } for (int i = 0; i < ListInt.Count; i++)//选择出升级灵宠等级最低且有技能未解锁的 List<int> IntListSkill = new List<int>(); for (int i = 0; i < ListInt.Count; i++)//选择出升级灵宠等级最低且有技能未解锁的且经验最接近 { if (_DicPetBack.ContainsKey(ListInt[i])) { @@ -366,17 +367,17 @@ return; } int[] SkillUnLockInt = PetConfig.SkillUnLock; int SkillLvMax = SkillUnLockInt[(SkillUnLockInt.Length-1)]; if (_DicPetBack[(ListInt[i])].PetClass < petLv && _DicPetBack[(ListInt[i])].PetClass<SkillLvMax) int SkillLvMax = SkillUnLockInt[(SkillUnLockInt.Length - 1)]; if (_DicPetBack[(ListInt[i])].PetClass < SkillLvMax) { petLv = _DicPetBack[(ListInt[i])].PetClass; GetPetId = (ListInt[i]); IntListSkill.Add((ListInt[i])); } } } if (GetPetId != 0 && CultivateRedPoint.ContainsKey(GetPetId)) int SkillPetId = GetRedPointPetID(IntListSkill); if (SkillPetId != 0 && CultivateRedPoint.ContainsKey(SkillPetId)) { CultivateRedPoint[GetPetId].state = RedPointState.Simple; CultivateRedPoint[SkillPetId].state = RedPointState.Simple; return; } @@ -399,8 +400,60 @@ } } private int GetRedPointPetID(List<int> PetList) { int GetSkillMinLv = 999; for (int i = 0; i < PetList.Count; i++) { int SkillminLv = GetSkillLvDis(PetList[i]); if (SkillminLv < GetSkillMinLv) { GetSkillMinLv = SkillminLv; } } int petId = 0; int ExpNumber = 999999999; for (int i = 0; i < PetList.Count; i++) { int SkillLv = GetSkillLvDis(PetList[i]); if (SkillLv > GetSkillMinLv) { continue; } var Pet1 = PetClassCostConfig.GetPetIdAndRank(PetList[i], SkillLv); var Pet2 = PetClassCostConfig.GetPetIdAndRank(PetList[i], _DicPetBack[(PetList[i])].PetClass); int Exp = Pet1.NeedExpTotal - Pet2.NeedExpTotal - _DicPetBack[(PetList[i])].petExp; if (Exp < ExpNumber) { ExpNumber = Exp; petId = PetList[i]; } } return petId; } private int GetSkillLvDis(int PetId)//获取离升级最近的技能等级 { int SkillLv = 0; var petInfo = Config.Instance.Get<PetInfoConfig>(PetId); if (petInfo == null) { return 0; } int[] ListPetSkillUnLock = petInfo.SkillUnLock; for (int i = 0; i < ListPetSkillUnLock.Length; i++) { if (_DicPetBack.ContainsKey(PetId) && ListPetSkillUnLock[i] > _DicPetBack[PetId].PetClass) { SkillLv = ListPetSkillUnLock[i]; return SkillLv; } } return SkillLv; } public int GetMinPetExp() { { foreach (var key in CultivateRedPoint.Keys)//当存在培养红点时,选中当有红点的那只 { if (CultivateRedPoint[key].state == RedPointState.Simple) @@ -408,9 +461,24 @@ return key; } } List<int> IntListSkill = new List<int>(); foreach (var key in _DicPetBack.Keys) { var petConfig = Config.Instance.Get<PetInfoConfig>(key); if (_DicPetBack[key].PetClass < petConfig.MaxRank) { IntListSkill.Add(key); } } int SkillPetId = GetRedPointPetID(IntListSkill); if (SkillPetId != 0) { return SkillPetId; } int GetPetId = 0; int GetPetLv = 999; foreach (var key in _DicPetBack.Keys)//无红点时跳转选中等级最低的 { var config = Config.Instance.Get<PetInfoConfig>(key);