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); }
/// <summary> /// 获取表格中的技能数据 /// </summary> public LevelExpInfo GetLevelInfo(uint lv) { LevelExpInfo info = null; if (!mLevelInfos.TryGetValue(lv, out info)) { info = GetItemInfo(lv); } return(info); }
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); }
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); }