Exemplo n.º 1
0
        private void EnterGamePre7000()
        {
            var loginConfirmPacket = new CharLocaleAndBodyPacket()
            {
                PlayerId     = legacyApi.Me.PlayerId,
                BodyType     = legacyApi.Me.BodyType,
                Direction    = legacyApi.Me.Direction,
                MovementType = legacyApi.Me.MovementType,
                Location     = legacyApi.Me.Location,
            };

            SendToClient(loginConfirmPacket.Serialize());
            SendToClient(new SetMapPacket(reloginInfo.MapId).RawPacket);

            var enableFeaturesPacket = packetRegistry.Instantiate <EnableLockedClientFeaturesPacket>(0xB9);

            enableFeaturesPacket.Flags = reloginInfo.EnabledFeatureFlags;
            SendToClient(enableFeaturesPacket.Serialize());

            SendToClient(new Packet(new byte[] { 0x55 }));

            var drawPlayer = new DrawGamePlayerPacket(legacyApi.Me.PlayerId, legacyApi.Me.BodyType, legacyApi.Me.Location,
                                                      legacyApi.Me.Direction, legacyApi.Me.MovementType, legacyApi.Me.Color);

            SendToClient(drawPlayer.Serialize());

            foreach (var obj in UO.Items.OnGround())
            {
                var objectInfo = new ObjectInfoPacket(obj.Id, obj.Type, obj.Location, obj.Color, obj.Amount);
                SendToClient(objectInfo.RawPacket);
            }

            SendToClient(new Packet(new byte[] { 0xBF, 0x00, 0x0D, 0x00, 0x05, 0x00, 0x00, 0x02, 0x80, 0x01, 0xFF, 0xFF, 0xA7, }));

            foreach (var mobile in UO.Mobiles)
            {
                var drawPacket = new DrawObjectPacket();
                drawPacket.Color        = mobile.Color.HasValue ? mobile.Color.Value : (Color)0;
                drawPacket.Direction    = mobile.Orientation.HasValue ? mobile.Orientation.Value : Direction.North;
                drawPacket.Flags        = mobile.Flags;
                drawPacket.Id           = mobile.Id;
                drawPacket.Location     = mobile.Location;
                drawPacket.MovementType = mobile.CurrentMovementType.HasValue ? mobile.CurrentMovementType.Value : MovementType.Walk;
                drawPacket.Notoriety    = mobile.Notoriety.HasValue ? mobile.Notoriety.Value : Notoriety.Innocent;
                drawPacket.Type         = mobile.Type;

                var items = UO.Items.InContainer(mobile.Id).Where(i => i.Layer.HasValue).ToArray();
                drawPacket.Items = items;

                SendToClient(drawPacket.Serialize());
            }
        }
Exemplo n.º 2
0
        private void ShowTracked(ObjectId id, Location3D location)
        {
            byte[] payload = null;

            lock (trackedObjectsLock)
            {
                if (!trackedObjects.TryGetValue(id, out payload) || payload == null)
                {
                    return;
                }
            }

            var packet = packetRegistry.Instantiate <DrawObjectPacket>();

            packet.Deserialize(new Packet(payload[0], payload));
            packet.Location = location;
            ultimaClient.Send(packet.RawPacket);
        }
Exemplo n.º 3
0
        public void DropItem(ObjectId itemId, ObjectId targetContainerId)
        {
            var dropPacket = packetRegistry.Instantiate <DropItemRequest>();

            Send(dropPacket.Serialize(itemId, targetContainerId));
        }