Beispiel #1
0
    public void loadStartData(string path)
    {
        FileStream fs = File.OpenRead(path);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        fs.Close();

        int index = 0;

        for (int i = 0; i < GameDefine.MAX_STAGE; i++)
        {
            startData[i]       = new GameBattleStart();
            startData[i].Music = BitConverter.ToInt16(bytes, index); index += 2;
            startData[i].NameT = Encoding.GetEncoding("big5").GetString(bytes, index, 24); index += 24;
            startData[i].NameS = ChineseStringUtility.ToSimplified(startData[i].NameT);
        }
    }
Beispiel #2
0
        public static List <WordPair> cut(string str, CutTool tool = CutTool.jieba)
        {
            try
            {
                str = ChineseStringUtility.ToSimplified(str);
                str = removeBlanks(str);
                List <WordPair> res = new List <WordPair>();
                List <Pair>     tmp = new List <Pair>();
                switch (tool)
                {
                case CutTool.jieba:
                    //jieba分词
                    PosSegmenter p = new PosSegmenter();
                    tmp = p.Cut(str).ToList();
                    break;

                case CutTool.nlpir:
                    //NLPIR-ICTCLAS分词
                    tmp = cutByICTCLAS(str);
                    break;

                default:
                    break;
                }
                foreach (var p in tmp)
                {
                    res.Add(new WordPair(p));
                }

                return(res);
            }
            catch
            {
                return(new List <WordPair>());
            }
        }
