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);
        }