Skip to content

Releases: Sreyas-Sreelal/omprs-gdk

1.1.0

09 Jun 05:04
Compare
Choose a tag to compare

What's Changed

  • add get_id and get_from_id methods for Gangzones
  • fix: NetworkStats: use the correct types to reflect open.mp's struct by @ZantetsukenGT in #2

New Contributors

Full Changelog: 1.0.1...1.1.0

1.0.1

06 Jun 05:41
Compare
Choose a tag to compare

Exposed some of the structs fields to be public

Full Changelog: 1.0.0...1.0.1

1.0.0

01 Jun 09:10
Compare
Choose a tag to compare
  • (fixes #1) Removed following Player methods:

    • net_stats__bytes_received
    • net_stats__bytes_sent
    • net_stats__connection_status
    • net_stats__get_connected_time
    • net_stats__get_ip_port
    • net_stats__messages_received
    • net_stats__messages_recv_per_second
    • net_stats__messages_sent
    • net_stats__packet_loss_percent
  • Added new Player methods:

  • Now register! macro can be used on multiple objects, works similar to hooks in PAWN. The order of execution of events/callbacks in each "module" depends on the order in which register! is called and the return value of last executed callback is considered to be the final, unless this chain is terminated using terminate_event! macro.

 use omp::{events::Events, main, register, terminate_event, types::colour::Colour};
 
 struct MyGreeterModule;
 
 impl Events for MyGreeterModule {
     fn on_player_connect(&mut self, player: omp::players::Player) {
         player.send_client_message(Colour::from_rgba(0xFF000000), "Greetings Player");
     }
     fn on_player_text(&mut self, player: omp::players::Player, message: String) -> bool {
         if message.contains("badword") {
             terminate_event!(false);
         }
         true
     }
 }
 
 struct MyMainGamemode;
 
 impl Events for MyMainGamemode {
     fn on_player_connect(&mut self, player: omp::players::Player) {
         player.send_client_message(
             Colour::from_rgba(0x00FF0000),
             &format!("Player {} connected!!!", player.get_name()),
         );
     }
     fn on_player_text(&mut self, player: omp::players::Player, message: String) -> bool {
         true
     }
 }
 
 #[main]
 fn entry() {
     register!(MyGreeterModule);
     register!(MyMainGamemode);
 }

0.2.0

20 May 15:15
Compare
Choose a tag to compare

Full Changelog: 0.1.0...0.2.0

0.1.0

06 May 16:31
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release

First Release of OMPRS

Writing my first gamemode in Rust

  1. Download the omprs component from here

  2. Place the Rust.dll or Rust.so component in components folder

  3. Create a new rust project
    cargo new mygm --lib

  4. Add omp to dependecies
    cargo add omp

  5. Add this to your Cargo.toml

    [lib]
    crate-type = ["cdylib"]
  6. Write a basic code like this

    use omp::{events::Events, main, register, types::colour::Colour};
    
    struct MyGM;
    
    impl Events for MyGM {
        fn on_player_connect(&mut self, player: omp::players::Player) {
            player.send_client_message(Colour::from_rgba(0xFFFFFFFF), "Welcome to my server!");
        }
    }
    
    #[main]
    pub fn game_main() {
        register!(MyGM);
    }
  7. Build the gamemode

    cargo +stable-i686 build

  8. Put the compile mygm.dll or mygm.so to gamemodes folder

  9. Goto config.json add following to it

    "rust":{
        "gamemode":"mygm",
    }
  10. Run your server