Beispiel #3
0
        /// <summary>
        /// 主程序
        /// </summary>
        public void taobao()
        {
            try
            {
                if (textBox1.Text == "")
                {
                    MessageBox.Show("请打开网址");
                    return;
                }


                string html = GetUrlWithCookie(textBox1.Text, COOKIE, "gb2312");

                Match           title   = Regex.Match(html, @"<title>([\s\S]*?)</title>");                         //主图
                MatchCollection zhupics = Regex.Matches(html, @"<a href=""#""><img([\s\S]*?)src=""([\s\S]*?)jpg"); //主图
                MatchCollection prices  = Regex.Matches(html, @"""price"":""([\s\S]*?)""");                        //价格


                // Match  aURL = Regex.Match(html, @"descnew([\s\S]*?),");  //详情图来源网址
                // string path = AppDomain.CurrentDomain.BaseDirectory + ChineseStringUtility.ToTraditional(title.Groups[1].Value) + "\\";
                string path = textBox2.Text + "\\" + ChineseStringUtility.ToTraditional(title.Groups[1].Value) + "\\";
                MessageBox.Show(path);
                string subPath = path + "产品介绍图\\";
                //string ahtml = method.GetUrl("http://descnew"+aURL.Groups[1].Value.Replace("'","").Replace("\"",""), "gb2312");
                //MatchCollection xqpics = Regex.Matches(ahtml, @"<img src=""([\s\S]*?)""");  //详情图


                if (false == System.IO.Directory.Exists(path))
                {
                    //创建pic文件夹
                    System.IO.Directory.CreateDirectory(path);

                    System.IO.Directory.CreateDirectory(subPath);
                }
                if (prices.Count != 0)
                {
                    StringBuilder sb = new StringBuilder();
                    for (int a = 0; a < prices.Count; a++)
                    {
                        sb.Append(prices[a].Groups[1].Value + "   ");
                    }

                    FileStream   fs2 = new FileStream(path + "价格_" + prices[0].Groups[1].Value + ".txt", FileMode.Create, FileAccess.Write);//创建写入文件
                    StreamWriter sw2 = new StreamWriter(fs2);
                    sw2.WriteLine(sb.ToString());
                    sw2.Close();
                    fs2.Close();
                }

                else if (prices.Count == 0)
                {
                    Match price = Regex.Match(html, @"<em class=""tb-rmb-num"">([\s\S]*?)<");                                            //价格

                    FileStream   fs2 = new FileStream(path + "价格_" + price.Groups[1].Value + ".txt", FileMode.Create, FileAccess.Write); //创建写入文件
                    StreamWriter sw2 = new StreamWriter(fs2);
                    sw2.WriteLine(price.Groups[1].Value);
                    sw2.Close();
                    fs2.Close();
                }

                FileStream   fs1 = new FileStream(path + "网址.txt", FileMode.Create, FileAccess.Write);//创建写入文件
                StreamWriter sw  = new StreamWriter(fs1);
                sw.WriteLine(textBox1.Text);
                sw.Close();
                fs1.Close();



                for (int i = 0; i < zhupics.Count; i++)
                {
                    downloadFile("http:" + zhupics[i].Groups[2].Value.Replace("https:", "") + "jpg", subPath, i + ".jpg");
                    textBox1.Text = "正在下载主图" + i + "\r\n";
                }

                //for (int j = 0; j < xqpics.Count; j++)
                //{

                //    method.downloadFile(xqpics[j].Groups[1].Value , subPath, j + ".jpg");
                //    textBox2.Text = "正在下载详情图" + j + "\r\n";
                //}
                MessageBox.Show("下载完成");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Beispiel #4
0
    public void load(string path)
    {
        FileStream fs = File.OpenRead(path);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);

        data = new GameItem[bytes.Length / 182];

        int index = 0;

        for (int i = 0; i < data.Length; ++i)
        {
            GameItem item = new GameItem();
            item.ID = (short)i;

            item.ItemType = (GameItemType)BitConverter.ToInt16(bytes, index); index += 2;
            for (int j = 0; j < 16; j++)
            {
                item.EquipUnit[j] = BitConverter.ToInt16(bytes, index); index += 2;
            }

            item.AttackRangeType = (GameAttackRangeType)BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackRange     = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackRangeMin  = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackRangeMax  = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackHit       = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackMiss      = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackCritical  = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackDouble    = BitConverter.ToInt16(bytes, index); index += 2;

            item.AttackAddType       = (GameAttackAddType)BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackAddRatio      = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackAttributeType = (GameAttributeType)BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackAddTime       = BitConverter.ToInt16(bytes, index); index += 2;
            item.AttackAddCost       = BitConverter.ToInt16(bytes, index); index += 2;
            item.Unknown3            = BitConverter.ToInt16(bytes, index); index += 2;

            item.Attack   = BitConverter.ToInt16(bytes, index); index += 2;
            item.Defence  = BitConverter.ToInt16(bytes, index); index += 2;
            item.Unknown4 = BitConverter.ToInt16(bytes, index); index += 2;

            for (int j = 0; j <= (int)GameAttributeType.Dark; j++)
            {
                item.AttributeDefence[j] = BitConverter.ToInt16(bytes, index); index += 2;
            }

            item.UseMPCost = BitConverter.ToInt16(bytes, index); index += 2;

            int tt = BitConverter.ToInt16(bytes, index); index += 2;

            if (tt > 0)
            {
                tt--;
            }

            item.UseTargetType = (GameTargetType)tt;

            item.UseRangeType = (GameAttackRangeType)BitConverter.ToInt16(bytes, index); index += 2;
            item.UseRange     = BitConverter.ToInt16(bytes, index); index += 2;
            item.UseRangeMin  = BitConverter.ToInt16(bytes, index); index += 2;
            item.UseRangeMax  = BitConverter.ToInt16(bytes, index); index += 2;
            item.Unknown5     = BitConverter.ToInt16(bytes, index); index += 2;
            item.UseBasePower = BitConverter.ToInt16(bytes, index); index += 2;
            item.TimeCost     = BitConverter.ToInt16(bytes, index); index += 2;
            item.IsConsumable = BitConverter.ToInt16(bytes, index); index += 2;

            item.Price         = BitConverter.ToInt16(bytes, index); index += 2;
            item.UseType       = (GameItemUseType)BitConverter.ToInt16(bytes, index); index += 2;
            item.UseEffectType = (GameItemEffectType)BitConverter.ToInt16(bytes, index); index += 2;
            item.UseSkillID    = BitConverter.ToInt16(bytes, index); index += 2;

            item.SynthesizeItem1 = BitConverter.ToInt16(bytes, index); index += 2;
            item.SynthesizeItem2 = BitConverter.ToInt16(bytes, index); index += 2;

            item.NameT        = Encoding.GetEncoding("big5").GetString(bytes, index, 10).Replace(" ", ""); index += 10;
            item.DescriptionT = Encoding.GetEncoding("big5").GetString(bytes, index, 60); index += 60;

            item.NameS        = ChineseStringUtility.ToSimplified(item.NameT);
            item.DescriptionS = ChineseStringUtility.ToSimplified(item.DescriptionT);

            data[i] = item;
        }

        Debug.Log("GameItemData loaded.");
    }
Beispiel #5
0
    void loadEMSG(int stage)
    {
        string path    = stage < 10 ? "0" + stage.ToString() : stage.ToString();
        string pathDir = Application.dataPath + "/Objects/DAT/Stage/Stage" + path + "/";

        string pathEMSG = pathDir + "EMSG_" + path + ".MSG";

        FileStream fs = File.OpenRead(pathEMSG);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        fs.Close();


        int index = 0;
        int c     = BitConverter.ToInt32(bytes, index); index += 4;
        int size  = BitConverter.ToInt32(bytes, index); index += 4;

        int[] pos     = new int[c];
        int[] count   = new int[c];
        int[] unknow3 = new int[c];
        int[] len     = new int[c];

        data[stage].EMSG = new GameBattleEMSG[c];

        for (int ii = 0; ii < c; ii++)
        {
            pos[ii]     = BitConverter.ToInt32(bytes, index); index += 4;
            count[ii]   = BitConverter.ToInt32(bytes, index); index += 4;
            unknow3[ii] = BitConverter.ToInt32(bytes, index); index += 4;
            len[ii]     = BitConverter.ToInt32(bytes, index); index += 4;
        }

        for (int ii = 0; ii < c; ii++)
        {
            index = pos[ii] + 4;

            int[] pos1 = new int[count[ii]];
            int[] pos2 = new int[count[ii]];

            for (int i = 0; i < count[ii]; i++)
            {
                pos1[i] = BitConverter.ToInt32(bytes, index); index += 4;
            }

            len[ii] -= 4 + count[ii] * 4;

            for (int i = 0; i < count[ii]; i++)
            {
                if (i == count[ii] - 1)
                {
                    pos2[i] = len[ii];
                }
                else
                {
                    pos2[i]  = pos1[i + 1] - pos1[i];
                    len[ii] -= pos2[i];
                }
            }

            data[stage].EMSG[ii]      = new GameBattleEMSG();
            data[stage].EMSG[ii].MsgT = new string[count[ii]];
            data[stage].EMSG[ii].MsgS = new string[count[ii]];

            for (int i = 0; i < count[ii]; i++)
            {
                string str = "";

                int l1 = pos1[i];
                int l2 = 0;
                for (int j = pos1[i]; j < pos1[i] + pos2[i]; j++)
                {
                    if (bytes[j] == 0)
                    {
                        l2 = j - l1;

                        string m = Encoding.GetEncoding("big5").GetString(bytes, l1, l2);
                        str += m;

                        int n = 1;
                        while (true)
                        {
                            if (bytes[j + n] == 0)
                            {
                                n++;
                            }
                            else if (bytes[j + n] == 1)
                            {
                                l1   = j + n + 1;
                                j    = l1;
                                str += "\n";
                                break;
                            }
                            else if (bytes[j + n] == 2)
                            {
                                l1 = j + n + 1;
                                j  = l1;
                                break;
                            }
                            else
                            {
                                Debug.LogError("eeeeeeeeeeee " + bytes[j + n]);
                                break;
                            }
                        }
                    }
                }

                data[stage].EMSG[ii].MsgT[i] = str;
                data[stage].EMSG[ii].MsgS[i] = ChineseStringUtility.ToSimplified(str);
            }
        }
    }
Beispiel #6
0
    public void loadSDESData(int stage)
    {
        string path    = stage < 10 ? "0" + stage.ToString() : stage.ToString();
        string pathDir = Application.dataPath + "/Objects/DAT/Stage/Stage" + path + "/";

        string pathSDES = pathDir + "SDES_" + path + ".DAT";

        FileStream fs = File.OpenRead(pathSDES);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        fs.Close();

        data[stage].SDES.TitleT = Encoding.GetEncoding("big5").GetString(bytes, 0, 23);
        data[stage].SDES.WinT   = Encoding.GetEncoding("big5").GetString(bytes, 0x18, 52);
        data[stage].SDES.LoseT  = Encoding.GetEncoding("big5").GetString(bytes, 0x4C, 52);

        if (stage == 11)
        {
            data[stage].SDES.TitleT = "第十一幕  故人";
        }

        data[stage].SDES.TitleS = ChineseStringUtility.ToSimplified(data[stage].SDES.TitleT);
        data[stage].SDES.WinS   = ChineseStringUtility.ToSimplified(data[stage].SDES.WinT);
        data[stage].SDES.LoseS  = ChineseStringUtility.ToSimplified(data[stage].SDES.LoseT);

        switch (stage)
        {
        case 0:
            data[stage].SDES.ProficiencyS = "获得燧石";
            break;

        case 1:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 2:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 3:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 4:
            data[stage].SDES.ProficiencyS = "敌全灭+1";
            break;

        case 5:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 6:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 7:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 8:
            data[stage].SDES.ProficiencyS = "不让不净散人攻击朱慎";
            break;

        case 9:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 10:
            data[stage].SDES.ProficiencyS = "击败夏候仪";
            break;

        case 11:
            data[stage].SDES.ProficiencyS = "不让天玄门弟子阵亡";
            break;

        case 12:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 13:
            data[stage].SDES.ProficiencyS = "同时击败高世津和灵山老人";
            break;

        case 14:
            data[stage].SDES.ProficiencyS = "获得全部宝物";
            break;

        case 15:
            data[stage].SDES.ProficiencyS = "二十回合内击倒夏侯仪并四回合内击倒鬼魄尸王";
            break;

        case 16:
            data[stage].SDES.ProficiencyS = "救下至少九名禁军士兵";
            break;

        case 17:
            data[stage].SDES.ProficiencyS = "三十五回合内敌全灭";
            break;

        case 18:
            data[stage].SDES.ProficiencyS = "无";
            break;

        case 19:
            data[stage].SDES.ProficiencyS = "击杀敌人数小于8";
            break;

        case 20:
            data[stage].SDES.ProficiencyS = "除韩无砂外的敌全灭";
            break;

        case 21:
            data[stage].SDES.ProficiencyS = "二十回合内结束本关";
            break;

        case 22:
            data[stage].SDES.ProficiencyS = "不让封寒月攻击韩无砂+1";
            break;

        case 23:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 24:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 25:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 26:
            data[stage].SDES.ProficiencyS = "十五回合以上结束本关+1";
            break;

        case 27:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 28:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 29:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 30:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 31:
            data[stage].SDES.ProficiencyS = "无";
            break;

        case 32:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 33:
            data[stage].SDES.ProficiencyS = "获得全部宝物+1";
            break;

        case 34:
            data[stage].SDES.ProficiencyS = "无";
            break;

        case 35:
            data[stage].SDES.ProficiencyS = "无";
            break;
        }

        data[stage].SDES.ProficiencyT = ChineseStringUtility.ToTraditional(data[stage].SDES.ProficiencyS);
    }
Beispiel #7
0
    public void load(string path)
    {
        FileStream fs = File.OpenRead(path);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);

        data = new GameSkill[bytes.Length / 144];

        int index = 0;

        for (int i = 0; i < data.Length; ++i)
        {
            GameSkill skill = new GameSkill();

            skill.ID              = (short)i;
            skill.MoveAttackType  = (GameSkillMoveAttackType)BitConverter.ToInt16(bytes, index); index += 2;
            skill.TargetType      = (GameTargetType)BitConverter.ToInt16(bytes, index); index += 2;
            skill.AttackRangeType = (GameAttackRangeType)BitConverter.ToInt16(bytes, index); index += 2;
            skill.AttackRange     = BitConverter.ToInt16(bytes, index); index += 2;
            skill.AttackRangeMin  = BitConverter.ToInt16(bytes, index); index += 2;
            skill.AttackRangeMax  = BitConverter.ToInt16(bytes, index); index += 2;
            skill.HitAdd          = BitConverter.ToInt16(bytes, index); index += 2;
            skill.MPCost          = BitConverter.ToInt16(bytes, index); index += 2;
            skill.MoveCost        = BitConverter.ToInt16(bytes, index); index += 2;
            skill.BasePower       = BitConverter.ToInt16(bytes, index); index += 2;
            skill.Hit             = BitConverter.ToInt16(bytes, index); index += 2;
            skill.AttributeType   = (GameAttributeType)BitConverter.ToInt16(bytes, index); index += 2;
            skill.ResultType      = (GameSkillResutlType)BitConverter.ToInt16(bytes, index); index += 2;
            skill.ResultEffect    = (GameSkillResutlEffect)BitConverter.ToInt16(bytes, index); index += 2;
            skill.OtherType       = (GameSkillOtherType)BitConverter.ToInt16(bytes, index); index += 2;
            skill.OtherEffect     = (GameSkillOtherEffect)BitConverter.ToInt16(bytes, index); index += 2;

            for (int j = 0; j < (int)GameSpiritType.Count; j++)
            {
                skill.addition[j]         = new GameSkillSpiritAddition();
                skill.addition[j].Type    = (GameSkillAdditionType)BitConverter.ToInt16(bytes, index); index += 2;
                skill.addition[j].Request = BitConverter.ToInt16(bytes, index); index += 2;
                skill.addition[j].Plus    = BitConverter.ToInt16(bytes, index); index += 2;
            }

            skill.AnimationID  = BitConverter.ToInt16(bytes, index); index += 2;
            skill.HasMovie     = BitConverter.ToInt16(bytes, index); index += 2;
            skill.BattleType   = (GameSkillBattleType)BitConverter.ToInt16(bytes, index); index += 2;
            skill.BattleRanged = (GameSkillBattleRanged)BitConverter.ToInt16(bytes, index); index += 2;
            skill.BattleSprite = BitConverter.ToInt16(bytes, index); index += 2;
            skill.Unknown4     = BitConverter.ToInt16(bytes, index); index += 2;

            //             if ( skill.BattleType != GameSkillBattleType.None )
            //             {
            //                 if ( skill.ResultEffect != GameSkillResutlEffect.None )
            //                 {
            //                     Debug.Log( i );
            //                 }
            //             }


//            Debug.Log( "hit " + skill.ID + " " + skill.Hit + " " + skill.HitAdd );

            skill.Type = GameSkillType.Magic;

            if (skill.BattleType == GameSkillBattleType.UI)
            {
                skill.Type = GameSkillType.Physical;
            }

            if (skill.OtherEffect == GameSkillOtherEffect.AttackX2 ||
                skill.OtherEffect == GameSkillOtherEffect.AttackX3 ||
                skill.OtherEffect == GameSkillOtherEffect.AttackX4 ||
                skill.OtherEffect == GameSkillOtherEffect.AttackPalsy ||
                skill.OtherEffect == GameSkillOtherEffect.AttackPoison ||
                skill.OtherEffect == GameSkillOtherEffect.AttackHP ||
                skill.OtherEffect == GameSkillOtherEffect.AttackFetter)
            {
                skill.Type = GameSkillType.Physical;
            }

            skill.NameT        = Encoding.GetEncoding("big5").GetString(bytes, index, 10); index += 10;
            skill.DescriptionT = Encoding.GetEncoding("big5").GetString(bytes, index, 60); index += 60;

            skill.NameS        = ChineseStringUtility.ToSimplified(skill.NameT);
            skill.DescriptionS = ChineseStringUtility.ToSimplified(skill.DescriptionT);

            data[i] = skill;
        }


        Debug.Log("GameSkillData loaded.");
    }
