public bool LoadCsv(string strContent) { if (strContent.Length == 0) { return(false); } m_mapElements.Clear(); m_vecAllElements.Clear(); int contentOffset = 0; List <string> vecLine; vecLine = GameAssist.readCsvLine(strContent, ref contentOffset); if (vecLine.Count != 36) { Ex.Logger.Log("ItemProto.csv中列数量与生成的代码不匹配!"); return(false); } if (vecLine[0] != "id") { Ex.Logger.Log("ItemProto.csv中字段[id]位置不对应"); return(false); } if (vecLine[1] != "comment") { Ex.Logger.Log("ItemProto.csv中字段[comment]位置不对应"); return(false); } if (vecLine[2] != "name") { Ex.Logger.Log("ItemProto.csv中字段[name]位置不对应"); return(false); } if (vecLine[3] != "description") { Ex.Logger.Log("ItemProto.csv中字段[description]位置不对应"); return(false); } if (vecLine[4] != "icon") { Ex.Logger.Log("ItemProto.csv中字段[icon]位置不对应"); return(false); } if (vecLine[5] != "model") { Ex.Logger.Log("ItemProto.csv中字段[model]位置不对应"); return(false); } if (vecLine[6] != "type") { Ex.Logger.Log("ItemProto.csv中字段[type]位置不对应"); return(false); } if (vecLine[7] != "subtype") { Ex.Logger.Log("ItemProto.csv中字段[subtype]位置不对应"); return(false); } if (vecLine[8] != "level") { Ex.Logger.Log("ItemProto.csv中字段[level]位置不对应"); return(false); } if (vecLine[9] != "rank") { Ex.Logger.Log("ItemProto.csv中字段[rank]位置不对应"); return(false); } if (vecLine[10] != "price") { Ex.Logger.Log("ItemProto.csv中字段[price]位置不对应"); return(false); } if (vecLine[11] != "exchange_bottom") { Ex.Logger.Log("ItemProto.csv中字段[exchange_bottom]位置不对应"); return(false); } if (vecLine[12] != "exchange_init") { Ex.Logger.Log("ItemProto.csv中字段[exchange_init]位置不对应"); return(false); } if (vecLine[13] != "exchange_currency") { Ex.Logger.Log("ItemProto.csv中字段[exchange_currency]位置不对应"); return(false); } if (vecLine[14] != "occupation") { Ex.Logger.Log("ItemProto.csv中字段[occupation]位置不对应"); return(false); } if (vecLine[15] != "transfer_id_1") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_1]位置不对应"); return(false); } if (vecLine[16] != "transfer_id_2") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_2]位置不对应"); return(false); } if (vecLine[17] != "transfer_id_3") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_3]位置不对应"); return(false); } if (vecLine[18] != "transfer_id_4") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_4]位置不对应"); return(false); } if (vecLine[19] != "transfer_id_5") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_5]位置不对应"); return(false); } if (vecLine[20] != "stack") { Ex.Logger.Log("ItemProto.csv中字段[stack]位置不对应"); return(false); } if (vecLine[21] != "bind") { Ex.Logger.Log("ItemProto.csv中字段[bind]位置不对应"); return(false); } if (vecLine[22] != "merge_item") { Ex.Logger.Log("ItemProto.csv中字段[merge_item]位置不对应"); return(false); } if (vecLine[23] != "pickup_type") { Ex.Logger.Log("ItemProto.csv中字段[pickup_type]位置不对应"); return(false); } if (vecLine[24] != "item_effect") { Ex.Logger.Log("ItemProto.csv中字段[item_effect]位置不对应"); return(false); } if (vecLine[25] != "required_scene") { Ex.Logger.Log("ItemProto.csv中字段[required_scene]位置不对应"); return(false); } if (vecLine[26] != "use_destory") { Ex.Logger.Log("ItemProto.csv中字段[use_destory]位置不对应"); return(false); } if (vecLine[27] != "batch_use") { Ex.Logger.Log("ItemProto.csv中字段[batch_use]位置不对应"); return(false); } if (vecLine[28] != "use_when_dead") { Ex.Logger.Log("ItemProto.csv中字段[use_when_dead]位置不对应"); return(false); } if (vecLine[29] != "timer_type") { Ex.Logger.Log("ItemProto.csv中字段[timer_type]位置不对应"); return(false); } if (vecLine[30] != "life_time") { Ex.Logger.Log("ItemProto.csv中字段[life_time]位置不对应"); return(false); } if (vecLine[31] != "expire_time") { Ex.Logger.Log("ItemProto.csv中字段[expire_time]位置不对应"); return(false); } if (vecLine[32] != "cross_scene_destory") { Ex.Logger.Log("ItemProto.csv中字段[cross_scene_destory]位置不对应"); return(false); } if (vecLine[33] != "store_type") { Ex.Logger.Log("ItemProto.csv中字段[store_type]位置不对应"); return(false); } if (vecLine[34] != "tag") { Ex.Logger.Log("ItemProto.csv中字段[tag]位置不对应"); return(false); } if (vecLine[35] != "pickup_notice") { Ex.Logger.Log("ItemProto.csv中字段[pickup_notice]位置不对应"); return(false); } while (true) { vecLine = GameAssist.readCsvLine(strContent, ref contentOffset); if ((int)vecLine.Count == 0) { break; } if ((int)vecLine.Count != (int)36) { return(false); } ItemProtoElement member = new ItemProtoElement(); member.id = Convert.ToInt32(vecLine[0]); member.comment = vecLine[1]; member.name = Convert.ToInt32(vecLine[2]); member.description = Convert.ToInt32(vecLine[3]); member.icon = vecLine[4]; member.model = Convert.ToInt32(vecLine[5]); member.type = Convert.ToInt32(vecLine[6]); member.subtype = Convert.ToInt32(vecLine[7]); member.level = Convert.ToInt32(vecLine[8]); member.rank = Convert.ToInt32(vecLine[9]); member.price = Convert.ToInt32(vecLine[10]); member.exchange_bottom = Convert.ToInt32(vecLine[11]); member.exchange_init = Convert.ToInt32(vecLine[12]); member.exchange_currency = Convert.ToInt32(vecLine[13]); member.occupation = Convert.ToInt32(vecLine[14]); member.transfer_id_1 = Convert.ToInt32(vecLine[15]); member.transfer_id_2 = Convert.ToInt32(vecLine[16]); member.transfer_id_3 = Convert.ToInt32(vecLine[17]); member.transfer_id_4 = Convert.ToInt32(vecLine[18]); member.transfer_id_5 = Convert.ToInt32(vecLine[19]); member.stack = Convert.ToInt32(vecLine[20]); member.bind = Convert.ToInt32(vecLine[21]); member.merge_item = Convert.ToInt32(vecLine[22]); member.pickup_type = Convert.ToInt32(vecLine[23]); member.item_effect = vecLine[24]; member.required_scene = Convert.ToInt32(vecLine[25]); member.use_destory = Convert.ToInt32(vecLine[26]); member.batch_use = Convert.ToInt32(vecLine[27]); member.use_when_dead = Convert.ToInt32(vecLine[28]); member.timer_type = Convert.ToInt32(vecLine[29]); member.life_time = Convert.ToInt32(vecLine[30]); member.expire_time = Convert.ToInt32(vecLine[31]); member.cross_scene_destory = Convert.ToInt32(vecLine[32]); member.store_type = Convert.ToInt32(vecLine[33]); member.tag = Convert.ToInt32(vecLine[34]); member.pickup_notice = Convert.ToInt32(vecLine[35]); member.IsValidate = true; m_vecAllElements.Add(member); m_mapElements[member.id] = member; } return(true); }
private ItemProtoTable() { m_mapElements = new Dictionary <int, ItemProtoElement>(); m_emptyItem = new ItemProtoElement(); m_vecAllElements = new List <ItemProtoElement>(); }
public bool LoadBin(byte[] binContent) { m_mapElements.Clear(); m_vecAllElements.Clear(); int nCol, nRow; int readPos = 0; readPos += GameAssist.ReadInt32Variant(binContent, readPos, out nCol); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out nRow); List <string> vecLine = new List <string>(nCol); List <int> vecHeadType = new List <int>(nCol); string tmpStr; int tmpInt; for (int i = 0; i < nCol; i++) { readPos += GameAssist.ReadString(binContent, readPos, out tmpStr); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out tmpInt); vecLine.Add(tmpStr); vecHeadType.Add(tmpInt); } if (vecLine.Count != 36) { Ex.Logger.Log("ItemProto.csv中列数量与生成的代码不匹配!"); return(false); } if (vecLine[0] != "id") { Ex.Logger.Log("ItemProto.csv中字段[id]位置不对应"); return(false); } if (vecLine[1] != "comment") { Ex.Logger.Log("ItemProto.csv中字段[comment]位置不对应"); return(false); } if (vecLine[2] != "name") { Ex.Logger.Log("ItemProto.csv中字段[name]位置不对应"); return(false); } if (vecLine[3] != "description") { Ex.Logger.Log("ItemProto.csv中字段[description]位置不对应"); return(false); } if (vecLine[4] != "icon") { Ex.Logger.Log("ItemProto.csv中字段[icon]位置不对应"); return(false); } if (vecLine[5] != "model") { Ex.Logger.Log("ItemProto.csv中字段[model]位置不对应"); return(false); } if (vecLine[6] != "type") { Ex.Logger.Log("ItemProto.csv中字段[type]位置不对应"); return(false); } if (vecLine[7] != "subtype") { Ex.Logger.Log("ItemProto.csv中字段[subtype]位置不对应"); return(false); } if (vecLine[8] != "level") { Ex.Logger.Log("ItemProto.csv中字段[level]位置不对应"); return(false); } if (vecLine[9] != "rank") { Ex.Logger.Log("ItemProto.csv中字段[rank]位置不对应"); return(false); } if (vecLine[10] != "price") { Ex.Logger.Log("ItemProto.csv中字段[price]位置不对应"); return(false); } if (vecLine[11] != "exchange_bottom") { Ex.Logger.Log("ItemProto.csv中字段[exchange_bottom]位置不对应"); return(false); } if (vecLine[12] != "exchange_init") { Ex.Logger.Log("ItemProto.csv中字段[exchange_init]位置不对应"); return(false); } if (vecLine[13] != "exchange_currency") { Ex.Logger.Log("ItemProto.csv中字段[exchange_currency]位置不对应"); return(false); } if (vecLine[14] != "occupation") { Ex.Logger.Log("ItemProto.csv中字段[occupation]位置不对应"); return(false); } if (vecLine[15] != "transfer_id_1") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_1]位置不对应"); return(false); } if (vecLine[16] != "transfer_id_2") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_2]位置不对应"); return(false); } if (vecLine[17] != "transfer_id_3") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_3]位置不对应"); return(false); } if (vecLine[18] != "transfer_id_4") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_4]位置不对应"); return(false); } if (vecLine[19] != "transfer_id_5") { Ex.Logger.Log("ItemProto.csv中字段[transfer_id_5]位置不对应"); return(false); } if (vecLine[20] != "stack") { Ex.Logger.Log("ItemProto.csv中字段[stack]位置不对应"); return(false); } if (vecLine[21] != "bind") { Ex.Logger.Log("ItemProto.csv中字段[bind]位置不对应"); return(false); } if (vecLine[22] != "merge_item") { Ex.Logger.Log("ItemProto.csv中字段[merge_item]位置不对应"); return(false); } if (vecLine[23] != "pickup_type") { Ex.Logger.Log("ItemProto.csv中字段[pickup_type]位置不对应"); return(false); } if (vecLine[24] != "item_effect") { Ex.Logger.Log("ItemProto.csv中字段[item_effect]位置不对应"); return(false); } if (vecLine[25] != "required_scene") { Ex.Logger.Log("ItemProto.csv中字段[required_scene]位置不对应"); return(false); } if (vecLine[26] != "use_destory") { Ex.Logger.Log("ItemProto.csv中字段[use_destory]位置不对应"); return(false); } if (vecLine[27] != "batch_use") { Ex.Logger.Log("ItemProto.csv中字段[batch_use]位置不对应"); return(false); } if (vecLine[28] != "use_when_dead") { Ex.Logger.Log("ItemProto.csv中字段[use_when_dead]位置不对应"); return(false); } if (vecLine[29] != "timer_type") { Ex.Logger.Log("ItemProto.csv中字段[timer_type]位置不对应"); return(false); } if (vecLine[30] != "life_time") { Ex.Logger.Log("ItemProto.csv中字段[life_time]位置不对应"); return(false); } if (vecLine[31] != "expire_time") { Ex.Logger.Log("ItemProto.csv中字段[expire_time]位置不对应"); return(false); } if (vecLine[32] != "cross_scene_destory") { Ex.Logger.Log("ItemProto.csv中字段[cross_scene_destory]位置不对应"); return(false); } if (vecLine[33] != "store_type") { Ex.Logger.Log("ItemProto.csv中字段[store_type]位置不对应"); return(false); } if (vecLine[34] != "tag") { Ex.Logger.Log("ItemProto.csv中字段[tag]位置不对应"); return(false); } if (vecLine[35] != "pickup_notice") { Ex.Logger.Log("ItemProto.csv中字段[pickup_notice]位置不对应"); return(false); } for (int i = 0; i < nRow; i++) { ItemProtoElement member = new ItemProtoElement(); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.id); readPos += GameAssist.ReadString(binContent, readPos, out member.comment); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.name); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.description); readPos += GameAssist.ReadString(binContent, readPos, out member.icon); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.model); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.type); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.subtype); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.level); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.rank); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.price); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.exchange_bottom); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.exchange_init); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.exchange_currency); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.occupation); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.transfer_id_1); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.transfer_id_2); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.transfer_id_3); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.transfer_id_4); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.transfer_id_5); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.stack); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.bind); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.merge_item); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.pickup_type); readPos += GameAssist.ReadString(binContent, readPos, out member.item_effect); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.required_scene); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.use_destory); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.batch_use); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.use_when_dead); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.timer_type); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.life_time); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.expire_time); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.cross_scene_destory); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.store_type); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.tag); readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.pickup_notice); member.IsValidate = true; m_vecAllElements.Add(member); m_mapElements[member.id] = member; } return(true); }