Exemple #1
0
    /// <summary>
    /// 加载数据表数据
    /// </summary>
    public void LoadData()
    {
        //1.拿到这个表格的buffer
        byte[] buffer = LocalFileMgr.GetBuffer(string.Format(@"\\Mac\Home\Desktop\GameData\{0}.bytes", DataTableName));

        //2.加载数据
        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            LoadList(ms);
        }
    }
Exemple #2
0
    /// <summary>
    /// 加载数据表数据
    /// </summary>
    public void LoadData()
    {
        //1.拿到这个表格的buffer
        byte[] buffer = LocalFileMgr.GetBuffer(string.Format(@"E:\WorldTheAutumn\SoundCode\Server\GameData\{0}.bytes", DataTableName));

        //2.加载数据
        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            LoadList(ms);
        }
    }
    /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="path"></param>
    public GameDataTableParser(string path)
    {
        m_FieldNameDic = new Dictionary <string, int>();

        //------------------
        //第1步:读取数据流
        //------------------
        byte[] buffer = LocalFileMgr.GetBuffer(path);

        //------------------
        //第2步:解压缩
        //------------------
        buffer = ZlibHelper.DeCompressBytes(buffer);

        //------------------
        //第3步:xor解密
        //------------------
        buffer = SecurityUtil.Xor(buffer);

        //------------------
        //第4步:解析数据到数组
        //------------------
        using (MMO_MemoryStream ms = new MMO_MemoryStream(buffer))
        {
            m_Row    = ms.ReadInt();
            m_Column = ms.ReadInt();

            m_GameData  = new String[m_Row, m_Column];
            m_FieldName = new string[m_Column];

            for (int i = 0; i < m_Row; i++)
            {
                for (int j = 0; j < m_Column; j++)
                {
                    string str = ms.ReadUTF8String();

                    if (i == 0)
                    {
                        //表示读取的是字段
                        m_FieldName[j]      = str;
                        m_FieldNameDic[str] = j;
                    }
                    else if (i > 2)
                    {
                        //表示读取的是内容
                        m_GameData[i, j] = str;
                    }
                }
            }
        }
    }