Beispiel #8
0
 public void init(string str)
 {
     stringS = str;
     stringT = ChineseStringUtility.ToTraditional(str);
 }
Beispiel #9
0
    public void load(string path)
    {
        FileStream fs = File.OpenRead(path);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);
        fs.Close();


        int index = 0;
        int c     = BitConverter.ToInt32(bytes, index); index += 4;
        int size  = BitConverter.ToInt32(bytes, index); index += 4;

        int[] pos     = new int[c];
        int[] count   = new int[c];
        int[] unknow3 = new int[c];
        int[] len     = new int[c];

        GameMessage message = new GameMessage();

        data.Add(message);

        message.message = new GameMessageString[c];

        for (int ii = 0; ii < c; ii++)
        {
            pos[ii]     = BitConverter.ToInt32(bytes, index); index += 4;
            count[ii]   = BitConverter.ToInt32(bytes, index); index += 4;
            unknow3[ii] = BitConverter.ToInt32(bytes, index); index += 4;
            len[ii]     = BitConverter.ToInt32(bytes, index); index += 4;
        }

        for (int ii = 0; ii < c; ii++)
        {
            index = pos[ii] + 4;

            int[] pos1 = new int[count[ii]];
            int[] pos2 = new int[count[ii]];

            for (int i = 0; i < count[ii]; i++)
            {
                pos1[i] = BitConverter.ToInt32(bytes, index); index += 4;
            }

            len[ii] -= 4 + count[ii] * 4;

            for (int i = 0; i < count[ii]; i++)
            {
                if (i == count[ii] - 1)
                {
                    pos2[i] = len[ii];
                }
                else
                {
                    pos2[i]  = pos1[i + 1] - pos1[i];
                    len[ii] -= pos2[i];
                }
            }

            message.message[ii]      = new GameMessageString();
            message.message[ii].MsgT = new string[count[ii]];
            message.message[ii].MsgS = new string[count[ii]];

            for (int i = 0; i < count[ii]; i++)
            {
                string str = "";

                int l1 = pos1[i];
                int l2 = 0;
                for (int j = pos1[i]; j < pos1[i] + pos2[i]; j++)
                {
                    if (bytes[j] == 0)
                    {
                        l2 = j - l1;

                        if (l2 == 1)
                        {
                            int cccc = 0;

                            while (bytes[j + cccc] == 0)
                            {
                                cccc++;
                            }

                            j   += cccc;
                            l1   = j;
                            str += "0";
                            continue;
                        }

                        string m = Encoding.GetEncoding("big5").GetString(bytes, l1, l2);
                        str += m;
//                        l1 = j + 2;

                        int n = 1;
                        while (true)
                        {
                            if (bytes[j + n] == 0)
                            {
                                n++;
                            }
                            else if (bytes[j + n] == 1)
                            {
                                l1   = j + n + 1;
                                j    = l1;
                                str += "\n";
                                break;
                            }
                            else if (bytes[j + n] == 2)
                            {
                                l1 = j + n + 1;
                                j  = l1;
                                break;
                            }
                            else
                            {
                                Debug.LogError("eeeeeeeeeeee " + bytes[j + n]);
                                break;
                            }
                        }
                    }
                }

                str = str.Replace("00", "0");

                message.message[ii].MsgT[i] = str;
                message.message[ii].MsgS[i] = ChineseStringUtility.ToSimplified(str);
            }
        }


        Debug.Log("GameMessageData loaded.");
    }
