예제 #1
0
        LevelExpInfo GetItemInfo(uint lv)
        {
            string query  = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", mTableName, "lv", lv);
            var    reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, query);

            if (reader == null)
            {
                mLevelInfos[lv] = null;
                return(null);
            }

            if (!reader.HasRows || !reader.Read())
            {
                mLevelInfos[lv] = null;

                reader.Close();
                reader.Dispose();
                return(null);
            }

            LevelExpInfo info = new LevelExpInfo();

            info.Level      = lv;
            info.Exp        = DBTextResource.ParseUL_s(GetReaderString(reader, "exp"), 0);
            info.SkillScore = DBTextResource.ParseUI(GetReaderString(reader, "skill_score"));

            mLevelInfos.Add(info.Level, info);

            reader.Close();
            reader.Dispose();
            return(info);
        }
예제 #2
0
        /// <summary>
        /// 获取表格中的技能数据
        /// </summary>
        public LevelExpInfo GetLevelInfo(uint lv)
        {
            LevelExpInfo info = null;

            if (!mLevelInfos.TryGetValue(lv, out info))
            {
                info = GetItemInfo(lv);
            }

            return(info);
        }
예제 #3
0
    private List <LevelExpInfo> CopyNewExpInfo(List <LevelExpInfo> list, float rate)
    {
        List <LevelExpInfo> refList = new List <LevelExpInfo>();

        if (list == null || list.Count < 1)
        {
            return(refList);
        }

        for (int i = 0; i < list.Count; i++)
        {
            LevelExpInfo newExp = new LevelExpInfo();
            newExp.ID  = list[i].ID;
            newExp.exp = (uint)(list[i].exp * rate);

            refList.Add(newExp);
        }
        return(refList);
    }
예제 #4
0
    public uint GetMaxExp(PItem intentify)
    {
        if (intentify == null || intentify.growAttr == null || intentify.growAttr.runeAttr == null)
        {
            return(0);
        }

        var star = m_starInfo.Find(o => o.ID == intentify.growAttr.runeAttr.star);

        if (star == null)
        {
            return(0);
        }

        var          maxLv = star.Lv;
        LevelExpInfo max   = null;
        LevelExpInfo now   = null;

        if (m_newExpInfo.ContainsKey(intentify.itemTypeId))
        {
            var list = m_newExpInfo[intentify.itemTypeId];
            max = list.Find(p => p.ID == maxLv);
            now = list.Find(p => p.ID == intentify.growAttr.runeAttr.level);
        }
        else
        {
            max = m_expInfo.Find(p => p.ID == maxLv);
            now = m_expInfo.Find(p => p.ID == intentify.growAttr.runeAttr.level);
        }

        if (max && now)
        {
            return(max.exp - (now.exp + intentify.growAttr.runeAttr.expr));
        }

        return(0);
    }