#server-side #api #platform #module #events #client-side #gamemodes

altv

Rust服务器端API,用于在alt:V上编写游戏模式

77个版本 (8个稳定版本)

新版本 16.2.1 2024年8月19日
16.1.0 2024年6月2日
16.0.0-dev.12023年12月29日
15.1.0 2023年10月22日
0.2.0 2020年6月13日

#305 in 调试

Download history 25/week @ 2024-04-28 142/week @ 2024-05-05 298/week @ 2024-05-12 13/week @ 2024-05-19 1/week @ 2024-05-26 227/week @ 2024-06-02 23/week @ 2024-06-09 4/week @ 2024-06-16 89/week @ 2024-07-28 42/week @ 2024-08-04 9/week @ 2024-08-11

每月140次下载

MIT许可协议

440KB
9K SLoC


服务器端alt:V API,用于Rust

crates.io

altv::events::on_player_connect(|event| {
    let name = event.player.name()?;
    altv::log!("player with name: {name} connected!");
    Ok(())
});

alt:V平台提供的新服务器端Rust模块

衷心感谢第一个Rust模块创建者,他们的工作帮助我了解如何开始自己的模块

客户端部分

最初是使用原生实现,通过wasmtime实现,不使用JavaScript。 它工作正常,但由于alt:V不允许未经批准在生产中使用自定义客户端模块 (.dll),以及将其集成到客户端核心、持续维护以及没有人使用此模块等问题,我转向了更实际的方法,JavaScript WASM

文档

API文档可以在此处找到

如何使用

在所有这些之前,您需要安装LLVM

[!警告] 目前在Windows上,LLVM的最新版本不能与Rust模块一起工作,您需要安装17.0.1版本,例如,您可以使用winget通过以下命令进行安装:winget install LLVM.LLVM --version 17.0.1(如果失败,请添加--force

[!重要] 在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' 文件未找到,请尝试这个

本教程的视频格式,如果您更喜欢视频教程

  1. 使用以下命令创建新的cargo包:cargo new altv-resource --lib

  2. 在您的Cargo.toml中将cargo配置为以cdylib编译您的crate

[lib]
crate-type = ['cdylib']
  1. 之后,您可以使用以下命令安装altv crate:cargo add altv

  2. 下一步是将主函数添加到您的资源(src/lib.rs)中

use altv::prelude::*; // Entity, WorldObject traits

#[altv::main] // This is required
fn main() -> impl altv::IntoVoidResult {
    altv::log!("~gl~hello world");
}
  1. 现在您可以使用以下命令构建您的资源:cargo build

  2. target/debug/中,您应该看到您刚刚编译的.dll.so(如果您看不到它,请确保将lib.crate-type设置为["cdylib"],请参阅步骤2)

  3. 在服务器的resources目录中创建新的alt:V资源

  4. 将编译的.dll.so复制到资源目录

  5. 使用以下内容创建resource.toml

type = 'rs'
main = 'example.dll' # your compiled .dll or .so
  1. 别忘了将资源添加到server.toml

  2. 现在您可以从最新版本或使用cargo-altvup下载rust模块.dll.so

  3. 将其复制到服务器的modules目录(如果您不使用cargo-altvup

  4. rust-module 添加到 server.toml 中,如下所示:

modules = ['rust-module']
  1. 现在,如果你一切都做对了,你应该在服务器控制台中看到绿色的 "hello world" 消息。

依赖项

~3–14MB
~176K SLoC