Exemplo n.º 1
0
        //0x20
        private static void OnPlayerUpdate(Packet p)
        {
            if (p.ReadUInt() != Player)
                throw new Exception("OnMobileStatus");//does this happen?
            movementQueue.Clear();

            Player.Graphic = (ushort)(p.ReadUShort() + p.ReadSByte());
            Player.Hue = p.ReadUShort();
            Player.Flags = (UOFlags)p.ReadByte();

            ushort x = p.ReadUShort();
            ushort y = p.ReadUShort();
            p.Skip(2);//unknown
            Player.Direction = (Direction)p.ReadByte();
            Player.Position = new Position(x, y, p.ReadSByte());

            OnPlayerMoved();
            Player.ProcessDelta();
        }
Exemplo n.º 2
0
 //0x21
 private static void OnMovementRejected(Packet p)
 {
     movementQueue.Clear();
     p.Skip(1);
     ushort x = p.ReadUShort();
     ushort y = p.ReadUShort();
     Player.Direction = (Direction)p.ReadByte();
     Player.Position = new Position(x, y, p.ReadSByte());
     Player.ProcessDelta();
 }
Exemplo n.º 3
0
        //0x78
        private static void OnMobileIncoming(Packet p)
        {
            Mobile mobile = GetOrCreateMobile(p.ReadUInt());
            mobile.Graphic = p.ReadUShort();
            mobile.Position = new Position(p.ReadUShort(), p.ReadUShort(), p.ReadSByte());
            mobile.Direction = (Direction)p.ReadByte();
            mobile.Hue = p.ReadUShort();
            mobile.Flags = (UOFlags)p.ReadByte();
            mobile.Notoriety = (Notoriety)p.ReadByte();

            uint itemSerial;
            while ((itemSerial = p.ReadUInt()) != 0)
            {
                Item item = GetOrCreateItem(itemSerial);
                ushort graphic = p.ReadUShort();
                item.Layer = (Layer)p.ReadByte();
                if (useNewMobileIncoming.Value || (graphic & 0x8000) != 0)
                    item.Hue = p.ReadUShort();

                if (useNewMobileIncoming.Value)
                    item.Graphic = graphic;
                else if (usePostSAChanges.Value)
                    item.Graphic = (ushort)(graphic & 0x7FFF);
                else
                    item.Graphic = (ushort)(graphic & 0x3FFF);

                item.Amount = 1;
                item.Container = mobile;
                mobile.Items.Add(item);
                item.ProcessDelta();
                Items.Add(item);
            }
            mobile.ProcessDelta();
            if (Mobiles.Add(mobile))
                Mobiles.ProcessDelta();
            Items.ProcessDelta();
        }
Exemplo n.º 4
0
 //0x77
 private static void OnMobileMoving(Packet p)
 {
     Mobile mobile = GetOrCreateMobile(p.ReadUInt());
     mobile.Graphic = p.ReadUShort();
     mobile.Position = new Position(p.ReadUShort(), p.ReadUShort(), p.ReadSByte());
     mobile.Direction = (Direction)p.ReadByte();
     mobile.Hue = p.ReadUShort();
     mobile.Flags = (UOFlags)p.ReadByte();
     mobile.Notoriety = (Notoriety)p.ReadByte();
     mobile.ProcessDelta();
     if (Mobiles.Add(mobile))
         Mobiles.ProcessDelta();
 }