From d3d0662762f352caae67198e5e2a1e4e5d856b5c Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期五, 04 一月 2019 17:28:11 +0800
Subject: [PATCH] 5693 【1.4.100】坐骑丹使用跳转选中优化
---
System/Pet/PlayerPetDatas.cs | 88 +++++++++++++++++++++++++++++++++++++++-----
1 files changed, 78 insertions(+), 10 deletions(-)
diff --git a/System/Pet/PlayerPetDatas.cs b/System/Pet/PlayerPetDatas.cs
index 37775a4..9904460 100644
--- a/System/Pet/PlayerPetDatas.cs
+++ b/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++)//閫夋嫨鍑哄崌绾х伒瀹犵瓑绾ф渶浣庝笖鏈夋妧鑳芥湭瑙i攣鐨�
+ List<int> IntListSkill = new List<int>();
+ for (int i = 0; i < ListInt.Count; i++)//閫夋嫨鍑哄崌绾х伒瀹犵瓑绾ф渶浣庝笖鏈夋妧鑳芥湭瑙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);
--
Gitblit v1.8.0