private void loaddata() { this.listBox1.Items.Clear(); this.listBox2.Items.Clear(); this.listBox3.Items.Clear(); this.listBox4.Items.Clear(); ArrayList wp = new ArrayList(); DirectoryInfo dir2 = new DirectoryInfo(@".\\data\\weapon\\"); foreach (FileInfo dChild in dir2.GetFiles("*.dat")) { //如果用GetFiles("*.txt"),那么全部txt文件会被显示 string fname = dChild.Name.Substring(0, dChild.Name.LastIndexOf(".")); //去掉扩展名 if (fname != "0") { listBox2.Items.Add(fname); FileStream fs = new FileStream(".\\data\\weapon\\" + fname + ".dat", FileMode.Open); BinaryFormatter bf = new BinaryFormatter();//反序列化 wp = bf.Deserialize(fs) as ArrayList; listBox1.Items.Add(wp[1]); //名字 listBox3.Items.Add(uc.moneytochina(Convert.ToInt32(wp[5]))); //价值 listBox4.Items.Add(wi.weaponIDtostr(Convert.ToString(wp[12]))); //武器类别 fs.Close(); } } }
private void f5() { this.listBox1.Items.Clear(); this.listBox2.Items.Clear(); this.listBox3.Items.Clear(); this.label211.Text = Convert.ToString(al[0]); //姓名 this.label222.Text = Convert.ToString(al[1]); //性别 this.label41.Text = Convert.ToString(al[2]); //力道 this.label42.Text = Convert.ToString(al[3]); //根骨 this.label43.Text = Convert.ToString(al[4]); //灵敏 this.label44.Text = Convert.ToString(al[5]); //头脑 this.label45.Text = Convert.ToString(al[6]); //精神 this.label233.Text = Convert.ToString(al[7]); //等级 this.label244.Text = Convert.ToString(al[8]) + "/" + Convert.ToString(al[9]); //经验 this.progressBar1.Value = Convert.ToInt32(al[10]); //等级条 this.richTextBox1.Text = Convert.ToString(al[11]); //战报 this.label255.Text = Convert.ToString(al[12]) + "/" + Convert.ToString(al[13]); //血 this.label266.Text = Convert.ToString(al[14]) + "/" + Convert.ToString(al[15]); //气 unitconvert uc = new unitconvert(); this.label277.Text = uc.moneytochina(Convert.ToInt32(al[16])); //钱 this.label444.Text = Convert.ToString(al[17]); //武器id this.label411.Text = kungfuIDtostr(Convert.ToString(al[18])) + "等级" + Convert.ToString(al[19]); //武功代码转名字+等级 this.label422.Text = Convert.ToString(al[20]) + "层"; //功力层次 this.label21.Text = Convert.ToString(al[21]); //称号 this.label433.Text = weaponIDtostr(Convert.ToString(al[23])); //武器代码转名字 this.label50.Text = kungfuIDtostr(Convert.ToString(al[50])); //内功代码转名字 this.label100.Text = Convert.ToString(al[100]) + "-" + Convert.ToString(al[101]); //攻击力 this.label102.Text = Convert.ToString(al[102]); //防御力 this.label103.Text = Convert.ToString(al[103]); //闪躲 this.label104.Text = Convert.ToString(al[104]); //暴伤 this.label105.Text = Convert.ToString(al[105]); //暴击率 this.label106.Text = Convert.ToString(al[106]); //命中率 this.label107.Text = Convert.ToString(al[107]); //攻击次数 this.label108.Text = "+" + Convert.ToString(Convert.ToDouble(al[108]) * 100) + "%"; //武器附加伤害 for (int i = 200; i < 400; i++) { //所学武功列表 if (Convert.ToString(al[i]) != "0") { this.listBox1.Items.Add(kungfuIDtostr(Convert.ToString(al[i])) + "等级" + Convert.ToString(al[i + 200])); } } for (int i = 600; i < 700; i++) { //所持道具列表 if (Convert.ToString(al[i]) != "0") { this.listBox2.Items.Add(weaponIDtostr(Convert.ToString(al[i])) + " " + "数量" + Convert.ToString(al[i + 100])); this.listBox3.Items.Add(Convert.ToString(al[i])); } } }
private void win() { int mmoneyadd = 0; int mmoney = Convert.ToInt32(playeral[16]); string zhanbao = ""; double mexp = Convert.ToDouble(playeral[8]); double mexpmax = Convert.ToDouble(playeral[9]); mmoneyadd = Convert.ToInt32(npcal[16]); mmoney += mmoneyadd;//加钱 unitconvert uc = new unitconvert(); zhanbao += "你得到金钱" + uc.moneytochina(mmoneyadd) + "。\n"; Random ran = new Random(); int elv = Convert.ToInt32(npcal[7]); int mlv = Convert.ToInt32(playeral[7]); int mclv = Convert.ToInt32(playeral[5]); double xpadd = 0; xpadd = ran.Next(10, 10 + mclv) * elv; //加经验 mexp += xpadd; //加经验 mexpmax += xpadd; //加经验 if (mexpmax > 100 * mlv) { mlv++; } playeral[7] = mlv; playeral[8] = mexp.ToString("f0"); playeral[9] = mexpmax.ToString("f0"); if (mexp / mexpmax < 1) { playeral[10] = Convert.ToInt32(mexp / mexpmax * 100); } else { playeral[10] = 100; } playeral[16] = mmoney; }
public int battles(ArrayList my1, ArrayList enemy1) { my = my1; enemy = enemy1; int mkfpowlv = Convert.ToInt32(my[20]); //功力层数 int ekfpowlv = Convert.ToInt32(enemy[20]); double mkfpowlvdam = 1; //层数伤害加成系数 double ekfpowlvdam = 1; for (int i = 2; i <= mkfpowlv; i++) { mkfpowlvdam += 1 * (1 - ((i - 1) / 12.5));//每多一层少0.08 } for (int i = 2; i <= ekfpowlv; i++) { ekfpowlvdam += 1 * (1 - ((i - 1) / 12.5)); } string mkf = "", ekf = "";//功夫id mkf = Convert.ToString(my[18]); ekf = Convert.ToString(enemy[18]); int matkmin = Convert.ToInt32(my[100]), eatkmin = Convert.ToInt32(enemy[100]); //基础攻击力 int matkmax = Convert.ToInt32(my[101]), eatkmax = Convert.ToInt32(enemy[101]); //基础攻击力 string mkfname = "", ekfname = ""; //功夫名字 int mzhaoshi = 1, ezhaoshi = 1; //招式威力系数 int mzhaoshipp = 1, ezhaoshipp = 1; //招式需要精力 int mzhaoshilv = 1, ezhaoshilv = 1; //招式等级 int mzhaoshilvmax = 1, ezhaoshilvmax = 1; //招式最大等级 for (int i = 0; i < 30; i++) { mykf.Add(0); enemykf.Add(0); } loadkungfu(mkf, mykf);//读取对应武功赋值 mkfname = Convert.ToString(mykf[1]); mzhaoshi = Convert.ToInt32(mykf[3]); mzhaoshilv = Convert.ToInt32(my[19]); mzhaoshilvmax = Convert.ToInt32(mykf[2]); mzhaoshipp = Convert.ToInt32(mykf[4]); loadkungfu(ekf, enemykf); ekfname = Convert.ToString(enemykf[1]); ezhaoshi = Convert.ToInt32(enemykf[3]); ezhaoshilv = Convert.ToInt32(enemy[19]); ezhaoshilvmax = Convert.ToInt32(enemykf[2]); ezhaoshipp = Convert.ToInt32(enemykf[4]); double mspd, espd;//速度 mspd = Convert.ToDouble(my[4]); espd = Convert.ToDouble(enemy[4]); double mclv, eclv;//智力 mclv = Convert.ToDouble(my[5]); eclv = Convert.ToDouble(enemy[5]); double mpow, epow;//力量 mpow = Convert.ToDouble(my[2]); epow = Convert.ToDouble(enemy[2]); double mstr, estr;//体质 mstr = Convert.ToDouble(my[3]); estr = Convert.ToDouble(enemy[3]); double mphy, ephy;//精神 mphy = Convert.ToDouble(my[6]); ephy = Convert.ToDouble(enemy[6]); double mhp, ehp;//hp mhp = Convert.ToDouble(my[12]); ehp = Convert.ToDouble(enemy[12]); int mmp, emp;//mp mmp = Convert.ToInt32(my[14]); emp = Convert.ToInt32(enemy[14]); double mhpmax, ehpmax;//hpmax mhpmax = Convert.ToDouble(my[13]); ehpmax = Convert.ToDouble(enemy[13]); double mmpmax, empmax;//mpmax mmpmax = Convert.ToDouble(my[15]); empmax = Convert.ToDouble(enemy[15]); double mexp = Convert.ToDouble(my[8]); //经验 double mexpmax = Convert.ToDouble(my[9]); //最大经验 double elv = Convert.ToDouble(enemy[7]); //敌人等级 double mlv = Convert.ToDouble(my[7]); //自己等级 int mmoney = Convert.ToInt32(my[16]); //自己金钱 int mmoneyadd = 0; double damadd = 0; int win = 1; int timeover = 0; string zhanbao = ""; Random ran = new Random(); for (int i = 1; i < 99999999; i++) { zhanbao += "第" + i + "回合开始:\n"; if (mmp > 0 || emp > 0) { if (ran.Next(100) > 50) { zhanbao += "你对" + Convert.ToString(enemy[0]) + "展开攻击,使用了" + mkfname + ","; //mmp -= 1 + mzhaoshipp;//自己使用的精力 mmp -= (mzhaoshipp * mkfpowlv); if (ran.Next(95) < 100 * (mspd + 100) / (mspd + espd + 100) && mmp > 0)//是否命中 { damadd = (ran.Next(matkmin, matkmax) + mpow / 10) * ((1 - estr / (estr + 100)) + (mzhaoshi * mzhaoshilv / mzhaoshilvmax)) * mkfpowlvdam; if (ran.Next(80) < 100 * (1 - (ephy + 100) / (mphy + ephy + 100)))//是否暴击 { damadd = damadd * 2 + mclv; ehp -= damadd; zhanbao += "击中要害!!造成了" + damadd.ToString("f2") + "点伤害。\n"; if (mspd > espd && ran.Next(30, 125) < mspd - espd) { ehp -= damadd; zhanbao += "对方还没有反应过来,你收手又攻击了一次造成" + damadd.ToString("f2") + "点伤害。\n"; } } else { ehp -= damadd; zhanbao += "造成了" + damadd.ToString("f2") + "点伤害。\n"; if (mspd > espd && ran.Next(30, 123) < mspd - espd) { ehp -= damadd; zhanbao += "对方还没有反应过来,你收手又攻击了一次造成" + damadd.ToString("f2") + "点伤害。\n"; } } } else if (mmp <= 0) { zhanbao += "你的精气用尽,攻击无力。\n"; } else { zhanbao += Convert.ToString(enemy[0]) + "躲开了攻击\n"; } if (ehp <= 0) { if (i == 1) { zhanbao += "手起刀落。\n" + Convert.ToString(enemy[0]) + "被你一招就解决了。"; } else { zhanbao += "大战" + i + "回合后。\n" + Convert.ToString(enemy[0]) + "被你杀了。"; } break; } zhanbao += Convert.ToString(enemy[0]) + "对你进行反击,使用了" + ekfname + ","; emp -= (ezhaoshipp * ekfpowlv); //敌人精力 if (ran.Next(95) < 100 * (espd + 100) / (mspd + espd + 100) && emp > 0) //是否命中 { damadd = (ran.Next(eatkmin, eatkmax) + epow / 10) * ((1 - mstr / (mstr + 100)) + (ezhaoshi * ezhaoshilv / ezhaoshilvmax)) * ekfpowlvdam; if (ran.Next(80) < 100 * (1 - (mphy + 100) / (mphy + ephy + 100)))//是否暴击 { damadd = damadd * 2 + eclv; mhp -= damadd; zhanbao += "击中要害!!造成了" + damadd.ToString("f2") + "点伤害。\n"; if (espd > mspd && ran.Next(30, 123) < espd - mspd) { mhp -= damadd; zhanbao += "你的动作太慢,被一招连打两下,造成" + damadd.ToString("f2") + "点伤害。\n"; } } else { mhp -= damadd; zhanbao += "造成了" + damadd.ToString("f2") + "点伤害。\n"; if (espd > mspd && ran.Next(30, 123) < espd - mspd) { mhp -= damadd; zhanbao += "你的动作太慢,被一招连打两下,造成" + damadd.ToString("f2") + "点伤害。\n"; } } } else if (emp <= 0) { zhanbao += Convert.ToString(enemy[0]) + "的精气用尽,毫无还手之力。\n"; } else { zhanbao += "攻击被你躲开了\n"; } if (mhp <= 0) { if (i == 1) { zhanbao += "能耐相差太大," + Convert.ToString(enemy[0]) + "轻而易举就赢了。"; } else { zhanbao += "大战" + i + "回合后。\n" + Convert.ToString(enemy[0]) + "把你弄死了。"; } break; } } else { zhanbao += Convert.ToString(enemy[0]) + "对你展开攻击,使用了" + ekfname + ","; emp -= (ezhaoshipp * ekfpowlv); if (ran.Next(95) < 100 * (espd + 100) / (mspd + espd + 100) && emp > 0)//是否命中 { damadd = (ran.Next(eatkmin, eatkmax) + epow / 10) * ((1 - mstr / (mstr + 100)) + (ezhaoshi * ezhaoshilv / ezhaoshilvmax)) * ekfpowlvdam; if (ran.Next(80) < 100 * (1 - (mphy + 100) / (mphy + ephy + 100)))//是否暴击 { damadd = damadd * 2 + eclv; mhp -= damadd; zhanbao += "击中要害!!造成了" + damadd.ToString("f2") + "点伤害。\n"; if (espd > mspd && ran.Next(30, 123) < espd - mspd) { mhp -= damadd; zhanbao += "你的动作太慢,被一招连打两下,造成" + damadd.ToString("f2") + "点伤害。\n"; } } else { mhp -= damadd; zhanbao += "造成了" + damadd.ToString("f2") + "点伤害。\n"; if (espd > mspd && ran.Next(30, 123) < espd - mspd) { mhp -= damadd; zhanbao += "你的动作太慢,被一招连打两下,造成" + damadd.ToString("f2") + "点伤害。\n"; } } } else if (emp <= 0) { zhanbao += Convert.ToString(enemy[0]) + "的精气用尽,攻击无力。\n"; } else { zhanbao += "攻击被你躲开了\n"; } if (mhp <= 0) { if (i == 1) { zhanbao += Convert.ToString(enemy[0]) + "只出了一招就把你击败了。"; } else { zhanbao += "大战" + i + "回合后。\n" + Convert.ToString(enemy[0]) + "把你弄死了。"; } break; } zhanbao += "你对" + Convert.ToString(enemy[0]) + "进行反击,使用了" + mkfname + ","; mmp -= (mzhaoshipp * mkfpowlv); if (ran.Next(95) < 100 * (mspd + 100) / (mspd + espd + 100) && mmp > 0)//是否命中 { damadd = (ran.Next(matkmin, matkmax) + mpow / 10) * ((1 - estr / (estr + 100)) + (mzhaoshi * mzhaoshilv / mzhaoshilvmax)) * mkfpowlvdam; if (ran.Next(80) < 100 * (1 - (ephy + 100) / (mphy + ephy + 100)))//是否暴击 { damadd = damadd * 2 + mclv; ehp -= damadd; zhanbao += "击中要害!!造成了" + damadd.ToString("f2") + "点伤害。\n"; if (mspd > espd && ran.Next(30, 123) < mspd - espd) { ehp -= damadd; zhanbao += "对方还没有反应过来,你收手又攻击了一次造成" + damadd.ToString("f2") + "点伤害。\n"; } } else { ehp -= damadd; zhanbao += "造成了" + damadd.ToString("f2") + "点伤害。\n"; if (mspd > espd && ran.Next(30, 123) < mspd - espd) { ehp -= damadd; zhanbao += "对方还没有反应过来,你收手又攻击了一次造成" + damadd.ToString("f2") + "点伤害。\n"; } } } else if (mmp <= 0) { zhanbao += "你的精气用尽,毫无招架之力。\n"; } else { zhanbao += Convert.ToString(enemy[0]) + "躲开了攻击\n"; } if (ehp <= 0) { if (i == 1) { zhanbao += "招架住" + Convert.ToString(enemy[0]) + "的攻击后,你不费吹灰之力就取下他的首级。"; } else { zhanbao += "大战" + i + "回合后。\n" + Convert.ToString(enemy[0]) + "被你杀了。"; } break; } } } else { zhanbao += "棋逢敌手,大战" + i + "回合后。\n" + "你们双方都精疲力尽不分输赢。"; break; } if (i == 1000) { timeover = 1; zhanbao += "你们打了一千回合不分输赢!!决定择日再战。\n"; break; } } if (mmp < 0) { mmp = 0; } if (mhp < 1 && mhp > 0) { mhp = 1; } if (mhp <= 0) { win = 0; } else if (mhp > 0 && mmp > 0 && timeover == 0) { win = 1; mmoneyadd = Convert.ToInt32(enemy[16]); mmoney += mmoneyadd; zhanbao += "你得到金钱" + uc.moneytochina(mmoneyadd) + "。\n"; mexp += ran.Next(100, 300) * elv * mclv / (mclv + 100) + 1; if (mexp > mexpmax)//升级 { mexpmax += mlv * 33; mlv++; if (mexp > mexpmax) { mexp = mexpmax; zhanbao += "已经达到经验值上限!\n"; } //mexp = 0; mhpmax = mstr * 10; mmpmax = mphy * 10; zhanbao += "等级上升!\n"; } my1[12] = mhp.ToString("f0"); my1[7] = mlv; my1[8] = mexp.ToString("f0"); my1[9] = mexpmax.ToString("f0"); if (mexp / mexpmax < 1) { my1[10] = Convert.ToInt32(mexp / mexpmax * 100); } else { my1[10] = 100; } my1[13] = mhpmax; my1[14] = mmp; my1[15] = mmpmax; my1[16] = mmoney; } else { win = 2; } my1[14] = mmp; my1[12] = mhp.ToString("f0"); my1[11] = zhanbao; return(win); }