Ejemplo n.º 1
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);
            ItemId = reader.ReadObjectId();
            Type   = reader.ReadModelId();
            reader.Skip(1);
            Layer    = reader.ReadLayer();
            PlayerId = reader.ReadObjectId();
            Color    = reader.ReadColor();
        }
Ejemplo n.º 2
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(3);
            PlayerId      = reader.ReadObjectId();
            PlayerName    = reader.ReadString(30);
            CurrentHealth = reader.ReadUShort();
            MaxHealth     = reader.ReadUShort();
            CanRename     = reader.ReadBool();
            var validStats = reader.ReadByte(); // status flag / valid stats

            if (validStats == 0)
            {
                return;
            }

            if (validStats != 1 && validStats != 7)
            {
                throw new NotImplementedException($"unknown validStats {validStats}");
            }

            reader.ReadByte(); // sex + race
            Strength       = reader.ReadUShort();
            Dexterity      = reader.ReadUShort();
            Intelligence   = reader.ReadUShort();
            CurrentStamina = reader.ReadUShort();
            MaxStamina     = reader.ReadUShort();
            CurrentMana    = reader.ReadUShort();
            MaxMana        = reader.ReadUShort();
            Gold           = reader.ReadUInt();
            Armor          = reader.ReadUShort();
            Weight         = reader.ReadUShort();
        }
Ejemplo n.º 3
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            ItemId = reader.ReadObjectId();
            Type   = reader.ReadModelId();
            reader.Skip(1);
            Amount      = reader.ReadUShort();
            Location    = new Location2D(reader.ReadUShort(), reader.ReadUShort());
            ContainerId = reader.ReadObjectId();
            Color       = (Color)reader.ReadUShort();
        }
Ejemplo n.º 4
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            PlayerId = reader.ReadObjectId();
            uint unknown1 = reader.ReadUInt();

            BodyType = reader.ReadModelId();
            ushort xloc     = reader.ReadUShort();
            ushort yloc     = reader.ReadUShort();
            byte   unknown2 = reader.ReadByte();
            sbyte  zloc     = reader.ReadSByte();

            Location = new Location3D(xloc, yloc, zloc);
            (Direction, MovementType) = reader.ReadDirection();

            //reader.Skip(5);

            //var minX = reader.ReadUShort();
            //var minY = reader.ReadUShort();
            //var maxX = reader.ReadUShort();
            //var maxY = reader.ReadUShort();
            //MapBoundary = new MapBoundary(minX, minY, maxX, maxY);
        }
Ejemplo n.º 5
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);
            ItemId = reader.ReadObjectId();
        }
Ejemplo n.º 6
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            DirectionType = (EffectDirectionType)reader.ReadByte();
            CharacterId   = reader.ReadObjectId();
            TargetId      = reader.ReadObjectId();
            Type          = reader.ReadModelId();

            Location        = new Location3D(reader.ReadUShort(), reader.ReadUShort(), reader.ReadSByte());
            TargetLocation  = new Location3D(reader.ReadUShort(), reader.ReadUShort(), reader.ReadSByte());
            AnimationSpeed  = reader.ReadByte();
            AdjustDirection = reader.ReadBool();
            ExplodeOnImpact = reader.ReadBool();
        }
Ejemplo n.º 7
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);
            PlayerId      = reader.ReadObjectId();
            MaxHealth     = reader.ReadUShort();
            CurrentHealth = reader.ReadUShort();
        }
Ejemplo n.º 8
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            ContainerId = reader.ReadObjectId();
            GumpModel   = reader.ReadModelId();
        }
Ejemplo n.º 9
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            MapId      = reader.ReadObjectId();
            MapArt     = reader.ReadModelId();
            UpperLeft  = new Location2D(reader.ReadUShort(), reader.ReadUShort());
            LowerRight = new Location2D(reader.ReadUShort(), reader.ReadUShort());
            Width      = reader.ReadUShort();
            Height     = reader.ReadUShort();
        }
Ejemplo n.º 10
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(3);

            Id      = reader.ReadObjectId();
            Model   = reader.ReadModelId();
            Type    = (SpeechType)reader.ReadByte();
            Color   = (Color)reader.ReadUShort();
            Font    = reader.ReadUShort();
            Name    = reader.ReadString(30);
            Message = reader.ReadNullTerminatedString();
        }
