Skip to content

Improvements and fixes #102

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 36 commits into from
May 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
41930ed
Fix formatting in a_vehicles.lua
NexiusTailer May 7, 2025
336bdc0
Merge branch 'develop' of https://github.com/NexiusTailer/amx into de…
NexiusTailer May 8, 2025
c045853
Vastly improved special actions
NexiusTailer May 8, 2025
4d61316
Implemented PlayerPlaySound
NexiusTailer May 8, 2025
9a75dbb
Improve stability in different systems
NexiusTailer May 9, 2025
1693124
Added new functions in a_amx.inc
NexiusTailer May 9, 2025
d50a371
Tweaked SetPlayerPosFindZ, added frontend sounds
NexiusTailer May 10, 2025
ae364cf
Added waypoints and OnPlayerClickMap
NexiusTailer May 10, 2025
f505da7
A lot of minor fixes
NexiusTailer May 10, 2025
fedb73b
Improve resource structure
NexiusTailer May 11, 2025
93d406d
GetPlayerCameraFrontVector fixes
NexiusTailer May 11, 2025
e193087
New functions, fixes for nametags
NexiusTailer May 13, 2025
6600fed
Implement DisableInteriorEnterExits
NexiusTailer May 13, 2025
f26aa66
Hide zone names in class selection
NexiusTailer May 13, 2025
c7a786e
Zone names disabled by default
NexiusTailer May 13, 2025
e0ee001
Improvements for nametags and labels
NexiusTailer May 13, 2025
9e8c03f
Tweaks and fixes here and there
NexiusTailer May 13, 2025
acab218
Switch to clientside damage event
NexiusTailer May 14, 2025
0ed3161
getVehicleOccupants improvements
NexiusTailer May 14, 2025
d7c19ac
Better bots support across the systems
NexiusTailer May 14, 2025
f2b4d2b
OnVehicleDamageStatusUpdate improvements
NexiusTailer May 14, 2025
9333f77
Tweaks for event sources
NexiusTailer May 14, 2025
5d7ae88
Remove player blip for spectator
NexiusTailer May 14, 2025
5312d5d
Give a note about enter/exit markers
NexiusTailer May 14, 2025
168db27
Return values for death message functions
NexiusTailer May 14, 2025
a0ac7ae
Hide extra debug messages
NexiusTailer May 14, 2025
9ff1839
Invoke killmessages resource
NexiusTailer May 14, 2025
b9643d4
Reset player alpha was moved to spawn event
NexiusTailer May 14, 2025
522d968
Check votemanager if it's running
NexiusTailer May 14, 2025
a72d999
Set CJ white singlet at classes too
NexiusTailer May 15, 2025
1129b05
Improvements to GameModeExit
NexiusTailer May 15, 2025
cc2d086
Important fixes for freeze and spec
NexiusTailer May 15, 2025
0b53fdc
Reduce weapons update delay
NexiusTailer May 15, 2025
31f4b99
Important fix for player clock
NexiusTailer May 15, 2025
f871543
Final fix for class selection
NexiusTailer May 16, 2025
cc6c70c
Important updates in readme
NexiusTailer May 19, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ Compatibility is quite high:
- Almost all SA-MP **scripting functions** and **callbacks** are
implemented.
- **Database** functions (`db_*`) are implemented.
- SA-MP server **plugins** work unmodified.
- SA-MP server **plugins** work unmodified, if they don't use memory hacking.
Copy link
Collaborator

@colistro123 colistro123 May 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah this is very true, especially for plugins such as Pawn.CMD, which I had to modify for it to work on MTA by getting rid of the byte pattern lookup when compiling for such with a preprocessor macro 😅

Copy link
Contributor Author

@NexiusTailer NexiusTailer May 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tbh Pawn.CMD is a very lite example of a plugin for which there are many non-memhacking replacements (zcmd, dc_cmd etc). Meanwhile there are really crucial memhack plugins which cannot be replaced and they kinda based today just to make any advanced functionality, like Pawn.RakNet. Sometimes I even think that similar tool would be useful for MTA as well (at least a module which would give ability to intercept incoming packets like bylletsync, unoccupied or other sync types serverside, making possible to additionally handle every single packet in your script).

- SA-MP style **rcon** commands are available from the server console
and the ingame console.

Expand Down Expand Up @@ -83,6 +83,9 @@ features:
- You can **load plugins dynamically**, while the server is running.
Use the `loadplugin` console command for this.

- There is no hard-coded max filterscript count, the **number of
running filterscripts is unlimited**.

## Installation

*amx* consists of a binary server module (.dll/.so) and a Lua resource.
Expand Down Expand Up @@ -203,7 +206,7 @@ Information about this is lined out below.

