public bool TryGetFightPowerDatabaseById(uint id, out uint[] data) { IPlayer mainPlayer = Client.ClientGlobal.Instance().MainPlayer; if (mainPlayer == null) { data = null; return(false); } int lv = mainPlayer.GetProp((int)CreatureProp.Level); GrowUpFightPowerLevelDabaBase db = m_lstGrowUpFightPowerLevelDabaBase.Find((d) => { return(lv <= d.MaxLv && lv >= d.MinLv); }); if (db == null) { data = null; return(false); } string dataStr = string.Empty; switch (id) { case 1: dataStr = db.Skill; break; case 2: dataStr = db.Equip; break; case 3: dataStr = db.Strengthen; break; case 4: dataStr = db.Gem; break; case 5: dataStr = db.Pet; break; case 6: dataStr = db.Muhon; break; case 7: dataStr = db.ClanSkill; break; } if (dataStr == "0") { data = null; return(false); } string[] strArr = dataStr.Split('_'); data = new uint[strArr.Length]; for (int i = 0; i < strArr.Length; i++) { if (!uint.TryParse(strArr[i], out data[i])) { Engine.Utility.Log.Error("--->>> 表格数据出错 ,没取到数据!"); } } return(true); }
/// <summary> /// 通过[ID]二分快速查表 /// </summary> /// <param name="dwID">ID</param> /// <returns></returns> public static GrowUpFightPowerLevelDabaBase Query(this List <GrowUpFightPowerLevelDabaBase> sorted, uint dwID) { var key = new GrowUpFightPowerLevelDabaBase() { dwID = dwID }; var comparer = new Comparer1(); var index = sorted.BinarySearch(key, comparer); return(index >= 0 ? sorted[index] : default(GrowUpFightPowerLevelDabaBase)); }