samp-rs is a tool to develop plugins for samp servers written in rust.
it's here! need to find a way to fix docs.rs ...
samp
is a glue between crates described below (that's what you need).samp-codegen
generates raw extern "C"
functions and does whole nasty job.samp-sdk
contains all types to work with amx.i686
os versions because of samp server arch).Cargo.toml
this:
```toml
[lib]
crate-type = ["cdylib"] # or dylib[dependencies] samp = "0.1.2" ``` * write your first plugin
plugin-example
folder.lib.rs
file
```rust
use samp::prelude::*; // export most useful types
use samp::{native, initialize_plugin}; // codegen macrosstruct 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 mynative(&mut self, _amx: &Amx, text: AmxString) -> AmxResult
Ok(true)
}
}
initializeplugin!( natives: [Plugin::mynative], { let plugin = Plugin; // create a plugin object return plugin; // return the plugin into runtime } ) ```