Пример #1
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            UInt32 tag = 0;

            while (reader.ReadTag(ref tag))
            {
                switch (tag)
                {
                case 0x80000:
                {
                    reader.ReadString(ref ServerIP);
                }
                break;

                case 0x40001:
                {
                    reader.ReadUInt16(ref ServerPort);
                }
                break;

                case 0x20002:
                {
                    reader.ReadInt32(ref GroupID);
                }
                break;
                }
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            var curr = Directory.GetCurrentDirectory();

            using (var stream = new FileStream("../../../../binary/table_gen.bin", FileMode.Open))
            {
                stream.Position = 0;

                var reader = new tabtoy.TableReader(stream);


                var tab = new main.Table();

                try
                {
                    tab.Deserialize(reader);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }


                Console.WriteLine(tab.ExampleData[3].Name);
            }
        }
Пример #3
0
        // 加载所有表
        static void LoadAllTable()
        {
            using (var stream = new FileStream("../../../../binary/table_gen.bin", FileMode.Open))
            {
                stream.Position = 0;

                var reader = new tabtoy.TableReader(stream);

                var tab = new main.Table();

                try
                {
                    tab.Deserialize(reader);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }

                // 表遍历
                foreach (var kv in tab.ExampleData)
                {
                    Console.Write("{0} {1}\n", kv.ID, kv.Name);
                }

                // 直接取值
                Console.WriteLine(tab.ExtendData[1].Additive);

                // KV配置
                Console.WriteLine(tab.GetKeyValue_ExampleKV().ServerIP);
            }
        }
Пример #4
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            UInt32 mamaSaidTagNameShouldBeLong = 0;

            while (reader.ReadTag(ref mamaSaidTagNameShouldBeLong))
            {
                switch (mamaSaidTagNameShouldBeLong)
                {
                case 0x80000:
                {
                    reader.ReadString(ref ServerIP);
                }
                break;

                case 0x40001:
                {
                    reader.ReadUInt16(ref ServerPort);
                }
                break;

                default:
                {
                    reader.SkipFiled(mamaSaidTagNameShouldBeLong);
                }
                break;
                }
            }
        }
Пример #5
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            reader.ReadHeader();

            UInt32 mamaSaidTagNameShouldBeLong = 0;

            while (reader.ReadTag(ref mamaSaidTagNameShouldBeLong))
            {
                if (mamaSaidTagNameShouldBeLong == 0x6f0000)
                {
                    var tabName = string.Empty;
                    reader.ReadString(ref tabName);
                    switch (tabName)
                    {
                    case "MyData":
                    {
                        reader.ReadStruct(ref MyData);
                    }
                    break;

                    default:
                    {
                        reader.SkipFiled(mamaSaidTagNameShouldBeLong);
                    }
                    break;
                    }
                }
            }
        }
Пример #6
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            UInt32 mamaSaidTagNameShouldBeLong = 0;

            while (reader.ReadTag(ref mamaSaidTagNameShouldBeLong))
            {
                switch (mamaSaidTagNameShouldBeLong)
                {
                case 0x70000:
                {
                    reader.ReadFloat(ref Additive);
                }
                break;

                case 0x20001:
                {
                    reader.ReadInt32(ref Index2);
                }
                break;

                default:
                {
                    reader.SkipFiled(mamaSaidTagNameShouldBeLong);
                }
                break;
                }
            }
        }
Пример #7
0
        public static void LoadAllTable()
        {
            using (var stream = new FileStream(Application.dataPath + "/Resources/Excel/table_gen.bin", FileMode.Open))
            {
                stream.Position = 0;

                var reader = new tabtoy.TableReader(stream);

                var tab = new main.Table();

                try
                {
                    tab.Deserialize(reader);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }

                // 表遍历
                foreach (var kv in tab.ExampleData)
                {
                    Debug.Log(kv.ID + "  " + kv.Name);
                }

                // 直接取值
                Debug.Log(tab.ExtendData[1].Additive);

                // KV配置
                Debug.Log(tab.GetKeyValue_ExampleKV().ServerIP);
            }
        }
Пример #8
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            reader.ReadHeader();
            reader.ReadStruct(ref ExampleData);
            reader.ReadStruct(ref ExampleKV);

            foreach (var kv in ExampleData)
            {
                ExampleDataByID[kv.ID] = kv;
            }
        }
