samp.directory
← Скрипты и библиотеки

hilsetapp/sa-mod-manager

Менеджер модов GTA San Andreas: включай и выключай моды одним переключателем, конфликты и замену стандартных файлов видно сразу, профили сборок. Windows.

Инструмент★ 1обновлён 5 дней назадMITGo
Открыть на GitHub

README.md

Русский | English | Español | Português

Менеджер модов GTA San Andreas

Программа для Windows, которая держит сборку модов в порядке: включает и выключает моды одним переключателем, заранее показывает, какие моды делят одни и те же файлы, и хранит профили сборок.

Любимая проблема всех, кто ставит моды руками: поставил пять модов, игра не запускается, а виноват один файл infernus.dff, который положили два мода сразу. Менеджер находит такие совпадения до запуска игры.

Скачать: sa-mod-manager-windows.zip

Что умеет

  • Список модов с переключателями. Мод лежит либо в modloader (включён), либо в modmanager/off (выключен). Переключение это перенос папки: ничего не удаляется, всё обратимо.
  • Поиск конфликтов. Если два мода кладут файл с одинаковым именем, менеджер покажет, кто именно спорит и за что. Отдельно видно конфликты, которые мешают прямо сейчас (два включённых мода), и спокойные заметки.
  • Пометка замены. Файлы, которые уже есть в models/gta3.img, отмечаются как «заменяет стандартный файл»: сразу понятно, правит мод оригинал или добавляет новое.
  • Предупреждения об архивах. Подмена всего gta3.img, незнакомый d3d9.dll, .exe внутри архива: про такое лучше узнать заранее.
  • Профили сборок. Сохранил набор включённых модов («Для САМП», «Одиночка») и переключаешься между ними одним нажатием.
  • Журнал. Что сделал менеджер, пишется в окне и в файл modmanager/journal.log.
  • Мод из архива. Выбрал zip: он распакуется в папку выключенных модов, включишь когда захочешь.
  • Работает с ручными установками. Моды, положенные в modloader вручную, менеджер подхватит сам: их не надо переставлять.

Как запускать (гайд для новичков)

  1. Скачай sa-mod-manager-windows.zip по ссылке выше и распакуй в любую папку. Только не в Program Files, там Windows любит ограничивать доступ.
  2. Запусти sa-mods.exe. Если Windows покажет синее окно «Защита Windows», нажми «Подробнее» → «Выполнить в любом случае». Программа ничего не качает и не лезет в интернет, но она новая, и СмартСкрин её пока не знает.
  3. Нажми «Выбрать папку» и укажи папку, где лежит gta_sa.exe (обычно C:\Games\GTA San Andreas).
  4. Нажми «Добавить мод из архива» и выбери скачанный zip с модом. Мод появится в списке выключенным.
  5. Включи его переключателем и запускай игру.

Если моды уже стоят в modloader, они появятся в списке сами, сразу после выбора папки игры.

Важно: чтобы игра увидела папку modloader, в игре должен стоять ModLoader (modloader.asi). Если его нет, менеджер скажет об этом плашкой сверху: включение модов без ModLoader ничего не даст.

Командная строка

В архиве есть sa-mods-cli.exe: то же самое, но без окна. Пригодится для скриптов и проверок.

sa-mods-cli.exe -game "C:\Games\GTA San Andreas" -check
sa-mods-cli.exe -game "C:\Games\GTA San Andreas" -list
sa-mods-cli.exe -game "C:\Games\GTA San Andreas" -conflicts
sa-mods-cli.exe -game "C:\Games\GTA San Andreas" -import C:\Загрузки\silentpatch.zip
sa-mods-cli.exe -game "C:\Games\GTA San Andreas" -disable tunning
sa-mods-cli.exe -game "C:\Games\GTA San Andreas" -enable tunning

Флаги: -check что нашлось в папке игры, -list список модов, -conflicts конфликты, -import добавить zip, -enable и -disable включить или выключить мод по имени папки, -version версия.

Как это работает внутри

  • В GTA SA файл узнаётся по имени. Если два мода дают infernus.dff, победит тот, чья папка читается позже, и один мод молча перестанет работать. Поэтому конфликтом менеджер называет одинаковое имя файла у двух разных модов, а для файлов данных (.cfg, .dat, .ipl) - одинаковый путь.
  • Скрипты CLEO (.cs), плагины ASI (.asi) и текст (.fxt) сравниваются по имени файла: они тоже находят друг друга по имени.
  • Включение и выключение это перемещение папки между modloader и modmanager/off. Менеджер не патчит игру, не трогает архивы .img и не правит ваши файлы.
  • Имена файлов из models/gta3.img читаются в режиме «только чтение», чтобы понимать, какие файлы игры мод заменяет.

Чего менеджер не делает

Честно, чтобы не ждали лишнего:

  • не запускает .exe-инсталляторы модов и не правит чужие скрипты;
  • не сравнивает содержимое моделей, только имена файлов (как и сама игра);
  • не качает моды из интернета, каталога ссылок внутри нет;
  • не работает на телефоне и в браузере, это программа для Windows.

Сборка из исходников

Нужен только Go 1.26 или новее, компилятор C для Windows не требуется:

git clone https://github.com/hilsetapp/sa-mod-manager.git
cd sa-mod-manager
go test ./...
go build -ldflags "-H=windowsgui -s -w" -o sa-mods.exe ./cmd/sa-mods
go build -s -w -o sa-mods-cli.exe ./cmd/sa-mods-cli

Готовые сборки для Windows делает GitHub Actions: build.yml на каждый пуш, release.yml на тег v*.

Из чего состоит

cmd/sa-mods         окно (точка входа)
cmd/sa-mods-cli     командная строка
internal/gui        интерфейс: список модов, профили, журнал
internal/game       папка игры, чтение имён из gta3.img, стандартные имена
internal/library    библиотека модов: импорт zip, включение, выключение, удаление
internal/conflicts  поиск модов, которые делят один и тот же файл
internal/profiles   профили сборок
internal/cli        командная строка
lists               подсказки: приметы проблемных модов, любимые моды сообщества
scripts             сборка картинки для репозитория, самопроверка

Файлы менеджера лежат в папке игры:

modloader/           включённые моды (тут их видит игра)
modmanager/off/      выключенные моды
modmanager/meta/     карточки модов: откуда, когда, сколько файлов
modmanager/profiles/ профили сборок
modmanager/journal.log

Планы

  • ярлыки и папки-категории в списке модов;
  • проверка обновлений модов по ссылке на архив;
  • отдельная вкладка для CLEO-скриптов и ASI-плагинов.

Лицензия

MIT. Шрифт Inter распространяется по SIL Open Font License 1.1, подробности в THIRD_PARTY_NOTICES.md.

Если менеджер спас твою сборку, поставь звезду: так его увидят другие моддеры.

cleogaminggiogolanggta-san-andreasgtasamod-managermodloadermodsrussiansampwindows

Страница собрана из того, что GitHub публикует о репозитории. samp.directory не хранит этот код. Сообщить о проблеме с этой записью