From 75b0b7f1f2181d2e05056cea818cfd9562af1875 Mon Sep 17 00:00:00 2001 From: Nexius Date: Mon, 5 Jan 2026 14:07:45 +0300 Subject: [PATCH 1/4] Tweaks for compilling omp server with pawn cell size 64 --- Server/Components/Pawn/Script/Script.cpp | 2 +- Server/Components/Pawn/format.cpp | 2 +- Server/Components/Pawn/utils.hpp | 40 ++++++++++++------------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Server/Components/Pawn/Script/Script.cpp b/Server/Components/Pawn/Script/Script.cpp index bd4076595..9dbbd66ec 100644 --- a/Server/Components/Pawn/Script/Script.cpp +++ b/Server/Components/Pawn/Script/Script.cpp @@ -475,7 +475,7 @@ __attribute__((noinline)) int AMXAPI amx_Allot_impl(AMX* amx, int cells, cell* a { PawnManager::Get()->core->logLn(LogLevel::Error, "Unable to find enough memory for your data."); PawnManager::Get()->core->logLn(LogLevel::Error, "Size: %i bytes, Available space: %i bytes, Need extra size: %i bytes", - int(amx->hea + cells * sizeof(cell)), amx->stk, int(amx->hea + cells * sizeof(cell) - amx->stk)); + int(amx->hea + cells * sizeof(cell)), int(amx->stk), int(amx->hea + cells * sizeof(cell) - amx->stk)); PawnManager::Get()->core->logLn(LogLevel::Error, "You can increase your available memory size by using `#pragma dynamic %i`.", int(amx->hea / sizeof(cell) + cells)); return AMX_ERR_MEMORY; diff --git a/Server/Components/Pawn/format.cpp b/Server/Components/Pawn/format.cpp index 23f878a13..31a454651 100644 --- a/Server/Components/Pawn/format.cpp +++ b/Server/Components/Pawn/format.cpp @@ -754,7 +754,7 @@ size_t atcprintf(D* buffer, size_t maxlen, const S* format, AMX* amx, const cell cell* ptr = reinterpret_cast(*cptr); if (!ptr) { - PawnManager::Get()->core->logLn(LogLevel::Error, "Invalid vector string handle provided (%d)", *cptr); + PawnManager::Get()->core->logLn(LogLevel::Error, "Invalid vector string handle provided (%d)", int(*cptr)); return 0; } diff --git a/Server/Components/Pawn/utils.hpp b/Server/Components/Pawn/utils.hpp index 2a4a7d821..4769a521d 100644 --- a/Server/Components/Pawn/utils.hpp +++ b/Server/Components/Pawn/utils.hpp @@ -34,24 +34,24 @@ extern "C" #include "Manager/Manager.hpp" -#define AMX_CHECK_PARAMETERS(name, params, n) \ - do \ - { \ - if (amx_NumParams(params) != (n)) \ - { \ - PawnManager::Get()->core->logLn(LogLevel::Error, "Incorrect parameters given to `%s`: %u != %u", name, amx_NumParams(params), n); \ - return 0; \ - } \ +#define AMX_CHECK_PARAMETERS(name, params, n) \ + do \ + { \ + if (amx_NumParams(params) != (n)) \ + { \ + PawnManager::Get()->core->logLn(LogLevel::Error, "Incorrect parameters given to `%s`: %u != %u", name, uint32_t(amx_NumParams(params)), n); \ + return 0; \ + } \ } while (0) -#define AMX_MIN_PARAMETERS(name, params, n) \ - do \ - { \ - if (amx_NumParams(params) < (n)) \ - { \ - PawnManager::Get()->core->logLn(LogLevel::Error, "Insufficient parameters given to `%s`: %u < %u", name, amx_NumParams(params), n); \ - return 0; \ - } \ +#define AMX_MIN_PARAMETERS(name, params, n) \ + do \ + { \ + if (amx_NumParams(params) < (n)) \ + { \ + PawnManager::Get()->core->logLn(LogLevel::Error, "Insufficient parameters given to `%s`: %u < %u", name, uint32_t(amx_NumParams(params)), n); \ + return 0; \ + } \ } while (0) namespace utils @@ -176,7 +176,7 @@ inline cell AMX_NATIVE_CALL pawn_settimer(AMX* amx, cell const* params) if (params[2] < 0) { - PawnManager::Get()->core->logLn(LogLevel::Error, "Invalid SetTimer interval (%i) when calling: %s", params[2], callback); + PawnManager::Get()->core->logLn(LogLevel::Error, "Invalid SetTimer interval (%i) when calling: %s", int(params[2]), callback); return false; } @@ -192,7 +192,7 @@ inline cell AMX_NATIVE_CALL pawn_settimerex(AMX* amx, cell const* params) if (params[2] < 0) { - PawnManager::Get()->core->logLn(LogLevel::Error, "Invalid SetTimerEx interval (%i) when calling: %s", params[2], callback); + PawnManager::Get()->core->logLn(LogLevel::Error, "Invalid SetTimerEx interval (%i) when calling: %s", int(params[2]), callback); return false; } @@ -413,7 +413,7 @@ inline cell AMX_NATIVE_CALL pawn_Script_CallOne(AMX* amx, cell const* params) amx = PawnManager::Get()->AMXFromID(params[1]); if (amx == nullptr) { - PawnManager::Get()->core->logLn(LogLevel::Error, "Could not find target script (%u) in `Script_CallOne`", params[1]); + PawnManager::Get()->core->logLn(LogLevel::Error, "Could not find target script (%u) in `Script_CallOne`", uint32_t(params[1])); return 0; } amx_StrParamChar(amx, params[2], name); @@ -490,7 +490,7 @@ inline cell AMX_NATIVE_CALL pawn_Script_CallOneByIndex(AMX* amx, cell const* par amx = PawnManager::Get()->AMXFromID(params[1]); if (amx == nullptr) { - PawnManager::Get()->core->logLn(LogLevel::Error, "Could not find target script (%u) in `Script_CallOneByIndex`", params[1]); + PawnManager::Get()->core->logLn(LogLevel::Error, "Could not find target script (%u) in `Script_CallOneByIndex`", uint32_t(params[1])); return 0; } int From c911a7d35c98c3e63449e0341b9c69d86436a6cf Mon Sep 17 00:00:00 2001 From: Nexius Date: Sun, 11 Jan 2026 21:09:24 +0300 Subject: [PATCH 2/4] Sync latest changes from Pawn repo --- lib/pawn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pawn b/lib/pawn index 56315596d..5904ab8ea 160000 --- a/lib/pawn +++ b/lib/pawn @@ -1 +1 @@ -Subproject commit 56315596dce01a1461995cb506fd3df72ab2c8ee +Subproject commit 5904ab8eac2a24706f303422cf1c307b319f76f0 From 26e692c0dadb5817fc8da4565b84f330ff9aca25 Mon Sep 17 00:00:00 2001 From: Nexius Date: Wed, 18 Feb 2026 03:54:30 +0300 Subject: [PATCH 3/4] Tweaks for presets of server gametexts just grabbed them from gametext+ library to actualize them --- Server/Components/Fixes/fixes.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Server/Components/Fixes/fixes.cpp b/Server/Components/Fixes/fixes.cpp index 33dd13c43..3995ac714 100644 --- a/Server/Components/Fixes/fixes.cpp +++ b/Server/Components/Fixes/fixes.cpp @@ -496,7 +496,7 @@ class PlayerFixesData final : public IPlayerFixesData // Gametext style 13 (stunt). td->setLetterSize({ 0.58, 2.42 }); td->setAlignment(TextDrawAlignment_Center); - td->setColour(Colour(0xDD, 0xDD, 0xDB, 0xFF)); + td->setColour(Colour(0xE1, 0xE1, 0xE1, 0xFF)); td->setShadow(2); td->setOutline(0); td->setBackgroundColour(Colour(0x00, 0x00, 0x00, 0xFF)); @@ -510,15 +510,13 @@ class PlayerFixesData final : public IPlayerFixesData // Gametext style 14 (clock). td->setLetterSize({ 0.55, 2.2 }); td->setAlignment(TextDrawAlignment_Right); - // There's some debate over this colour. It seems some versions - // somehow end up with `0xE1E1E1FF` instead. td->setColour(Colour(0xE1, 0xE1, 0xE1, 0xFF)); td->setShadow(0); td->setOutline(2); td->setBackgroundColour(Colour(0x00, 0x00, 0x00, 0xFF)); td->setStyle(TextDrawStyle_3); td->setProportional(false); - td->useBox(false); + td->useBox(true); td->setBoxColour(Colour(0x00, 0x00, 0x00, 0x00)); td->setTextSize({ 400.0, 20.0 }); break; @@ -529,11 +527,11 @@ class PlayerFixesData final : public IPlayerFixesData td->setColour(Colour(0xFF, 0xFF, 0xFF, 0x96)); td->setShadow(0); td->setOutline(0); - td->setBackgroundColour(Colour(0x00, 0x00, 0x00, 0xFF)); + td->setBackgroundColour(Colour(0x00, 0x00, 0x00, 0x00)); td->setStyle(TextDrawStyle_1); td->setProportional(true); td->useBox(true); - td->setBoxColour(Colour(0x00, 0x00, 0x00, 0x80)); + td->setBoxColour(Colour(0x00, 0x00, 0x00, 0xDD)); td->setTextSize({ 230.5, 200.0 }); break; } From e84ffb6502aa526bdc37645db3d1366c9740cbc7 Mon Sep 17 00:00:00 2001 From: Nexius Date: Sat, 28 Feb 2026 12:17:51 +0300 Subject: [PATCH 4/4] One more ancient memhack plugin to be added into 'broken plugins' list --- Server/Components/Pawn/PluginManager/PluginManager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Server/Components/Pawn/PluginManager/PluginManager.cpp b/Server/Components/Pawn/PluginManager/PluginManager.cpp index 4226b20b2..c850fa1a0 100644 --- a/Server/Components/Pawn/PluginManager/PluginManager.cpp +++ b/Server/Components/Pawn/PluginManager/PluginManager.cpp @@ -16,12 +16,13 @@ struct BrokenPluginMessageData StringView message; }; -static const StaticArray BrokenPlugins = { +static const StaticArray BrokenPlugins = { { { "YSF", "It requires memory hacking to run and is therefore broken on open.mp, we already added many built-in features from YSF to open.mp and the rest are coming" }, { "YSF_DL", "It requires memory hacking to run and is therefore broken on open.mp, we already added many built-in features from YSF to open.mp and the rest are coming" }, { "YSF_static", "It requires memory hacking to run and is therefore broken on open.mp, we already added many built-in features from YSF to open.mp and the rest are coming" }, { "YSF_DL_static", "It requires memory hacking to run and is therefore broken on open.mp, we already added many built-in features from YSF to open.mp and the rest are coming" }, + { "fixes2", "It requires memory hacking to run and is therefore broken on open.mp. There should be a replacement component supported by open.mp" }, { "FCNPC", "It requires memory hacking to run and is therefore broken on open.mp, we already have NPC component with many built-in features in open.mp" }, { "FCNPC-DL", "It requires memory hacking to run and is therefore broken on open.mp, we already have NPC component with many built-in features in open.mp" }, { "SKY", "It requires memory hacking to run and is therefore broken on open.mp. There should be a replacement component supported by open.mp" },