9个版本
0.3.0 | 2022年3月26日 |
---|---|
0.2.1 | 2021年12月31日 |
0.1.6 | 2021年12月24日 |
960 在 游戏开发
每月下载 30 次
56KB
1.5K SLoC
scripthookv-rs
scripthookv-rs为ScriptHookV和GTA 5原生提供了Rust绑定。
免责声明:此crate仍在早期开发阶段,API可能会更改。
Crate
libscripthookv-sys
此crate包含无任何包装的ScriptHookV原始绑定。
安装
将以下内容添加到您的cargo.toml
依赖项中
libscripthookv-sys = "0.1.0"
scripthookv-rs
此crate包含ScriptHookV的包装API
安装
将以下内容添加到您的cargo.toml
依赖项中
scripthookv-rs = "0.3.0"
once_cell = "1.9.0"
winapi = { version = "0.3.9", features = [ "consoleapi", "winuser", "wincon" ] }
async-trait = "0.1.52"
scripthookv-rs-gta
此crate包含GTA 5原生的包装API。应与scripthookv-rs
crate一起安装。
安装
此crate尚未发布。
用法
入口点
对于您的入口点,您可以使用shv_entrypoint
宏。此宏为您生成一个DllMain。
extern "C" fn script_main() {
loop {
// On tick logic
script_yield();
}
}
#[shv_entrypoint]
fn entrypoint(module: ModuleHandle) -> ScriptHookV {
ScriptHookVBuilder::new(module)
.script(script_main)
.build()
}
原生
原生可以直接使用native_call
宏调用,如下所示
call_native!(Vehicle, 0xAF35D0D2583051B0, adder_hash, coords, heading, false, false, false);
// ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// Return type Native hash Parameters
或者,您可以使用我的nativedb生成类似于natives.h
文件的包装。
路线图
- 包装所有ScriptHookV函数*。
- 所有crate的专用readme。
- 为ScriptHookV提供更优雅的包装。
- 为大多数原生提供优雅的API。
- 提供一个类似于LemonUI的UI crate。
- 自动测试。
* 排除已弃用的函数。
贡献
欢迎提交拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
鸣谢
- ScriptHookVDotNet 为其作为包装原生API的灵感。
- Salted、Daniel 和 ikt 为一般帮助。
许可证
依赖
~5–17MB
~190K SLoC