24.03.2010, 01:11
SA-MP 0.3a R8 Server
22/06/2010
- 0.3a R8 server fixes a denial of service attack where an external program interfacing with SA-MP's network layer could send a misaligned payload to RPCs.
Windows: http://files.sa-mp.com/samp03asvr_R8_win32.zip
Linux: http://files.sa-mp.com/samp03asvr_R8.tar.gz
SA-MP 0.3a R7 Server
28/03/2010
Windows: http://files.sa-mp.com/samp03asvr_R7_win32.zip
Linux: http://files.sa-mp.com/samp03asvr_R7.tar.gz
Changes from R6 server:
- There was a problem with the PVar list after DeletePVar() had been used (thanks to Toribio for pointing this out).
- PVar names use uppercase internally which speeds up the lookups. When you enumerate PVars the name will always be returned in uppercase. You can still use any case for getting/setting.
SA-MP 0.3a R6 Server
27/03/2010
Changes from R5 server:
- PVar names use exact names instead of partial matching, they're case-insensitive still ("id" is the same as "ID").
- PVars are now reset during a game mode restart.
- Hopefully fixed crash on Windows server related to a compiler problem.
- Vehicle mods sent by players have additional sanity checks (thanks to Tenshi for pointing out a problem).
SA-MP 0.3a R5 Server
23/03/2010
A new server update is being made available immediately due to a "denial of service" attack on several popular SA-MP servers.
Note: this is not 0.3b. This is an optional server-only update. It does not fix all existing bugs, as many fixes will have to wait until the next mandatory client/server update.
0.3a R5 fixes a "denial of service" vulnerability where a player sending invalid data, generated by an external program, may cause the server to generate a debug assertion, which causes the server to close.
The R5 server also contains some new scripting features that missed the initial 0.3a server releases.
Camera information:
With the camera information you can tell where a player is looking. Please note the player's camera info is only updated while they are onfoot, spectating or driving a vehicle which has a special turret like the firetruck/swatvan etc.
Per-player variable system: (PVars).
Originally SA-MP was only designed for 100 maximum players. This meant defining arrays in pawn of MAX_PLAYERS size such as: PlayerInfo[MAX_PLAYERS] was generally okay. Now that MAX_PLAYERS is defined as 500, script writers are finding themselves creating arrays with 500 elements just to store a single flag. This can turn out to be very wasteful in terms of memory use. These variables also need to be manually reset when the player using them leaves the server.
Advantages of using PVars over arrays of MAX_PLAYERS:
1) PVars can be shared/accessed across gamemode scripts and filterscripts, making it easier to modularise your code.
2) PVars are automatically deleted when a player leaves the server, meaning you don't have to manually reset variables for the next player who joins.
3) No real need for complex enums/player info structures.
4) Saves memory by not allocating pawn array elements for playerids which will probably never be used.
5) You can easily enumerate and print/store the PVar list. This makes both debugging and player info storage easier.
6) Even if a PVar hasn't been created, it still will return a default value of 0.
7) PVars can hold very large strings using dynamically allocated memory.
Addition to player markers:
If the player markers mode is PLAYER_MARKERS_MODE_GLOBAL, you can limit the radius which the player markers are drawn for each player. This may be important on some servers since there are limits to how many total markers you can have in GTA SA.
Additional vehicle damage functions:
Vehicle damage callback is called when a player updates the damage information on their vehicle.
New functions allow you to get and set the vehicle damage information.
Other:
Fix for pawn's fseek() function.
22/06/2010
- 0.3a R8 server fixes a denial of service attack where an external program interfacing with SA-MP's network layer could send a misaligned payload to RPCs.
Windows: http://files.sa-mp.com/samp03asvr_R8_win32.zip
Linux: http://files.sa-mp.com/samp03asvr_R8.tar.gz
SA-MP 0.3a R7 Server
28/03/2010
Windows: http://files.sa-mp.com/samp03asvr_R7_win32.zip
Linux: http://files.sa-mp.com/samp03asvr_R7.tar.gz
Changes from R6 server:
- There was a problem with the PVar list after DeletePVar() had been used (thanks to Toribio for pointing this out).
- PVar names use uppercase internally which speeds up the lookups. When you enumerate PVars the name will always be returned in uppercase. You can still use any case for getting/setting.
SA-MP 0.3a R6 Server
27/03/2010
Changes from R5 server:
- PVar names use exact names instead of partial matching, they're case-insensitive still ("id" is the same as "ID").
- PVars are now reset during a game mode restart.
- Hopefully fixed crash on Windows server related to a compiler problem.
- Vehicle mods sent by players have additional sanity checks (thanks to Tenshi for pointing out a problem).
SA-MP 0.3a R5 Server
23/03/2010
A new server update is being made available immediately due to a "denial of service" attack on several popular SA-MP servers.
Note: this is not 0.3b. This is an optional server-only update. It does not fix all existing bugs, as many fixes will have to wait until the next mandatory client/server update.
0.3a R5 fixes a "denial of service" vulnerability where a player sending invalid data, generated by an external program, may cause the server to generate a debug assertion, which causes the server to close.
The R5 server also contains some new scripting features that missed the initial 0.3a server releases.
Camera information:
With the camera information you can tell where a player is looking. Please note the player's camera info is only updated while they are onfoot, spectating or driving a vehicle which has a special turret like the firetruck/swatvan etc.
pawn Code:
native GetPlayerWeaponState(playerid);
native GetPlayerCameraPos(playerid, &Float:x, &Float:y, &Float:z);
native GetPlayerCameraFrontVector(playerid, &Float:x, &Float:y, &Float:z);
native GetPlayerCameraUpVector(playerid, &Float:x, &Float:y, &Float:z);
Originally SA-MP was only designed for 100 maximum players. This meant defining arrays in pawn of MAX_PLAYERS size such as: PlayerInfo[MAX_PLAYERS] was generally okay. Now that MAX_PLAYERS is defined as 500, script writers are finding themselves creating arrays with 500 elements just to store a single flag. This can turn out to be very wasteful in terms of memory use. These variables also need to be manually reset when the player using them leaves the server.
Advantages of using PVars over arrays of MAX_PLAYERS:
1) PVars can be shared/accessed across gamemode scripts and filterscripts, making it easier to modularise your code.
2) PVars are automatically deleted when a player leaves the server, meaning you don't have to manually reset variables for the next player who joins.
3) No real need for complex enums/player info structures.
4) Saves memory by not allocating pawn array elements for playerids which will probably never be used.
5) You can easily enumerate and print/store the PVar list. This makes both debugging and player info storage easier.
6) Even if a PVar hasn't been created, it still will return a default value of 0.
7) PVars can hold very large strings using dynamically allocated memory.
pawn Code:
// Per-player variable system (PVars)
native SetPVarInt(playerid, varname[], int_value);
native GetPVarInt(playerid, varname[]);
native SetPVarString(playerid, varname[], string_value[]);
native GetPVarString(playerid, varname[], string_return[], len);
native SetPVarFloat(playerid, varname[], Float:float_value);
native Float:GetPVarFloat(playerid, varname[]);
native DeletePVar(playerid, varname[]);
// PVar enumeration
#define PLAYER_VARTYPE_NONE 0
#define PLAYER_VARTYPE_INT 1
#define PLAYER_VARTYPE_STRING 2
#define PLAYER_VARTYPE_FLOAT 3
native GetPVarsUpperIndex(playerid);
native GetPVarNameAtIndex(playerid, index, ret_varname[], ret_len);
native GetPVarType(playerid, varname[]);
If the player markers mode is PLAYER_MARKERS_MODE_GLOBAL, you can limit the radius which the player markers are drawn for each player. This may be important on some servers since there are limits to how many total markers you can have in GTA SA.
pawn Code:
native LimitPlayerMarkerRadius(Float:marker_radius);
Vehicle damage callback is called when a player updates the damage information on their vehicle.
New functions allow you to get and set the vehicle damage information.
pawn Code:
forward OnVehicleDamageStatusUpdate(vehicleid, playerid);
native GetVehicleDamageStatus(vehicleid, &panels, &doors, &lights, &tires);
native UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
Fix for pawn's fseek() function.