The meta.xml files of gamemodes and filterscripts are slightly
different. Two resources, amx-test and amx-fs-test, are included
with the *amx* download as examples. Most times you can simply
in the *amx* repository as examples. Most times you can simply
copy-paste these to a new resource and adjust the names in it.

- To specify what **filterscripts to autostart** when *amx* loads,
Expand All @@ -224,10 +227,10 @@ Information about this is lined out below.
plugins to start, separated by spaces. For example:

```xml
<setting name="plugins" value="irc sampmysql"/>
<setting name="plugins" value="irc mysql"/>
```

This will load irc.dll and sampmysql.dll on Windows, or .so on
This will load irc.dll and mysql.dll on Windows, or .so on
Linux.

- jbeta's mapcycler resource (shipped with the MTA server) is used for
Expand Down Expand Up @@ -675,12 +678,18 @@ Even though *amx* offers a high level of compatibility, not everything
is perfect. Below is a list of limitations that may or may not be
addressed in later versions of *amx* and Multi Theft Auto.

- The following scripting functions will require certain resources
installed to have effect when called: DisableInteriorEnterExits
(disable enex markers implemented by "interiors" resource,
otherwise they are always disabled), SendDeathMessage (invoke
graphical death messages from "killmessages" resource).

- The following scripting functions are currently not implemented and
will have no effect when called: DisableInteriorEnterExits,
EnableStuntBonusForAll, EnableStuntBonusForPlayer, EnableTirePopping
(tire popping is always on), PlayerPlaySound, SendDeathMessage (use
the "killmessages" resource on your server instead for graphical
death messages), SetNameTagDrawDistance, TextDrawSetProportional.
will have no effect when called: DisableRemoteVehicleCollisions,
EnablePlayerCameraTarget, EnableStuntBonusForAll,
EnableStuntBonusForPlayer, EnableTirePopping (tire popping is
always on), EnableVehicleFriendlyFire, SetObjectNoCameraCol,
SetPlayerShopName, TextDrawSetProportional, TextDrawSetSelectable.

## Credits

Expand Down
14 changes: 13 additions & 1 deletion amx-test/pawno/include/a_amx.inc
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,22 @@ forward OnPlayerKeyUp(playerid, key);
// World
native Float:GetGameSpeed();
native SetGameSpeed(Float:speed);
native Float:GetRainLevel();
native SetRainLevel(Float:level);
native ResetRainLevel();
native GetSkyGradient(&topRed, &topGreen, &topBlue, &bottomRed, &bottomGreen, &bottomBlue);
native SetSkyGradient(topRed = 0, topGreen = 0, topBlue = 0, bottomRed = 0, bottomGreen = 0, bottomBlue = 0);
native ResetSkyGradient();
native Float:GetFogDistance();
native SetFogDistance(Float:distance);
native ResetFogDistance();
native GetCloudsEnabled();
native SetCloudsEnabled(bool:enable);
native SetWeatherBlended(weatherid);
native GetInteriorSoundsEnabled();
native SetInteriorSoundsEnabled(bool:enable);
native GetOcclusionsEnabled();
native SetOcclusionsEnabled(bool:enable);
native IsGarageOpen(garageid);
native SetGarageOpen(garageid, bool:open);
native IsGlitchEnabled(const name[]);
Expand All @@ -51,6 +60,7 @@ native Float:GetAircraftMaxHeight();
native SetAircraftMaxHeight(Float:height);
native Float:GetJetpackMaxHeight();
native SetJetpackMaxHeight(Float:height);
native GetWeaponSlot(weaponid);
native GetFPSLimit();
native SetFPSLimit(fps);
native GetRandomPlayer();
Expand Down Expand Up @@ -127,6 +137,8 @@ native IsPlayerHeadless(playerid);
native SetPlayerHeadless(playerid, bool:headless);
native GetPlayerBlurLevel(playerid);
native SetPlayerBlurLevel(playerid, level);
native IsPlayerMapForced(playerid);
native ForcePlayerMap(playerid, bool:forceOn);
native FadePlayerCamera(playerid, bool:fadeIn, Float:timeToFade = 1.0, red = 0, green = 0, blue = 0);
native SetPlayerControlState(playerid, const control[], bool:controlState);
native IsPlayerCursorShowing(playerid);
Expand Down Expand Up @@ -241,7 +253,7 @@ native SetBotAlpha(botid, alpha);

// Scoreboard
native AddScoreBoardColumn(const column[]);
native SetPlayerScoreBoardData(playerid, const column[], const data[]);
native SetPlayerScoreBoardData(playerid, const column[], const value[]);
native RemoveScoreBoardColumn(const column[]);

// Player Data
Expand Down
Loading