コード例 #1
0
        public Buff(BinaryReader reader)
        {
            var type = (BuffType)reader.ReadByte();

            Info = Envir.GetBuffInfo(type);

            Caster = null;

            if (Envir.LoadVersion < 88)
            {
                var visible = reader.ReadBoolean();
            }

            ObjectID   = reader.ReadUInt32();
            ExpireTime = reader.ReadInt64();

            if (Envir.LoadVersion <= 84)
            {
                Values = new int[reader.ReadInt32()];

                for (int i = 0; i < Values.Length; i++)
                {
                    Values[i] = reader.ReadInt32();
                }

                if (Envir.LoadVersion < 88)
                {
                    var infinite = reader.ReadBoolean();
                }

                Stats = new Stats();
                Data  = new Dictionary <string, object>();
            }
            else
            {
                if (Envir.LoadVersion < 88)
                {
                    var stackable = reader.ReadBoolean();
                }

                Values = new int[0];
                Stats  = new Stats(reader);
                Data   = new Dictionary <string, object>();

                int count = reader.ReadInt32();

                for (int i = 0; i < count; i++)
                {
                    var key    = reader.ReadString();
                    var length = reader.ReadInt32();

                    var array = new byte[length];

                    for (int j = 0; j < array.Length; j++)
                    {
                        array[j] = reader.ReadByte();
                    }

                    Data[key] = Functions.DeserializeFromBytes(array);
                }

                if (Envir.LoadVersion > 86)
                {
                    count = reader.ReadInt32();

                    Values = new int[count];

                    for (int i = 0; i < count; i++)
                    {
                        Values[i] = reader.ReadInt32();
                    }
                }
            }
        }
コード例 #2
0
 public Buff(BuffType type)
 {
     Info  = Envir.GetBuffInfo(type);
     Stats = new Stats();
     Data  = new Dictionary <string, object>();
 }