public UpdateHealthPacket(PacketReader reader)
     : base(0xA1, "Update Health")
 {
     m_serial = reader.ReadInt32();
     m_max = reader.ReadInt16();
     m_current = reader.ReadInt16();
 }
        public ObjectPropertyListPacket(PacketReader reader)
            : base(0xD6, "Object Property List")
        {
            reader.ReadInt16(); // Always 0x0001
            m_serial = reader.ReadInt32();

            reader.ReadInt16(); // Always 0x0000
            m_hash = reader.ReadInt32();

            m_clilocs = new List<int>();
            m_arguments = new List<string>();

            // Loop of all the item/creature's properties to display in the order to display them. The name is always the first entry.
            int clilocId = reader.ReadInt32();

            while (clilocId != 0)
            {
                m_clilocs.Add(clilocId);

                int textLength = reader.ReadUInt16();
                string args = string.Empty;

                if (textLength > 0)
                {
                    args = reader.ReadUnicodeStringReverse(textLength / 2);
                }

                m_arguments.Add(args);

                clilocId = reader.ReadInt32();
            }
        }
Example #3
1
        public ObjectInfoPacket(PacketReader reader)
            : base(0x1A, "ObjectInfoPacket")
        {
            Serial = reader.ReadInt32();
            ItemID = reader.ReadUInt16();

            Amount = (ushort)(((Serial & 0x80000000) == 0x80000000) ? reader.ReadUInt16() : 0);

            X = reader.ReadInt16();
            Y = reader.ReadInt16();
                        
            Direction = (byte)(((X & 0x8000) == 0x8000) ? reader.ReadByte() : 0);

            Z = reader.ReadSByte();

            Hue = (ushort)(((Y & 0x8000) == 0x8000) ? reader.ReadUInt16() : 0);

            Flags = (byte)(((Y & 0x4000) == 0x4000) ? reader.ReadByte() : 0);

            // sanitize values
            Serial = (int)(Serial & 0x7FFFFFFF);
            ItemID = (ushort)(ItemID & 0x7FFF);
            X = (short)(X & 0x7FFF);
            Y = (short)(Y & 0x3FFF);
        }
 public UpdateStaminaPacket(PacketReader reader)
     : base(0xA3, "Update Stamina")
 {
     m_serial = reader.ReadInt32();
     m_max = reader.ReadInt16();
     m_current = reader.ReadInt16();
 }
        public ContainerContentPacket(PacketReader reader)
            : base(0x3C, "Container ContentPacket")
        {
            int itemCount = reader.ReadUInt16();
            List<ItemInContainer> items = new List<ItemInContainer>(itemCount);

            bool PacketIsPre6017 = (reader.Buffer.Length == 5 + (19 * itemCount));

            for (int i = 0; i < itemCount; i++)
            {
                Serial serial = reader.ReadInt32();
                int iItemID = reader.ReadUInt16();
                int iUnknown = reader.ReadByte(); // signed, itemID offset. always 0 in RunUO.
                int iAmount = reader.ReadUInt16();
                int iX = reader.ReadInt16();
                int iY = reader.ReadInt16();
                int iGridLocation = 0;
                if (!PacketIsPre6017)
                    iGridLocation = reader.ReadByte(); // always 0 in RunUO.
                int iContainerSerial = reader.ReadInt32();
                int iHue = reader.ReadUInt16();

                items.Add(new ItemInContainer(serial, iItemID, iAmount, iX, iY, iGridLocation, iContainerSerial, iHue));
            }

            m_items = items.ToArray();
        }
        public ContainerContentPacket(PacketReader reader)
            : base(0x3C, "Container ContentPacket")
        {
            int itemCount = reader.ReadUInt16();
            List<ContentItem> items = new List<ContentItem>(itemCount);

            for (int i = 0; i < itemCount; i++)
            {
                Serial serial = reader.ReadInt32();
                int iItemID = reader.ReadUInt16();
                int iUnknown = reader.ReadByte(); // signed, itemID offset. always 0 in RunUO.
                int iAmount = reader.ReadUInt16();
                int iX = reader.ReadInt16();
                int iY = reader.ReadInt16();
                int iGridLocation = 0;
                if (!NextContainerContentsIsPre6017)
                    iGridLocation = reader.ReadByte(); // always 0 in RunUO.
                int iContainerSerial = reader.ReadInt32();
                int iHue = reader.ReadUInt16();

                items.Add(new ContentItem(serial, iItemID, iAmount, iX, iY, iGridLocation, iContainerSerial, iHue));
            }

            m_items = items.ToArray();
            if (NextContainerContentsIsPre6017)
                NextContainerContentsIsPre6017 = false;
        }
