1 个不稳定版本
0.1.2 | 2023年2月22日 |
---|
#15 in #develop
16KB
237 代码行
samp-rs
samp-rs 是一个用于开发 Rust 编写的 samp 服务器插件的工具。
文档
在这里!需要找到修复 docs.rs 的方法...
项目结构
samp
是以下描述的 crate 之间的粘合剂(这是你需要的)。samp-codegen
生成原始的extern "C"
函数并完成所有繁琐的工作。samp-sdk
包含与 amx 一起工作的所有类型。
用法
- 安装 rust 编译器(由于 samp 服务器架构,仅支持
i686
操作系统版本)。 - 在您的
Cargo.toml
中添加此内容
[lib]
crate-type = ["cdylib"] # or dylib
[dependencies]
samp = "0.1.2"
- 编写您的第一个插件
从旧版本迁移
- 查看指南
示例
- 在
plugin-example
文件夹中的简单 memcache 插件。 - 您的
lib.rs
文件
use samp::prelude::*; // export most useful types
use samp::{native, initialize_plugin}; // codegen macros
struct Plugin;
impl SampPlugin for Plugin {
// this function executed when samp server loads your plugin
fn on_load(&mut self) {
println!("Plugin is loaded.");
}
}
impl Plugin {
#[native(name = "TestNative")]
fn my_native(&mut self, _amx: &Amx, text: AmxString) -> AmxResult<bool> {
let text = text.to_string(); // convert amx string into rust string
println!("rust plugin: {}", text);
Ok(true)
}
}
initialize_plugin!(
natives: [Plugin::my_native],
{
let plugin = Plugin; // create a plugin object
return plugin; // return the plugin into runtime
}
)
依赖项
~3.5–5MB
~93K SLoC