Пример #9
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            UInt32 mamaSaidTagNameShouldBeLong = 0;

            while (reader.ReadTag(ref mamaSaidTagNameShouldBeLong))
            {
                switch (mamaSaidTagNameShouldBeLong)
                {
                case 0x20000:
                {
                    reader.ReadInt32(ref ID);
                }
                break;

                case 0x80001:
                {
                    reader.ReadString(ref Name);
                }
                break;

                case 0x70002:
                {
                    reader.ReadFloat(ref Rate);
                }
                break;

                case 0xa0003:
                {
                    reader.ReadEnum(ref Type);
                }
                break;

                case 0x660004:
                {
                    reader.ReadInt32(ref Skill);
                }
                break;

                case 0x660005:
                {
                    reader.ReadInt32(ref Multi);
                }
                break;

                default:
                {
                    reader.SkipFiled(mamaSaidTagNameShouldBeLong);
                }
                break;
                }
            }
        }
Пример #10
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            reader.ReadHeader();

            UInt32 mamaSaidTagNameShouldBeLong = 0;

            while (reader.ReadTag(ref mamaSaidTagNameShouldBeLong))
            {
                if (mamaSaidTagNameShouldBeLong == 0x6f0000)
                {
                    var tabName = string.Empty;
                    reader.ReadString(ref tabName);
                    switch (tabName)
                    {
                    case "NPCData":
                    {
                        reader.ReadStruct(ref NPCData);
                    }
                    break;

                    case "PlayerData":
                    {
                        reader.ReadStruct(ref PlayerData);
                    }
                    break;

                    case "MyKV":
                    {
                        reader.ReadStruct(ref MyKV);
                    }
                    break;

                    default:
                    {
                        reader.SkipFiled(mamaSaidTagNameShouldBeLong);
                    }
                    break;
                    }
                }
            }

            foreach (var kv in PlayerData)
            {
                PlayerDataByID[kv.ID] = kv;
            }

            foreach (var kv in PlayerData)
            {
                PlayerDataByName[kv.Name] = kv;
            }
        }
Пример #11
0
        // 读取指定名字的表, 可根据实际需求调整该函数适应不同加载数据来源
        static void LoadTableByName(main.Table tab, string tableName)
        {
            using (var stream = new FileStream(string.Format("../../../../binary/{0}.bin", tableName), FileMode.Open))
            {
                stream.Position = 0;

                var reader = new tabtoy.TableReader(stream);
                try
                {
                    tab.Deserialize(reader);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
        }
Пример #12
0
            public void Init()
            {
                var textAssetTableBytes = EZResource.Instance.LoadRes("GameTable") as TextAsset;
                var bytes = textAssetTableBytes.bytes;

                using (MemoryStream stream = new MemoryStream(bytes)) {
                    stream.Position = 0;

                    var reader = new tabtoy.TableReader(stream);
                    GameTable = new Table();

                    try {
                        GameTable.Deserialize(reader);
                    }
                    catch (Exception e) {
                        Console.WriteLine(e);
                        throw;
                    }
                }
            }
Пример #13
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            UInt32 tag = 0;

            while (reader.ReadTag(ref tag))
            {
                switch (tag)
                {
                case 0x20000:
                {
                    reader.ReadInt32(ref ID);
                }
                break;

                case 0x80001:
                {
                    reader.ReadString(ref Name);
                }
                break;

                case 0x70002:
                {
                    reader.ReadFloat(ref Rate);
                }
                break;

                case 0xa0003:
                {
                    reader.ReadEnum(ref Type);
                }
                break;

                case 0x20004:
                {
                    reader.ReadInt32(ref Skill);
                }
                break;
                }
            }
        }
Пример #14
0
        public void Deserialize(tabtoy.TableReader reader)
        {
            reader.ReadHeader();

            UInt32 tag = 0;

            while (reader.ReadTag(ref tag))
            {
                if (tag == 0x6f0000)
                {
                    var tabName = string.Empty;
                    reader.ReadString(ref tabName);
                    switch (tabName)
                    {
                    case "ExampleData":
                    {
                        reader.ReadStruct(ref ExampleData);
                    }
                    break;

                    case "ExampleKV":
                    {
                        reader.ReadStruct(ref ExampleKV);
                    }
                    break;

                    default:
                    {
                        reader.SkipFiled(tag);
                    }
                    break;
                    }
                }
            }

            foreach (var kv in ExampleData)
            {
                ExampleDataByID[kv.ID] = kv;
            }
        }