Пример #1
0
        public SampleDefine GetSampleByName(string Name, SampleDefine def = default(SampleDefine))
        {
            SampleDefine ret;

            if (_SampleByName.TryGetValue(Name, out ret))
            {
                return(ret);
            }

            if (def == default(SampleDefine))
            {
                TableLogger.ErrorLine("GetSampleByName failed, Name: {0}", Name);
            }

            return(def);
        }
Пример #2
0
        public SampleDefine GetSampleByID(long ID, SampleDefine def = default(SampleDefine))
        {
            SampleDefine ret;

            if (_SampleByID.TryGetValue(ID, out ret))
            {
                return(ret);
            }

            if (def == default(SampleDefine))
            {
                TableLogger.ErrorLine("GetSampleByID failed, ID: {0}", ID);
            }

            return(def);
        }
Пример #3
0
        public static void Deserialize(SampleDefine ins, tabtoy.DataReader reader)
        {
            // 唯一ID
            if (reader.MatchTag(0x20000))
            {
                ins.ID = reader.ReadInt64();
            }

            // 名称
            if (reader.MatchTag(0x60001))
            {
                ins.Name = reader.ReadString();
            }

            // 图标ID
            if (reader.MatchTag(0x10002))
            {
                ins.IconID = reader.ReadInt32();
            }

            // 攻击率
            if (reader.MatchTag(0x50003))
            {
                ins.NumericalRate = reader.ReadFloat();
            }

            // 物品id
            if (reader.MatchTag(0x10004))
            {
                ins.ItemID = reader.ReadInt32();
            }

            // BuffID
            if (reader.MatchTag(0x10005))
            {
                reader.ReadList_Int32(ins.BuffID);
            }


            if (reader.MatchTag(0x90006))
            {
                ins.Pos = reader.ReadStruct <Vec2>(Vec2DeserializeHandler);
            }

            // 类型
            if (reader.MatchTag(0x80007))
            {
                ins.Type = reader.ReadEnum <ActorType>();
            }

            // 技能ID列表
            if (reader.MatchTag(0x10008))
            {
                reader.ReadList_Int32(ins.SkillID);
            }

            // 单结构解析
            if (reader.MatchTag(0x90009))
            {
                ins.SingleStruct = reader.ReadStruct <Prop>(PropDeserializeHandler);
            }

            // 字符串结构
            if (reader.MatchTag(0x9000a))
            {
                reader.ReadList_Struct <Prop>(ins.StrStruct, PropDeserializeHandler);
            }
        }
Пример #4
0
        public static void Deserialize(SampleDefine ins, tabtoy.DataReader reader)
        {
            int tag = -1;

            while (-1 != (tag = reader.ReadTag()))
            {
                switch (tag)
                {
                case 0x20000:
                {
                    ins.ID = reader.ReadInt64();
                }
                break;

                case 0x60001:
                {
                    ins.Name = reader.ReadString();
                }
                break;

                case 0x10002:
                {
                    ins.IconID = reader.ReadInt32();
                }
                break;

                case 0x50003:
                {
                    ins.NumericalRate = reader.ReadFloat();
                }
                break;

                case 0x10004:
                {
                    ins.ItemID = reader.ReadInt32();
                }
                break;

                case 0x10005:
                {
                    ins.BuffID.Add(reader.ReadInt32());
                }
                break;

                case 0x90006:
                {
                    ins.Pos = reader.ReadStruct <Vec2>(Vec2DeserializeHandler);
                }
                break;

                case 0x80007:
                {
                    ins.Type = reader.ReadEnum <ActorType>();
                }
                break;

                case 0x10008:
                {
                    ins.SkillID.Add(reader.ReadInt32());
                }
                break;

                case 0x90009:
                {
                    ins.AttackParam = reader.ReadStruct <AttackParam>(AttackParamDeserializeHandler);
                }
                break;

                case 0x9000a:
                {
                    ins.SingleStruct = reader.ReadStruct <Prop>(PropDeserializeHandler);
                }
                break;

                case 0x9000b:
                {
                    ins.StrStruct.Add(reader.ReadStruct <Prop>(PropDeserializeHandler));
                }
                break;
                }
            }
        }