Ejemplo n.º 11
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            PlayerId = reader.ReadObjectId();
            Type     = reader.ReadModelId();
            Location = new Location3D(reader.ReadUShort(), reader.ReadUShort(), reader.ReadSByte());
            (Direction, MovementType) = reader.ReadDirection();
            Color = reader.ReadColor();
            Flags = reader.ReadByte();
        }
Ejemplo n.º 12
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            ContainerId = reader.ReadObjectId();
            GumpModel   = reader.ReadModelId();

            if (protocolVersion >= 7090)
            {
                reader.ReadUShort();
            }
        }
Ejemplo n.º 13
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(3);

            SpeakerId   = reader.ReadObjectId();
            SpeakerBody = reader.ReadModelId();
            Type        = (SpeechType)reader.ReadByte();
            Color       = reader.ReadColor();
            Font        = reader.ReadUShort();
            MessageId   = new MessageId(reader.ReadInt());
            Name        = reader.ReadString(29);
            Arguments   = reader.ReadNullTerminatedUnicodeString();
        }
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(4);

            Id     = reader.ReadObjectId();
            Type   = reader.ReadModelId();
            Facing = (Direction)reader.ReadByte();
            Amount = reader.ReadUShort();
            reader.ReadUShort(); // second amount?
            Location = new Location3D(reader.ReadUShort(), reader.ReadUShort(), reader.ReadSByte());
            Layer    = reader.ReadLayer();
            Color    = reader.ReadColor();

            reader.ReadByte(); // flags
        }
Ejemplo n.º 15
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;

            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            var packetSize = reader.ReadUShort();

            SpeakerId   = reader.ReadObjectId();
            SpeakerBody = reader.ReadModelId();
            reader.ReadByte(); // type
            Color     = reader.ReadColor();
            Font      = reader.ReadUShort();
            MessageId = new MessageId(reader.ReadInt());
            reader.ReadByte(); // ignoring flags
            Name  = reader.ReadString(30);
            Affix = reader.ReadNullTerminatedString();
        }
Ejemplo n.º 16
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            CursorTarget = (CursorTarget)reader.ReadByte();
            CursorId     = new CursorId(reader.ReadUInt());
            CursorType   = (CursorType)reader.ReadByte();
            ClickedOnId  = reader.ReadObjectId();

            ushort xloc    = reader.ReadUShort();
            ushort yloc    = reader.ReadUShort();
            byte   unknown = reader.ReadByte();
            sbyte  zloc    = reader.ReadSByte();

            Location = new Location3D(xloc, yloc, zloc);

            ClickedOnType = reader.ReadModelId();
        }
Ejemplo n.º 17
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(3);

            Id       = reader.ReadObjectId();
            Type     = reader.ReadModelId();
            Location = new Location3D(reader.ReadUShort(), reader.ReadUShort(), reader.ReadSByte());
            (Direction, MovementType) = reader.ReadDirection();
            Color     = (Color)reader.ReadUShort();
            Flags     = reader.ReadByte();
            Notoriety = (Notoriety)reader.ReadByte();

            var items  = new List <Item>();
            var itemId = reader.ReadUInt();

            while (itemId != 0x00000000)
            {
                var   type  = reader.ReadUShort();
                var   layer = (Layer)reader.ReadByte();
                Color?color = null;

                if ((type & 0x8000) != 0)
                {
                    type -= 0x8000;
                    color = (Color)reader.ReadUShort();
                }

                var item = new Item(new ObjectId(itemId), new ModelId(type), 1, new Location3D(0, 0, 0), containerId: Id,
                                    layer: layer, color: color);

                items.Add(item);

                itemId = reader.ReadUInt();
            }

            Items = items.ToArray();
        }
Ejemplo n.º 18
0
        public override void Deserialize(Packet rawPacket)
        {
            this.rawPacket = rawPacket;
            var reader = new ArrayPacketReader(rawPacket.Payload);

            reader.Skip(1);

            PlayerId = reader.ReadObjectId();
            BodyType = reader.ReadModelId();
            reader.Skip(1); // unknown

            Color = reader.ReadColor();
            Flags = reader.ReadByte();

            var xloc = reader.ReadUShort();
            var yloc = reader.ReadUShort();

            reader.Skip(2); // unknown
            (Direction, MovementType) = reader.ReadDirection();
            var zloc = reader.ReadSByte();

            Location = new Location3D(xloc, yloc, zloc);
        }