public static void ReadRustPackets(string ip, int port) { new External_ESP_base.Menu(); RustInterceptor interceptor = new RustInterceptor(ip, port, 0x162e) { ClientPackets = true, RememberPackets = true, RememberFilteredOnly = false }; interceptor.Start(); while (interceptor.IsAlive) { Packet packet; proxyisAlive = true; interceptor.GetPacket(out packet); switch (((Packet.Rust)packet.packetID)) { case Packet.Rust.EntityPosition: { entityUpdate = Rust_Interceptor.Data.Entity.ParsePositions(packet); ProtoBuf.Entity entity = new ProtoBuf.Entity(); ProtoBuf.Entity entity2 = new ProtoBuf.Entity(); if (playerTable.ContainsKey(entityUpdate[0].UID)) { entity = playerTable[entityUpdate[0].UID]; entity.baseEntity.pos = entityUpdate[0].Position; entity.baseEntity.rot = entityUpdate[0].Rotation; playerTable[entityUpdate[0].UID] = entity; } else if (angryAnimalTable.ContainsKey(entityUpdate[0].UID)) { entity2 = angryAnimalTable[entityUpdate[0].UID]; entity2.baseEntity.pos = entityUpdate[0].Position; entity2.baseEntity.rot = entityUpdate[0].Rotation; angryAnimalTable[entityUpdate[0].UID] = entity2; } else if (niceAnimalTable.ContainsKey(entityUpdate[0].UID)) { entity2 = niceAnimalTable[entityUpdate[0].UID]; entity2.baseEntity.pos = entityUpdate[0].Position; entity2.baseEntity.rot = entityUpdate[0].Rotation; niceAnimalTable[entityUpdate[0].UID] = entity2; } else if (entityTable.ContainsKey(entityUpdate[0].UID)) { entity2 = entityTable[entityUpdate[0].UID]; entity2.baseEntity.pos = entityUpdate[0].Position; entity2.baseEntity.rot = entityUpdate[0].Rotation; entityTable[entityUpdate[0].UID] = entity2; } continue; } case Packet.Rust.Entities: { Rust_Interceptor.Data.Entity.ParseEntity(packet, out Overlay.entity); if (Overlay.entity.basePlayer != null) { if (Overlay.entity.basePlayer.metabolism != null) { playerTable[Overlay.entity.baseNetworkable.uid] = Overlay.entity; localPlayer = Overlay.entity; } else { playerTable[Overlay.entity.baseNetworkable.uid] = Overlay.entity; } } else if (rockIds.Contains <uint>(Overlay.entity.baseNetworkable.prefabID)) { rockTable[Overlay.entity.baseNetworkable.uid] = Overlay.entity; } else if (Overlay.entity.baseNetworkable.prefabID == 0x4f1f0e9b) { tcTable[Overlay.entity.baseNetworkable.uid] = Overlay.entity; } else if (angryAnimalIds.Contains <uint>(Overlay.entity.baseNetworkable.prefabID)) { angryAnimalTable[Overlay.entity.baseNetworkable.uid] = Overlay.entity; } else if (niceAnimalIds.Contains <uint>(Overlay.entity.baseNetworkable.prefabID)) { niceAnimalTable[Overlay.entity.baseNetworkable.uid] = Overlay.entity; } else { entityTable[Overlay.entity.baseNetworkable.uid] = Overlay.entity; } continue; } case Packet.Rust.EntityDestroy: { EntityDestroy destroy = new EntityDestroy(packet); if (playerTable.ContainsKey(destroy.UID)) { playerTable.Remove(destroy.UID); } else if (rockTable.ContainsKey(destroy.UID)) { rockTable.Remove(destroy.UID); } continue; } } } }