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()); } }
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); }
public void DropItem(ObjectId itemId, ObjectId targetContainerId) { var dropPacket = packetRegistry.Instantiate <DropItemRequest>(); Send(dropPacket.Serialize(itemId, targetContainerId)); }