3 个版本
0.1.2 | 2019年3月20日 |
---|---|
0.1.1 | 2019年3月16日 |
0.1.0 | 2019年3月16日 |
#6 in #develop
68KB
1K SLoC
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.0"
- 编写您的第一个插件
从旧版本迁移
- 查看 指南
示例
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–5MB
~92K SLoC