Example #7
0
        public CustomHousePacket(PacketReader reader)
            : base(0xD8, "Custom House Packet")
        {
            byte CompressionType = reader.ReadByte();
            if (CompressionType != 3)
            {
                m_houseSerial = Serial.Null;
                return;
            }
            reader.ReadByte(); // unknown, always 0?
            m_houseSerial = reader.ReadInt32();
            m_revisionHash = reader.ReadInt32();

            // this is for compression type 3 only
            int bufferLength = reader.ReadInt16();
            int trueBufferLength = reader.ReadInt16();
            m_numPlanes = reader.ReadByte();
            // end compression type 3

            m_planes = new CustomHousePlane[m_numPlanes];
            for (int i = 0; i < m_numPlanes; i++)
            {
                m_planes[i] = new CustomHousePlane(reader);
            }
        }
 public MovementRejectPacket(PacketReader reader)
     : base(0x21, "Move Request Rejected")
 {
     m_sequence = reader.ReadByte(); // (matches sent sequence)
     m_x = reader.ReadInt16();
     m_y = reader.ReadInt16();
     m_direction = reader.ReadByte();
     m_z = reader.ReadSByte();
 }
 public PlaySoundEffectPacket(PacketReader reader)
     : base(0x54, "Play Sound Effect")
 {
     Mode = reader.ReadByte();
     SoundModel = reader.ReadInt16();
     Unknown = reader.ReadInt16();
     X = reader.ReadInt16();
     Y = reader.ReadInt16();
     Z = reader.ReadInt16();
 }
Example #10
0
 public WornItemPacket(PacketReader reader)
     : base(0x2E, "Worn Item")
 {
     m_serial = reader.ReadInt32();
     m_itemId = reader.ReadInt16();
     reader.ReadByte();
     m_layer = reader.ReadByte();
     m_parentSerial = reader.ReadInt32();
     m_hue = reader.ReadInt16();
 }
 public AsciiMessagePacket(PacketReader reader)
     : base(0x1C, "Ascii Message")
 {
     m_serial = reader.ReadInt32();
     m_graphic = reader.ReadInt16();
     m_type = (MessageTypes)reader.ReadByte();
     m_hue = reader.ReadInt16();
     m_font = reader.ReadInt16();
     m_name = reader.ReadString(30);
     m_text = reader.ReadString();
 }
Example #12
0
 public AsciiMessagePacket(PacketReader reader)
     : base(0x1C, "Ascii Message")
 {
     Serial = reader.ReadInt32();
     Model = reader.ReadInt16();
     MsgType = (MessageTypes)reader.ReadByte();
     Hue = reader.ReadUInt16();
     Font = reader.ReadInt16();
     SpeakerName = reader.ReadString(30).Trim();
     Text = reader.ReadString();
 }
Example #13
0
 public MobileAnimationPacket(PacketReader reader)
     : base(0x6E, "Mobile Animation")
 {
     m_serial = reader.ReadInt32();
     m_action = reader.ReadInt16();
     m_framecount = reader.ReadInt16();
     m_repeatcount = reader.ReadInt16();
     m_reverse = reader.ReadByte(); // 0x00=forward, 0x01=backwards
     m_repeat = reader.ReadByte(); // 0 - Don't repeat / 1 repeat
     m_delay = reader.ReadByte();
 }
 public UnicodeMessagePacket(PacketReader reader)
     : base(0xAE, "Unicode Message")
 {
     m_serial = reader.ReadInt32();
     m_model = reader.ReadInt16();
     m_msgType = (MessageTypes)reader.ReadByte();
     m_hue = reader.ReadInt16();
     m_font = reader.ReadInt16();
     m_language = reader.ReadInt32();
     m_speakerName = reader.ReadString(30);
     m_spokenText = reader.ReadUnicodeString((reader.Buffer.Length - 48) / 2);
 }
