DZONE
29.10.2025, 22:24
GAdmin - плагин для администрации Gambit RP
Исходный код плагина для администрации гамбита, содержащий на момент написания темы 30972 строки (
find . -name "*.cpp" -o -name "*.h" -o -name "*.cmake" | xargs wc -l
). Прошлая тема в луашном разделе удалена мною по причинам неактуальности и переписывания кода с нуля на C++. Исходный код луашной (Clue) версии модификации - тут (https://github.com/Vadim-Kamalov/GAdmin/tree/cae4ed2c54187048489e41fa5c8530b0dc7a3915).
Репозиторий: https://github.com/Vadim-Kamalov/GAdmin
Код написан на последнем C++26 стандарте и с поддержкой только GCC компиляторов версий
>=15.1.0
(скорее всего можно скомпилировать и с Clang; не проверял. MSVC отпадает из-за отсутствия поддержки ключевых нововведений стандарта, например того же
#embed
). В сборке используется CMake v4.0.0 и доступны настройки для уменьшения размера бинарников: используются UPX и msgpack-cli (для уменьшения размера JSON файлов, добавленных в код;
cargo install msgpack-cli
). Поддерживаются все версии сампа, кроме R2 и R4. Также используются библиотеки, перечисленные ниже:
форкнутый kthook (https://github.com/kin4stat/kthook/pull/16) с фиксом варнингов от
std::is_trivial
(P3247: Deprecate the notion of trivial types (https://www.blast.hk/redirect/aHR0cHM6Ly93ZzIxLmxpbmsvcDMyNDc));
Compile-Time-Regular-Expressions (CTRE) (https://github.com/hanickadot/compile-time-regular-expressions) в качестве замены медленного
std::regex
;
ImGui; (https://github.com/ocornut/imgui)
ImGui Markdown; (https://github.com/enkisoftware/imgui_markdown)
nlohmann/json; (https://github.com/nlohmann/json)
После компиляции генерируются два файла -
gadmin.dll
и
gadmin-loader.asi
. Второй файл используется для реализации автообновления, которое ищет
gadmin.dll
по ресурсному файлу и сравнивает его версию с той, что получена от Github API: если различается - предлагает установить обновление, в противном случае - просто загружает в игру. Отключить автообновление можно переименовав
gadmin.dll
в
gadmin.asi
и удаля лоадер.
Лицензия
Проект залицензирован под GNU General Public Licence v3. Авторское право закреплено за теми, кто внес или вносит прямой вклад в разработку (The Contributors (https://github.com/Vadim-Kamalov/GAdmin/blob/main/CONTRIBUTORS)).
https://forum.antichat.xyz/attachments/28643269/
Исходный код плагина для администрации гамбита, содержащий на момент написания темы 30972 строки (
find . -name "*.cpp" -o -name "*.h" -o -name "*.cmake" | xargs wc -l
). Прошлая тема в луашном разделе удалена мною по причинам неактуальности и переписывания кода с нуля на C++. Исходный код луашной (Clue) версии модификации - тут (https://github.com/Vadim-Kamalov/GAdmin/tree/cae4ed2c54187048489e41fa5c8530b0dc7a3915).
Репозиторий: https://github.com/Vadim-Kamalov/GAdmin
Код написан на последнем C++26 стандарте и с поддержкой только GCC компиляторов версий
>=15.1.0
(скорее всего можно скомпилировать и с Clang; не проверял. MSVC отпадает из-за отсутствия поддержки ключевых нововведений стандарта, например того же
#embed
). В сборке используется CMake v4.0.0 и доступны настройки для уменьшения размера бинарников: используются UPX и msgpack-cli (для уменьшения размера JSON файлов, добавленных в код;
cargo install msgpack-cli
). Поддерживаются все версии сампа, кроме R2 и R4. Также используются библиотеки, перечисленные ниже:
форкнутый kthook (https://github.com/kin4stat/kthook/pull/16) с фиксом варнингов от
std::is_trivial
(P3247: Deprecate the notion of trivial types (https://www.blast.hk/redirect/aHR0cHM6Ly93ZzIxLmxpbmsvcDMyNDc));
Compile-Time-Regular-Expressions (CTRE) (https://github.com/hanickadot/compile-time-regular-expressions) в качестве замены медленного
std::regex
;
ImGui; (https://github.com/ocornut/imgui)
ImGui Markdown; (https://github.com/enkisoftware/imgui_markdown)
nlohmann/json; (https://github.com/nlohmann/json)
После компиляции генерируются два файла -
gadmin.dll
и
gadmin-loader.asi
. Второй файл используется для реализации автообновления, которое ищет
gadmin.dll
по ресурсному файлу и сравнивает его версию с той, что получена от Github API: если различается - предлагает установить обновление, в противном случае - просто загружает в игру. Отключить автообновление можно переименовав
gadmin.dll
в
gadmin.asi
и удаля лоадер.
Лицензия
Проект залицензирован под GNU General Public Licence v3. Авторское право закреплено за теми, кто внес или вносит прямой вклад в разработку (The Contributors (https://github.com/Vadim-Kamalov/GAdmin/blob/main/CONTRIBUTORS)).
https://forum.antichat.xyz/attachments/28643269/