3 个版本
0.5.3 | 2023年6月14日 |
---|---|
0.5.1 | 2023年6月14日 |
0.5.0 | 2023年6月6日 |
#565 in 游戏
18KB
360 行
libserpix_rs
这是一个 Rust 库,充当屏幕阅读器部分,与 lua 库 LibSerpix 配合使用,该库允许通过将数据编码成像素实现《魔兽世界》的实时数据传输。两者结合使用,允许实时将 JSON 格式的消息从《魔兽世界》中传输出来。
示例
这是 src/bin/wow.rs。使用 cargo run --release --bin wow
运行。
use std::time::Instant;
use tokio::sync::mpsc::{channel, error};
use libserpix_rs::*;
#[tokio::main]
async fn main() {
let (tx, mut rx) = channel(100);
let mut handles = vec![];
// Thread #1: scan WoW window
let h = tokio::spawn(async move {
let hwnd = win_screenshot::utils::find_window("World of Warcraft").expect("Couldn't find window");
loop {
read_wow(hwnd, tx.clone()).await;
}
});
handles.push(h);
// Thread #2: parse output
let h = tokio::spawn(async move {
loop {
match rx.try_recv() {
Ok(v) => {
let jstring = &v.to_string();
println!("{}",jstring);
},
Err(e) => {
match e {
error::TryRecvError::Disconnected => break,
_ => {}
}
}
}
}
});
handles.push(h);
for handle in handles {
handle.await.expect("Thread exited");
}
}
依赖项
~8–45MB
~665K SLoC