13.08.2016, 16:23
(
Последний раз редактировалось ge0r; 14.08.2016 в 21:17.
)
This plugin updates Pawn to the latest version from CompuPhase's repository without loss of original API.
Overview of main Pawn changes:
1. Structures
2. Enumerated lists
3. Lots of new natives in Pawn includes, e. g., functions that were added to file.inc:
Also you can read about changes at official page: http://www.compuphase.com/pawn/pawnhistory.htm
Changes and additions for API that aren't related to Pawn update:
1. Callback arguments are packed
2. It's safe to use packed strings with SA-MP functions
3. Some natives like GetPlayerName/GetWeaponName/etc got argument bool:ispacked=true at end.
4. format native that was taken from AMXMODX has been replaced with Pawn's strformat.
5. New include: a_vec.inc. It includes Vector3-powered versions of some SA-MP functions that have "Vec" suffix. Vector3 is a structure with fields Float, Float:y and Float:z. Example of usage:
Known issues:
- filterscripts crash the server. Looks like it will not be fixed because it will break support of most SA-MP versions or/and reduce performance
- Some plugins may not work with nPawn. Most of sampgdk-based plugins will not work.
Links:
Source code: https://github.com/g3o0or/npawn-samp
Binaries (Windows/Linux plugin and pawncc): https://github.com/g3o0or/npawn-samp/releases
Resources (updated includes and examples): https://github.com/g3o0or/npawn-samp...ster/resources
Overview of main Pawn changes:
1. Structures
PHP код:
new msg[.text{30}, .priority];
msg.priority = 10;
strpack(msg.text, "update: {30} means [30 char]");
print(msg.text);
PHP код:
// from file.inc
const filemode:
{
io_read = 0, /* file must exist */
io_write, /* creates a new file */
io_readwrite, /* opens an existing file, or creates a new file */
io_append, /* appends to file (write-only) */
}
PHP код:
native bool: fcopy(const source[], const target[]);
native bool: frename(const oldname[], const newname[]);
native bool: fcreatedir(const name[]);
native bool: fstat(name[], &size = 0, ×tamp = 0, &mode = 0, &inode = 0);
native bool: fattrib(const name[], timestamp=0, attrib=0x0f);
native filecrc(const name[]);
// ini reader
native readcfg(const filename[]=``'', const section[]=``'', const key[], value[], size=sizeof value, const defvalue[]=``'', bool:pack=true);
native readcfgvalue(const filename[]=``'', const section[]=``'', const key[], defvalue=0);
native bool: writecfg(const filename[]=``'', const section[]=``'', const key[], const value[]);
native bool: writecfgvalue(const filename[]=``'', const section[]=``'', const key[], value);
native bool: deletecfg(const filename[]=``'', const section[]=``'', const key[]=``'');
Changes and additions for API that aren't related to Pawn update:
1. Callback arguments are packed
2. It's safe to use packed strings with SA-MP functions
3. Some natives like GetPlayerName/GetWeaponName/etc got argument bool:ispacked=true at end.
4. format native that was taken from AMXMODX has been replaced with Pawn's strformat.
5. New include: a_vec.inc. It includes Vector3-powered versions of some SA-MP functions that have "Vec" suffix. Vector3 is a structure with fields Float, Float:y and Float:z. Example of usage:
PHP код:
new pos[Vector3];
GetPlayerPosVec(playerid, pos);
pos.z += 20.0;
SetPlayerPosVec(playerid, pos);
- filterscripts crash the server. Looks like it will not be fixed because it will break support of most SA-MP versions or/and reduce performance
- Some plugins may not work with nPawn. Most of sampgdk-based plugins will not work.
Links:
Source code: https://github.com/g3o0or/npawn-samp
Binaries (Windows/Linux plugin and pawncc): https://github.com/g3o0or/npawn-samp/releases
Resources (updated includes and examples): https://github.com/g3o0or/npawn-samp...ster/resources