Skip to content

Latest commit

 

History

History
32 lines (21 loc) · 2.17 KB

README.md

File metadata and controls

32 lines (21 loc) · 2.17 KB

PawnPlus v1.1

PawnPlus extends the possibilities of the Pawn scripting language with new constructs, data types, and programming techniques.

With this plugin, you can use techniques like asynchronous task-based programming, reflection, hooking, and dynamic structures to make programming in Pawn easier, simpler, and more efficient.

PawnPlus introduces dynamically sized strings, lists, linked lists, and maps. Collections can contain any number of elements of any type (cells or arrays) and any tag. They can be iterated using versatile iterator objects. Tasks can be used to execute code based on a specific event, without creating additional callbacks and without blocking the program.

Several new object types use the garbage collector present in the plugin, removing the need to explicitly delete memory in most cases.

Documentation

See the wiki for documentation and tutorials on how to use this plugin.

Installation

Download the latest release for your platform to the "plugins" directory and add "PawnPlus" (or "PawnPlus.so" on Linux) to the plugins line in server.cfg.

Include PawnPlus.inc in your Pawn program and you are done.

Configuration

This plugin can optionally add a number of syntax features to Pawn like additional statements or operators. These are not available by default due to conflicts with other libraries, but you can use them all if you define PP_SYNTAX, or selectively via other definitions. If you are writing a library, it is recommended not to use any configuration definitions.

Building

Use Visual Studio to build the project on Windows, or make or make static on Linux. Requires GCC >= 4.9.

Credits

  • Zeex for creating subhook without which this wouldn't be possible.
  • Y_Less for help with macros for generic functions.
  • TommyB for thorough testing and bug-finding.
  • Southclaws and AGraber for minor contributions.

Thanks to all PawnPlus users for your support!