Beispiel #10
0
    public void load(string path)
    {
        FileStream fs = File.OpenRead(path);

        byte[] bytes = new byte[fs.Length];
        fs.Read(bytes, 0, (int)fs.Length);

        data = new GameUnit[bytes.Length / 58];

        int index = 0;

        for (int i = 0; i < data.Length; ++i)
        {
            GameUnit unit = new GameUnit();

            unit.UnitID = (short)i;

            unit.AttributeDefenceID = BitConverter.ToInt16(bytes, index); index += 2;
            unit.MoveType           = (GameUnitMoveType)BitConverter.ToInt16(bytes, index); index += 2;
            unit.UnitCampType       = (GameUnitCampType)BitConverter.ToInt16(bytes, index); index += 2;
            unit.HP      = BitConverter.ToUInt16(bytes, index); index += 2;
            unit.HPGrow  = BitConverter.ToUInt16(bytes, index); index += 2;
            unit.MP      = BitConverter.ToUInt16(bytes, index); index += 2;
            unit.MPGrow  = BitConverter.ToUInt16(bytes, index); index += 2;
            unit.Move    = BitConverter.ToInt16(bytes, index); index += 2;
            unit.Str     = BitConverter.ToInt16(bytes, index); index += 2;
            unit.StrGrow = BitConverter.ToInt16(bytes, index); index += 2;
            unit.Int     = BitConverter.ToInt16(bytes, index); index += 2;
            unit.IntGrow = BitConverter.ToInt16(bytes, index); index += 2;
            unit.Avg     = BitConverter.ToInt16(bytes, index); index += 2;
            unit.AvgGrow = BitConverter.ToInt16(bytes, index); index += 2;
            unit.Vit     = BitConverter.ToInt16(bytes, index); index += 2;
            unit.VitGrow = BitConverter.ToInt16(bytes, index); index += 2;
            unit.Luk     = BitConverter.ToInt16(bytes, index); index += 2;
            unit.LukGrow = BitConverter.ToInt16(bytes, index); index += 2;

            unit.Sprite  = BitConverter.ToInt16(bytes, index); index += 2;
            unit.unknow1 = BitConverter.ToInt16(bytes, index); index += 2;

            if (unit.unknow1 != 2)
            {
                UnityEngine.Debug.Log("i " + i);
            }

            unit.DefenceType = (GameUnitDefenceType)BitConverter.ToInt16(bytes, index); index += 2;
            unit.AttackType  = (GameUnitAttackType)BitConverter.ToInt16(bytes, index); index += 2;
            unit.BaseLv      = BitConverter.ToInt16(bytes, index); index += 2;
            unit.BaseExp     = BitConverter.ToInt16(bytes, index); index += 2;

            unit.NameT = Encoding.GetEncoding("big5").GetString(bytes, index, 10); index += 10;

            unit.NameS = ChineseStringUtility.ToSimplified(unit.NameT);

            data[i] = unit;
        }

        // fix hp grow bug.

        data[0].HPGrow = 4;
        data[1].HPGrow = 3;
        data[2].HPGrow = 4;
        data[3].HPGrow = 2;
        data[4].HPGrow = 5;
        data[5].HPGrow = 4;
        data[6].HPGrow = 3;
        data[7].HPGrow = 3;
        data[8].HPGrow = 3;
        data[9].HPGrow = 3;

        Debug.Log("GameUnitData loaded.");
    }