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】坐骑丹使用跳转选中优化
---
Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta | 4
System/Pet/PlayerPetDatas.cs | 88 +++++++++++++++++++--
Core/GameEngine/Model/Config/PetClassCostConfig.cs | 33 ++++---
System/Mount/PlayerMountDatas.cs | 83 ++++++++++++++++++--
4 files changed, 172 insertions(+), 36 deletions(-)
diff --git a/Core/GameEngine/Model/Config/PetClassCostConfig.cs b/Core/GameEngine/Model/Config/PetClassCostConfig.cs
index b1ab846..d431949 100644
--- a/Core/GameEngine/Model/Config/PetClassCostConfig.cs
+++ b/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)
{
diff --git a/Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta b/Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta
index dcb0300..74da88c 100644
--- a/Core/GameEngine/Model/Config/PetClassCostConfig.cs.meta
+++ b/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: []
diff --git a/System/Mount/PlayerMountDatas.cs b/System/Mount/PlayerMountDatas.cs
index a405961..b99f9f5 100644
--- a/System/Mount/PlayerMountDatas.cs
+++ b/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;
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