/// <summary> /// 储存所有掉落的id。以掉落ID为key,生成字典 /// </summary> /// <param name="dropid"></param> /// <param name="dropfield"></param> public void AddDropID(int dropid, int probability, Table_dropField dropfield) { if (_Drop_ID.ContainsKey(dropid)) { _Drop_ID[dropid].Add(dropfield); } else { _Drop_ID.Add(dropid, new List <Table_dropField> { dropfield }); } if (probability == 10000) { if (_Drop_ID100.ContainsKey(dropid)) { _Drop_ID100[dropid].Add(dropfield); } else { _Drop_ID100.Add(dropid, new List <Table_dropField> { dropfield }); } } else if (probability == 0) { if (_Drop_ID0.ContainsKey(dropid)) { _Drop_ID0[dropid].Add(dropfield); } else { _Drop_ID0.Add(dropid, new List <Table_dropField> { dropfield }); } } else { if (_Drop_ID50.ContainsKey(dropid)) { _Drop_ID50[dropid].Add(dropfield); } else { _Drop_ID50.Add(dropid, new List <Table_dropField> { dropfield }); } } }
public static void AnalyzeDrop(TableInfo table, out string errorString) { errorString = null; Table_drop table_drop = new Table_drop(); StringBuilder errorStringBuild = new StringBuilder(); table_drop.name = table.TableName; //数据表的行数 int rowCount = table.GetKeyColumnFieldInfo().Data.Count; try { for (int row = 0; row < rowCount; ++row) { Table_dropField table_dropfield = new Table_dropField(); table_dropfield.row = row + 5; table_dropfield.id = (int)table.GetFieldInfoByFieldName(table_drop.id).Data[row]; table_dropfield.prob = (int)table.GetFieldInfoByFieldName(table_drop.prob).Data[row]; table_dropfield.min_lv = (int)table.GetFieldInfoByFieldName(table_drop.min_lv).Data[row]; table_dropfield.max_lv = (int)table.GetFieldInfoByFieldName(table_drop.max_lv).Data[row]; table_dropfield.drop_group = (int)table.GetFieldInfoByFieldName(table_drop.drop_group).Data[row]; int dropid = (int)table.GetFieldInfoByFieldName(table_drop.drop_id).Data[row]; int probability = (int)table.GetFieldInfoByFieldName(table_drop.prob).Data[row]; table_drop.AddDropID(dropid, probability, table_dropfield); //bool b = AppValues.TableDropRewardInfo[table_drop.name + "_reward"].Drop_Group.ContainsKey(table_dropfield.drop_group); bool b = false; b = AppValues.TableInfo[table_drop.name + "_reward"].GetFieldInfoByFieldName("drop_group").Data.Contains(table_dropfield.drop_group); if (b == false) { errorStringBuild.AppendFormat("第{0}行{1}列数据:{2}错误,未在{3}表中{4}字段找到对应值\n", row + AppValues.DATA_FIELD_DATA_START_INDEX + 1, Utils.GetExcelColumnName(table.GetFieldInfoByFieldName("drop_group").ColumnSeq + 1), table_dropfield.drop_group, table.TableName + "_reward", "drop_group"); } } } catch { errorStringBuild.Append("未知的错误!!!请确保其中有关联的表格都已选中,或者去勾选不对表格进行检查(慎重)"); } if (errorStringBuild.Length > 0) { errorString = errorStringBuild.ToString(); } AppValues.TableDropInfo.Add(table_drop.name, table_drop); }