3 个不稳定版本

0.2.1 2022 年 4 月 2 日
0.2.0 2022 年 3 月 26 日
0.1.0 2021 年 12 月 31 日

#13 in #entrypoint


scripthookv-rs 中使用

MIT 许可证

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 包。
  • 自动测试。

* 排除已弃用函数。

贡献

欢迎提交拉取请求。对于重大更改,请先提交一个问题以讨论您希望更改的内容。

致谢

许可证

MIT

依赖项

~1.5MB
~35K SLoC