public void SaveMSEs(string file, Card[] cards, bool isUpdate) { if (cards == null) { return; } string pack_db = MyPath.GetRealPath(MyConfig.ReadString("pack_db")); bool rarity = MyConfig.ReadBoolean("mse_auto_rarity", false); #if DEBUG MessageBox.Show("db = " + pack_db + ",auto rarity=" + rarity); #endif int c = cards.Length; //不分开,或者卡片数小于单个存档的最大值 if (this.mseHelper.MaxNum == 0 || c < this.mseHelper.MaxNum) { this.SaveMSE(1, file, cards, pack_db, rarity, isUpdate); } else { int nums = c / this.mseHelper.MaxNum; if (nums * this.mseHelper.MaxNum < c)//计算需要分多少个存档 { nums++; } List <Card> clist = new List <Card>(); for (int i = 0; i < nums; i++)//分别生成存档 { clist.Clear(); for (int j = 0; j < this.mseHelper.MaxNum; j++) { int index = i * this.mseHelper.MaxNum + j; if (index < c) { clist.Add(cards[index]); } } int t = file.LastIndexOf(".mse-set"); string fname = (t > 0) ? file.Substring(0, t) : file; fname += string.Format("_{0}.mse-set", i + 1); this.SaveMSE(i + 1, fname, clist.ToArray(), pack_db, rarity, isUpdate); } } }