public MovementRejectPacket(PacketReader reader) : base(0x21, "Move Request Rejected") { _sequence = reader.ReadByte(); // (matches sent sequence) _x = reader.ReadInt16(); _y = reader.ReadInt16(); _direction = reader.ReadByte(); _z = reader.ReadSByte(); }
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 MobileUpdatePacket(PacketReader reader) : base(0x20, "Mobile Update") { _serial = reader.ReadInt32(); _body = reader.ReadInt16(); reader.ReadByte(); // Always 0 _hue = reader.ReadUInt16(); // Skin hue _flags = new MobileFlags(reader.ReadByte()); _x = reader.ReadInt16(); _y = reader.ReadInt16(); reader.ReadInt16(); // Always 0 _direction = reader.ReadByte(); _z = reader.ReadSByte(); }
public WorldItemPacket(PacketReader reader) : base(0x1A, "ObjectInfo") { Serial serial = reader.ReadInt32(); ushort itemId = reader.ReadUInt16(); _amount = 0; if ((serial & 0x80000000) == 0x80000000) { _amount = reader.ReadInt16(); } // Doesn't exist this thing in the packet /*byte iIncrement = 0; if ((iItemID & 0x8000) == 0x8000) { iIncrement = reader.ReadByte(); iObjectSerial += iIncrement; }*/ ushort x = reader.ReadUInt16(); ushort y = reader.ReadUInt16(); _direction = 0; if ((x & 0x8000) == 0x8000) _direction = reader.ReadByte(); _z = reader.ReadSByte(); _hue = 0; if ((y & 0x8000) == 0x8000) _hue = reader.ReadUInt16(); _flags = 0; if ((y & 0x4000) == 0x4000) _flags = reader.ReadByte(); _serial = (int)(serial &= 0x7FFFFFFF); _itemid = (short)(itemId &= 0x7FFF); _x = (short)(x &= 0x7FFF); _y = (short)(y &= 0x3FFF); }
public MobileIncomingPacket(PacketReader reader) : base(0x78, "Mobile Incoming") { // Mobile _serial = reader.ReadInt32(); _body = reader.ReadInt16(); _x = reader.ReadInt16(); _y = reader.ReadInt16(); _z = reader.ReadSByte(); _direction = reader.ReadByte(); _hue = reader.ReadUInt16(); this.Flags = new MobileFlags(reader.ReadByte()); _notoriety = reader.ReadByte(); // Read equipment - nine bytes ea. List<EquipmentEntry> items = new List<EquipmentEntry>(); Serial serial = reader.ReadInt32(); if (!serial.IsValid) { reader.ReadByte(); //zero terminated _equipment = new EquipmentEntry[0]; } else { while (serial.IsValid) { ushort gumpId = reader.ReadUInt16(); byte layer = reader.ReadByte(); ushort hue = 0; if ((gumpId & 0x8000) == 0x8000) { gumpId = (ushort)((int)gumpId - 0x8000); hue = reader.ReadUInt16(); } items.Add(new EquipmentEntry(serial, gumpId, layer, hue)); // read the next serial and begin the loop again. break at 0x00000000 serial = reader.ReadInt32(); } _equipment = items.ToArray(); } }