public DBMagicEquipItem GetData(uint gid) { DBMagicEquipItem ad = null; if (!data.TryGetValue(gid, out ad)) { ad = GetItemInfo(gid); } return(ad); }
private DBMagicEquipItem GetItemInfo(uint gid) { string query = string.Format("SELECT * FROM {0} WHERE {0}.{1}=\"{2}\"", mTableName, "gid", gid); var reader = DBManager.Instance.ExecuteSqliteQueryToReader(GlobalConfig.DBFile, mTableName, query); if (reader == null) { data[gid] = null; return(null); } if (!reader.HasRows || !reader.Read()) { data[gid] = null; reader.Close(); reader.Dispose(); return(null); } DBMagicEquipItem ad = new DBMagicEquipItem(); ad.Gid = gid; ad.PosId = DBTextResource.ParseUI(GetReaderString(reader, "pos_id")); ad.StrengthMax = DBTextResource.ParseUI(GetReaderString(reader, "max_lv")); ad.Star = DBTextResource.ParseUI(GetReaderString(reader, "star")); ad.SwallowExpValue = DBTextResource.ParseUI(GetReaderString(reader, "exp")); ad.DefaultAppendDesc = GetReaderString(reader, "default_append_desc"); ad.BaseAttrs = DBTextResource.ParseDBAttrItems(GetReaderString(reader, "base_attrs")); uint num = 0; string appendAttrStr = GetReaderString(reader, "spec_attrs"); appendAttrStr = appendAttrStr.Replace(" ", ""); var matchs = Regex.Matches(appendAttrStr, @"\{(\d+),(\d+)\}"); foreach (Match _match in matchs) { if (_match.Success) { num = num + DBTextResource.ParseUI(_match.Groups[2].Value); } } ad.AppendAttrNum = num; data.Add(ad.Gid, ad); reader.Close(); reader.Dispose(); return(ad); }