Example #15
0
 // This is called when the packet is received.
 public TargetCursorMultiPacket(PacketReader reader)
     : base(0x99, "Target Cursor For Multi")
 {
     reader.ReadByte(); // (0x01 from server, 0x00 from client)
     m_deedSerial = reader.ReadInt32();
     reader.ReadByte(); // flag byte. Harmful = 1, Beneficial = 2. Unused.
     reader.ReadBytes(11); // unknown (all 0)
     m_multiModel = reader.ReadInt16();
     m_offsetX = reader.ReadInt16();
     m_offsetY = reader.ReadInt16();
     m_offsetZ = reader.ReadInt16();
 }
Example #16
0
 public UnicodeMessagePacket(PacketReader reader)
     : base(0xAE, "Unicode Message")
 {
     Serial = reader.ReadInt32();
     Model = reader.ReadInt16();
     MsgType = (MessageTypes)reader.ReadByte();
     Hue = reader.ReadUInt16();
     Font = reader.ReadInt16();
     Language = reader.ReadString(4).Trim();
     SpeakerName = reader.ReadString(30).Trim();
     Text = reader.ReadUnicodeString((reader.Buffer.Length - 48) / 2);
 }
Example #17
0
 public BookHeaderNewPacket(PacketReader reader)
     : base(0xD4, "Book Header (New)")
 {
     Serial = reader.ReadInt32();
     Flag0 = reader.ReadByte();
     Flag1 = reader.ReadByte();
     Pages = reader.ReadInt16();
     TitleLength = reader.ReadInt16();
     Title = reader.ReadString();
     AuthorLength = reader.ReadInt16();
     Author = reader.ReadString();
 }
 public MessageLocalizedPacket(PacketReader reader)
     : base(0xC1, "Message Localized")
 {
     Serial = reader.ReadInt32(); // 0xffff for system message
     Body = reader.ReadInt16(); // (0xff for system message
     MessageType = (MessageTypes)reader.ReadByte(); // 6 - lower left, 7 on player
     Hue = reader.ReadUInt16();
     Font = reader.ReadInt16();
     CliLocNumber = reader.ReadInt32();
     SpeakerName = reader.ReadString(30).Trim();
     Arguements = reader.ReadUnicodeStringSafeReverse();
 }
 public SupportedFeaturesPacket(PacketReader reader)
     : base(0xB9, "Enable Features")
 {
     if (reader.Buffer.Length == 3)
         Flags = (FeatureFlags)reader.ReadInt16();
     else if (reader.Buffer.Length == 5)
         Flags = (FeatureFlags)reader.ReadInt32();
     else
     {
         Flags = (FeatureFlags)reader.ReadInt16();
         Tracer.Error("Bad feature flag size in SupportedFeaturesPacket; expected 16 or 32 bit features, received {0} bits.", (reader.Buffer.Length - 1) * 8);
     }
 }
 public ContainerContentUpdatePacket(PacketReader reader)
     : base(0x25, "Add Single Item")
 {
     Serial = reader.ReadInt32();
     ItemId = reader.ReadUInt16();
     reader.ReadByte(); // unknown
     Amount = reader.ReadUInt16();
     X = reader.ReadInt16();
     Y = reader.ReadInt16();
     GridLocation = reader.ReadByte(); // always 0 in RunUO.
     ContainerSerial = (Serial)reader.ReadInt32();
     Hue = reader.ReadUInt16();
 }
 public MobileMovingPacket(PacketReader reader)
     : base(0x77, "Mobile Moving")
 {
     serial = reader.ReadInt32();
     bodyid = reader.ReadUInt16();
     x = reader.ReadInt16();
     y = reader.ReadInt16();
     z = reader.ReadSByte();
     direction = reader.ReadByte();
     hue = reader.ReadUInt16();
     Flags = new MobileFlags((MobileFlag)reader.ReadByte());
     notoriety = reader.ReadByte();
 }
