Skip to content
This repository has been archived by the owner. It is now read-only.
Pawn (3.2) scripting language for RAGE.MP
C++ C Pawn HTML CMake
Branch: master
Clone or download
Latest commit 762cd83 Dec 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode Initial commit Oct 27, 2019
client stupid fixes Nov 6, 2019
common Windows now works + other fixes Nov 6, 2019
lib Initial commit Oct 27, 2019
pawno/include Add OnTick callback (toggable) Nov 6, 2019
src Windows now works + other fixes Nov 6, 2019
.gitignore Windows now works + other fixes Nov 6, 2019
.gitmodules Initial commit Oct 27, 2019
CMakeLists.txt Windows now works + other fixes Nov 6, 2019
README.md Update README.md Dec 19, 2019

README.md

pawn4rage

Pawn language/AMX runtime 3.2 implementation for RAGE.MP. Compatibility layer to load SA-MP plugins.

Not supported

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.

Documentation

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.

Some notes

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.

Known bugs

  • OnPlayerDamage never gets called (RAGE.MP C++ API issue, can't fix by myself)
  • OnVehicleHornToggle never gets called, using horn triggers OnVehicleSirenToggle instead and toggle parameter 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

  • sscanf
  • zcmd (with some tweaks)
  • mysql
  • crashdetect
  • PawnPlus

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
  • Pawn.CMD
  • Pawn.RakNet
  • fixes.inc
  • FCNPC

Planned/To do

  • Compatibility wrappers (dialogs with adri1's resource, basic textdraws with NativeUI, etc.)
  • Timers
  • Cleanup of bad code
  • Use smaller types for some IPC messages.
  • Windows version - current IPC implementation is Linux only.
You can’t perform that action at this time.