Ejemplo n.º 1
0
    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));
        }