3 个不稳定版本
0.2.1 | 2022 年 4 月 2 日 |
---|---|
0.2.0 | 2022 年 3 月 26 日 |
0.1.0 | 2021 年 12 月 31 日 |
#13 in #entrypoint
在 scripthookv-rs 中使用
4KB
60 行
scripthookv-rs
Scripthookv-rs 为 ScriptHookV 和 GTA 5 原生代码提供 Rust 绑定。
免责声明:该包仍在早期开发阶段,API 可能会更改。
包
libscripthookv-sys
该包包含不带任何包装的 ScriptHookV 原始绑定。
安装
将以下内容添加到您的 cargo.toml
依赖项中
libscripthookv-sys = "0.1.0"
scripthookv-rs
该包包含 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
该包包含 GTA 5 原生代码的包装 API。应与 scripthookv-rs
包一起安装。
安装
该包尚未发布。
用法
入口点
对于您的入口点,您可以使用 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 函数*。
- 为所有包提供专门的说明。
- 为 ScriptHookV 提供更优雅的包装。
- 为大多数原生代码提供优雅的 API。
- 提供类似于 LemonUI 的 UI 包。
- 自动测试。
* 排除已弃用函数。
贡献
欢迎提交拉取请求。对于重大更改,请先提交一个问题以讨论您希望更改的内容。
致谢
- ScriptHookVDotNet 为包装原生 API 提供了很大的灵感。
- Salted、Daniel 和 ikt 提供了一般帮助。
许可证
依赖项
~1.5MB
~35K SLoC