Example #22
0
        public LoginConfirmPacket(PacketReader reader)
            : base(0x1B, "Login Confirm")
        {
            m_serial = reader.ReadInt32();

            reader.ReadInt32(); //unknown. Always 0.

            m_body = reader.ReadInt16();
            m_x = reader.ReadInt16();
            m_y = reader.ReadInt16();
            m_z = reader.ReadInt16();
            m_direction = reader.ReadByte();
        }
Example #23
0
 public MobileMovingPacket(PacketReader reader)
     : base(0x77, "Mobile Moving")
 {
     this.serial = reader.ReadInt32();
     this.bodyid = reader.ReadUInt16();
     this.x = reader.ReadInt16();
     this.y = reader.ReadInt16();
     this.z = reader.ReadSByte();
     this.direction = reader.ReadByte();
     this.hue = reader.ReadUInt16();
     this.Flags = new MobileFlags(reader.ReadByte());
     this.notoriety = reader.ReadByte();
 }
 public ContainerContentUpdatePacket(PacketReader reader)
     : base(0x25, "Add Single Item")
 {
     m_serial = reader.ReadInt32();
     m_itemId = reader.ReadUInt16();
     reader.ReadByte(); // unknown
     m_amount = reader.ReadUInt16();
     m_x = reader.ReadInt16();
     m_y = reader.ReadInt16();
     m_gridLocation = reader.ReadByte(); // always 0 in RunUO.
     m_parentSerial = (Serial)reader.ReadInt32();
     m_hue = reader.ReadUInt16();
 }
 public MobileUpdatePacket(PacketReader reader)
     : base(0x20, "Mobile Update")
 {
     m_serial = reader.ReadInt32();
     m_body = reader.ReadInt16();
     reader.ReadByte(); // Always 0
     m_hue = reader.ReadUInt16(); // Skin hue
     m_flags = new MobileFlags((MobileFlag)reader.ReadByte());
     m_x = reader.ReadInt16();
     m_y = reader.ReadInt16();
     reader.ReadInt16(); // Always 0
     m_direction = reader.ReadByte();
     m_z = reader.ReadSByte();
 }
Example #26
0
 public ChatPacket(PacketReader reader)
     : base(0xB3, "Chat Packet")
 {
     m_language = reader.ReadString(3);
     reader.ReadInt16(); // unknown.
     m_commandtype = reader.ReadByte();
 }
 public AddSingleItemToContainerPacket(PacketReader reader)
     : base(0x25, "Add Single Item")
 {
     Serial = reader.ReadInt32();
     ItemId = reader.ReadUInt16();
     reader.ReadByte(); // unknown
     Amount = reader.ReadUInt16();
     X = reader.ReadInt16();
     Y = reader.ReadInt16();
     if (reader.Buffer.Length == 21)
         GridLocation = reader.ReadByte(); // always 0 in RunUO.
     else
         GridLocation = 0;
     ContainerSerial = (Serial)reader.ReadInt32();
     Hue = reader.ReadUInt16();
 }
 public ServerRelayPacket(PacketReader reader)
     : base(0x8C, "Server Relay")
 {
     m_ipAddress = reader.ReadInt32();
     m_port = reader.ReadInt16();
     m_accountId = reader.ReadInt32();
 }
Example #29
0
 public ServerListEntry(PacketReader reader)
 {
     index = (ushort)reader.ReadInt16();
     name = reader.ReadString(30);
     percentFull = reader.ReadByte();
     timezone = reader.ReadByte();
     address = (uint)reader.ReadInt32();
 }
Example #30
0
 public ServerListEntry(PacketReader reader)
 {
     Index = (ushort)reader.ReadInt16();
     Name = reader.ReadString(32);
     PercentFull = reader.ReadByte();
     Timezone = reader.ReadByte();
     Address = (uint)reader.ReadInt32();
 }