public void ReadPacketTwo_ReadsValuesProperly() { var packet = new PlayerPureSyncPacket(); packet.Read(this.testPacketTwo); packet.SyncFlags.IsInWater.Should().Be(false); packet.SyncFlags.IsOnGround.Should().Be(true); packet.SyncFlags.HasJetpack.Should().Be(false); packet.SyncFlags.IsDucked.Should().Be(false); packet.SyncFlags.WearsGoggles.Should().Be(false); packet.SyncFlags.HasContact.Should().Be(false); packet.SyncFlags.IsChoking.Should().Be(false); packet.SyncFlags.AkimboTargetUp.Should().Be(false); packet.SyncFlags.IsOnFire.Should().Be(false); packet.SyncFlags.HasAWeapon.Should().Be(true); packet.SyncFlags.IsSyncingVelocity.Should().Be(false); packet.SyncFlags.IsStealthAiming.Should().Be(false); packet.Position.Should().NotBe(Vector3.Zero); packet.Velocity.Should().Be(Vector3.Zero); packet.Health.Should().Be(100); packet.Armor.Should().Be(0); //packet.CameraRotation.Should().Be(0); packet.CameraOrientation.BasePosition.Should().Be(packet.Position); //packet.CameraOrientation.CameraPosition.Should().Be(Vector3.Zero); //packet.CameraOrientation.CameraForward.Should().Be(Vector3.Zero); }
protected override void HandlePacket(PacketQueueEntry queueEntry) { try { switch (queueEntry.PacketId) { case PacketId.PACKET_ID_CAMERA_SYNC: CameraSyncPacket cameraPureSyncPacket = new CameraSyncPacket(); cameraPureSyncPacket.Read(queueEntry.Data); HandleCameraSyncPacket(queueEntry.Client, cameraPureSyncPacket); break; case PacketId.PACKET_ID_PLAYER_PURESYNC: PlayerPureSyncPacket playerPureSyncPacket = new PlayerPureSyncPacket(); playerPureSyncPacket.Read(queueEntry.Data); HandleClientPureSyncPacket(queueEntry.Client, playerPureSyncPacket); break; } } catch (Exception e) { Debug.WriteLine("Handling packet failed"); Debug.WriteLine(string.Join(", ", queueEntry.Data)); Debug.WriteLine($"{e.Message}\n{e.StackTrace}"); } }
public async void HandlePackets() { while (true) { while (this.packetQueue.TryDequeue(out PacketQueueEntry queueEntry)) { try { Console.WriteLine(queueEntry.PacketId); switch (queueEntry.PacketId) { case PacketId.PACKET_ID_CAMERA_SYNC: CameraSyncPacket cameraPureSyncPacket = new CameraSyncPacket(); cameraPureSyncPacket.Read(queueEntry.Data); HandleCameraSyncPacket(queueEntry.Client, cameraPureSyncPacket); break; case PacketId.PACKET_ID_PLAYER_PURESYNC: PlayerPureSyncPacket playerPureSyncPacket = new PlayerPureSyncPacket(); playerPureSyncPacket.Read(queueEntry.Data); HandlePlayerPureSyncPacket(queueEntry.Client, playerPureSyncPacket); break; } } catch (Exception e) { Console.WriteLine("Handling packet failed"); Console.WriteLine(string.Join(", ", queueEntry.Data)); //Console.WriteLine($"{e.Message}\n{e.StackTrace}"); } } await Task.Delay(this.sleepInterval); } }
private void TestPureSync(Client client) { var playerList = new PlayerListPacket(false); playerList.AddPlayer( playerId: 666, timeContext: 0, nickname: "Dummy-Player", bitsreamVersion: 343, buildNumber: 0, isDead: false, isInVehicle: false, hasJetpack: true, isNametagShowing: true, isNametagColorOverriden: true, isHeadless: false, isFrozen: false, nametagText: "Dummy-Player", color: Color.FromArgb(255, 255, 0, 255), moveAnimation: 0, model: 9, teamId: null, vehicleId: null, seat: null, position: new Vector3(5, 0, 3), rotation: 0, dimension: 0, fightingStyle: 0, alpha: 255, interior: 0, weapons: new byte[16] ); client.SendPacket(playerList); var data = new byte[] { 0, 0, 0, 0, 2, 46, 33, 240, 8, 159, 255, 240, 8, 4, 116, 11, 186, 246, 64, 0, 73, 144, 129, 19, 48, 0, 0 }; var puresync = new PlayerPureSyncPacket(); puresync.Read(data); puresync.PlayerId = 666; puresync.Latency = 0; //_ = Task.Run(async () => //{ // for (int i = 0; i < 1000; i++) // { // puresync.Position += new Vector3(0.25f, 0, 0); // client.SendPacket(puresync); // await Task.Delay(250); // } //}); }
public void ReadPacketThree_ReadsValuesProperly() { var packet = new PlayerPureSyncPacket(); packet.Read(this.testPacketThree); packet.SyncFlags.IsInWater.Should().Be(false); packet.SyncFlags.IsOnGround.Should().Be(true); packet.SyncFlags.HasJetpack.Should().Be(false); packet.SyncFlags.IsDucked.Should().Be(false); packet.SyncFlags.WearsGoggles.Should().Be(false); packet.SyncFlags.HasContact.Should().Be(false); packet.SyncFlags.IsChoking.Should().Be(false); packet.SyncFlags.AkimboTargetUp.Should().Be(false); packet.SyncFlags.IsOnFire.Should().Be(false); packet.SyncFlags.HasAWeapon.Should().Be(true); packet.SyncFlags.IsSyncingVelocity.Should().Be(true); packet.SyncFlags.IsStealthAiming.Should().Be(false); }