81个版本 (9个稳定版本)
新版本 16.2.1 | 2024年8月19日 |
---|---|
16.1.0 | 2024年6月2日 |
16.0.0-dev.1 | 2023年12月29日 |
15.1.0 | 2023年10月22日 |
0.3.1 |
|
#1144 在 WebAssembly
每月287次 下载
在 3 个crate中使用 (2个直接使用)
7KB
Server-side alt:V API for Rust
altv::events::on_player_connect(|event| {
let name = event.player.name()?;
altv::log!("player with name: {name} connected!");
Ok(())
});
感谢第一个Rust模块的创建者,他们的工作帮助我理解了如何启动自己的模块
客户端部分
最初是使用原生实现,使用wasmtime而无需JavaScript。 它工作正常,但由于alt:V不允许在生产环境中未经批准使用自定义客户端模块 (.dll),需要整合到客户端核心、持续维护以及超过0人使用此模块,我转向了更现实的方法,JavaScript WASM
文档
API文档可在此处找到
如何使用
在所有这些之前,您需要安装LLVM
[!WARNING] 目前Windows上最新版本的LLVM 与Rust模块不兼容,您需要安装17.0.1,例如,使用winget,您可以使用以下命令
winget install LLVM.LLVM --version 17.0.1
(如果失败,请添加--force
)
[!IMPORTANT] 在Windows上设置LIBCLANG_PATH环境变量,使其指向LLVM安装的bin目录。例如,如果您将LLVM安装到D:\programs\LLVM,则应将其值设置为D:\programs\LLVM\bin。您还需要安装带有MSVC编译器的Visual Studio(通常使用Rustup与Rust一起安装)
![注意] 如果在安装或构建altv_internal_sdk时出现类似错误:
src/alt_bridge.h:5:10: 致命错误: 'memory' 文件未找到
,请尝试这个方法
如果你更喜欢视频教程,请观看本教程的视频格式
-
使用以下命令创建新的 cargo 包:
cargo new altv-resource --lib
-
在您的
Cargo.toml
中配置 cargo 以将您的 crate 编译为cdylib
[lib]
crate-type = ['cdylib']
-
之后,您可以使用以下命令安装
altv
crate:cargo add altv
-
下一步是在您的资源(
src/lib.rs
)中添加主函数
use altv::prelude::*; // Entity, WorldObject traits
#[altv::main] // This is required
fn main() -> impl altv::IntoVoidResult {
altv::log!("~gl~hello world");
}
-
现在您可以使用以下命令构建您的资源:
cargo build
-
在
target/debug/
中,您应该看到您刚刚编译的.dll
或.so
文件(如果您没有看到它,请确保您已将lib.crate-type
设置为["cdylib"]
,参见步骤 2) -
在您的服务器
resources
目录中创建新的 alt:V 资源 -
将编译好的
.dll
或.so
复制到资源目录 -
使用以下内容创建
resource.toml
type = 'rs'
main = 'example.dll' # your compiled .dll or .so
-
别忘了将资源添加到
server.toml
-
现在您可以从 最新版本 或使用
cargo-altvup
下载 rust-module.dll
或.so
-
将其复制到您的服务器
modules
目录(如果您没有使用cargo-altvup
) -
像这样将
rust-module
添加到server.toml
modules = ['rust-module']
- 如果您一切操作正确,您应该在服务器控制台中看到绿色的 "hello world" 消息
依赖关系
~0.1–9.5MB
~44K SLoC