Pawn language/AMX runtime 3.2 implementation for RAGE.MP. Compatibility layer to load SA-MP plugins.
I'm not supporting this anymore, this was just merely a POC. It's unfeasable to maintain this without a 32-bit server, and Pawn doesn't work well (workarounds required) with 64 bits.
How to install
Download one of the releases, and drop them into your rage's server root. That's it.
Why use a 2nd executable and IPC?
To maximize compatibility. SA-MP plugins can be loaded unchanged (even complex ones that alter the AMX), and existing tools can be used. IPC is implemented with FIFO pipes.
Read the repo's wiki. No specific documentation for now except for a some natives. The majority of the natives are the same as their JS counterparts, so you should be able to use the RAGE.MP wiki for them.
To get some existing plugin includes or standalone includes to compile you might have to do some workarounds. One example is sscanf2.inc looking for
_samp_included. Some might not work at all or might require modifications because of major differences and/or unimplemented functionality.
Reporting bugs, errors or another issue
Not every native has been tested yet. Please file an issue on the GitHub repository so I can keep track of it. Some bugs can be either this plugin's fault or even RAGE's.
OnPlayerDamagenever gets called (RAGE.MP C++ API issue, can't fix by myself)
OnVehicleHornTogglenever gets called, using horn triggers OnVehicleSirenToggle instead and
toggleparameter is always false (RAGE.MP C++ API issue, can't fix by myself)
- Under some circumstances, some things can occur in the wrong order. I haven't investigated thoroughly on this one yet, but it's a minor thing.
- Some functions that used different parameters for RGB(A) values might not use the colors you expect. I'll fix this later by changing every color function to receive RGBA from pawn, and ignore the Alpha byte if necessary, so you can store the same color value and have it working for every native.
Plugins/includes that have been tested
- zcmd (with some tweaks)
Plugins/includes that should work
Anything that doesn't use SA-MP specific natives/memory hacking
Plugins/includes that won't work
Anything that uses SA-MP specific natives or memory hacking. Some examples:
- YSI (most of YSI is coded to use SA-MP specific natives not yet implemented here)
- YSF and forks of it
- Compatibility wrappers (dialogs with adri1's resource, basic textdraws with NativeUI, etc.)
- Cleanup of bad code
- Use smaller types for some IPC messages.
- Windows version - current IPC implementation is Linux only.