Нативный ASI-плагин для GTA San Andreas 1.0 US (x86), включая SA:MP.
Полная документация и инструкции перенесены в wiki: OrcOutFit Wiki.
- Отображение оружия на теле педа с настройкой позиции, поворота и масштаба.
- Коррекция позы оружия в руках (Held) через пресет
OrcOutFit\Weapons\<dff>.ini(см. wiki «Оружие»); точка спавна FX выстрела (muzzlePosn: дым, гильзы и др.) считается в той же Held-трансформации, что и видимый меш (предпочтительно через LTM кадра оружия в клумпе и базовую позу движка для кадра; иначе — через кость R_Hand +m_vecFireOffsetизweapon.dat/CWeaponInfo); направление пули (origin) — по ваниле. Вспышка у ствола (gunflashв DFF): при замене модели в руках узел синхронизируется с клумпом видимого меша (клон замены), а не с параллельным стоком в слоте, если слот временно указывает на сток; на атомики под dummygunflashне крутится тот жеOrcTryApplyHeldPoseOneFrame, что на меш (локальные LTMs другие — ломает DoGunFlash); вместо этого кадрgunflashсдвигается на мировую дельту точкиm_vecFireOffset(Held − ванильная кость R_Hand), как уmuzzlePosn. На теле меш вспышки на кобуре не рисуется постоянно (см. wiki). - Замена моделей и текстур оружия (включая сценарии для SA:MP); папка оружия берётся по DFF-имени из
LoadWeaponObject/ IDE (desert_eagle,chromegun,mp5lngи т.п.), random-пулы DFF/TXD могут выбираться случайно, последовательно по кругу или случайно без повтора среди живых ped. Ручной рескан замены перечитываетGuns/GunsNickи заново выбирает random-варианты для уже известных ped. При PRO и twin-пистолетах (colt45и аналоги) замена в руках работает для обеих рук — см. wiki «Оружие» → «Замена оружия». - Опционально: кастомные звуки для заменённого оружия — .wav / .mp3 / .flac / .ogg (моно после декода; стерео сводится в mono), настройка 3D-затухания и EFX reverb в
[WeaponAudio]и опционально в<stem>.audioрядом с DFF (вкладка Оружие → Звуки,[Features] CustomWeaponSounds=1— см. wiki «Оружие»); локальный ped звучит как раньше, остальные ped — как 3D-источники с отсечением поMaxDist; воспроизведение через OpenAL Soft внутриOrcOutFit.asi. - Кастомные и стандартные объекты с привязкой к скинам.
- Кастомные, стандартные и random-скины; random-пулы поддерживают случайный, последовательный и случайный без повтора режим выбора, а
SkinRandomIncludeVanilla=1добавляет исходный ped как отдельный вариант. Кастомный DFF и выбранная/привязанная стандартная ped-модель по умолчанию применяются как native replacement: штатныйCPed::SetModelIndexпри создании/стриминге ped перехватывается до создания clump, а gameplay model ID остаётся базовым. Overlay оставлен как legacy-режим. Для non-local/random ped поздний frame update не вызывает повторныйSetModelIndex, поэтому пропущенная первичная замена ждёт естественного респавна/смены модели. Random-пулы стандартных ped привязаны к DFF-имени изLoadPedObject(TRUTH,BMYDRUG,lapd1и т.п.). - Texture remap для стандартных ped-текстур.
- Настройка через ImGui-меню и INI-файлы.
Подробнее по вкладкам и подвкладкам:
| Параметр | Значение |
|---|---|
| Игра | GTA San Andreas 1.0 US |
| Архитектура | Win32 (x86) |
| SA:MP | Поддерживаемые samp.dll: R1, R2, R3, R3-1, R4, R4-2, R5-1, DL-R1 |
| Ограничение | Для клиентов вне списка SA:MP-часть может работать частично или в fallback-режиме |
| Ограничение | Не заменяйте ASI-файл во время работы игры |
В релизе две сборки из одного исходника:
OrcOutFit.asi(Full) — полный функционал: оружие на теле и в руках, кастомные звуки, скины, объекты, texture remap, всё меню.OrcOutFitLite.asi(Lite) — рендер оружия на теле и кастомных/стандартных объектов + меню (вкладки Главная, Оружие → Рендер оружия, Объекты, Настройки — язык, масштаб/шрифт, клавиша/команда активации). Без звуков, скинов, texture remap и оружия в руках; меньше хуков и размер. Ставьте либо Full, либо Lite, не оба сразу.
- Получите
OrcOutFit.asi(Full) илиOrcOutFitLite.asi(Lite) — готовый релиз или локальная сборка. - Поместите выбранный
.asiв каталог игры (или в modloader). - Запустите игру: рядом с ASI будет использован/создан
OrcOutFit.ini. - При необходимости задайте уровень лога в
[Features] DebugLogLevel:0— вOrcOutFit.logничего не пишется (включая ошибки),1— только ошибки,2— полный trace. При каждой новой игровой сессии лог рядом с INI пересоздаётся; при уровне0он остаётся пустым.
При сборке из исходников: submodule source/external/openal-soft (тег 1.24.3). Первая инициализация: git submodule update --init --recursive, затем .github/scripts/build-openal-soft.ps1 или обычный MSBuild OrcOutFit.sln Release|x86 (PreBuild соберёт OpenAL сам). Нужен CMake (компонент Visual Studio или отдельная установка). Статическая линковка — LGPL, OpenAL32.dll в игру класть не нужно; артефакт: build/Release/OrcOutFit.asi. Локальная Release-сборка также создаёт PDB рядом с ASI; GitHub Actions собирает без PDB. Подробности — в правилах сборки репозитория (секция OpenAL Soft).
Сборка Lite: msbuild OrcOutFit.sln "/p:Configuration=Release;Platform=x86;OrcEdition=Lite" → build/Release/OrcOutFitLite.asi (без OpenAL; OpenAL submodule для Lite не нужен).