Новости Tainted Grail: The Fall of Avalon — Польская «Skyrim» теперь официально
  • 584
  • 9
23 мая 2025 после двух лет успешного раннего доступа в Steam польская студия Questline наконец представила свою фэнтези-RPG в полной версии. Tainted Grail: The Fall of Avalon доступна на ПК...
Новости CD Projekt RED представила юбилейный трейлер к 10-летию The Witcher 3: Wild Hunt
  • 808
  • 0
Польская студия CD Projekt Red порадовала поклонников франшизы «Ведьмак», выпустив особый видеообзор в честь десятилетия культовой RPG «Ведьмак 3: Дикая Охота». Что показали в трейлере...
Важно 9 мая - День Победы - 80-летия Великой Победы!
  • 1.692
  • 5
Поздравляю всех, кому искренне небезразличен этот день! С днём Великой Победы!
Новости Анонс The Elder Scrolls VI уже этим летом?
  • 1.208
  • 2
По данным инсайдера eXtas1s, Bethesda может впервые показать The Elder Scrolls VI летом 2025 года Обсуждается возможность анонса игры на одной из крупных презентаций Xbox - в июне или августе...
Union API

Union Framework Union API beta

Нет прав доступа на загрузку
Инструменты для моддинга Gothic с доступом к памяти
Автор(ы)
@Gratt
UnionFrameworkLogo.png


GitLab: Union Framework / Union API
Wiki: Home · Union Framework / Union API
Текущий прогресс: около 90%

Union Framework — это мощный набор инструментов с открытым исходным кодом, предназначенный для глубокой модификации кода игр серии Gothic, основанных на движке ZenGin. Он позволяет разработчикам создавать собственные плагины, напрямую взаимодействующие с памятью игры, изменять её поведение и встраивать новые функции без необходимости предварительной установки каких-либо сторонних расширений, включая классический Union.

Основные возможности Union Framework:
  • Перехват процедур и функций с гибкой настройкой
  • Прямое изменение памяти (патчинг инструкций)
  • Отслеживание событий загрузки библиотек
  • Общая память между плагинами, включая общие синглтоны
  • Работа с VDFS (виртуальной файловой системой Gothic)
  • Инструменты для работы со строками и их локализацией
Проект поддерживает создание полностью независимых плагинов, которые могут безопасно взаимодействовать друг с другом в критических участках кода за счёт синхронизации через общую память. Это позволяет избежать конфликтов при одновременной модификации одних и тех же функций или структур.

Методы перехвата (Hooking):
Union Framework реализует три подхода к перехвату функций, в зависимости от контекста и задач:
  1. HOOK + AS (MS Detours):
    • Изменяет пролог целевой функции, переадресуя её вызов на вашу. Это мощный способ вмешательства, охватывающий весь процесс.
  2. HOOK + PATCH:
    • Переопределяет все инструкции вызова конкретной функции, перенаправляя их на новую реализацию. Работает в пределах одного модуля, но совместим с другими расширителями.
  3. Частичный хук (Partial Hook):
    • Позволяет встроить C++-функцию прямо в середину целевой функции. Полезно, когда необходимо вмешаться в конкретный участок логики, не перехватывая всё поведение целиком.
Также доступны условные хуки: HOOK + AS_IF и HOOK + PATCH_IF — с возможностью отложенного применения при помощи метода Commit.

Общая память и синхронизация:
Для обеспечения стабильности и совместимости между плагинами Union Framework предоставляет механизм общей памяти, позволяющий:
  • Использовать единые методы аллокации
  • Создавать глобальные синглтоны, видимые сразу всем плагинам
  • Согласовывать доступ к общим данным и точкам входа
Актуально для тех сценариев, где один и тот же участок кода может быть изменён несколькими расширениями. Union Framework берёт на себя управление очередностью и совместимостью хуков.

Union API — это центральная часть Union Framework, предоставляющая полноценный интерфейс для работы с объектами игры в памяти. Он позволяет нативным плагинам:
  • Получать доступ к структурам ZenGin (в том числе актёрам, объектам мира, GUI и т. д.)
  • Использовать шаблон декоратор для расширения функциональности игры
  • Работать с памятью напрямую, без ограничений
В связке с ним используется отдельный Gothic API, содержащий заголовочные файлы ZenGin с привязкой к адресам памяти под конкретные версии игр Gothic.

Сборка и использование:
Union API реализован как проект на Visual Studio 2022 и поддерживает сборку в разных форматах:
  • DLL — динамически подключаемая библиотека (рекомендуется)
  • LIB — статическая библиотека
  • EXE — консольное приложение для отладки вне игры
Создание плагина требует подключения union-api к своему проекту C++, добавления соответствующих include-путей и определения макросов: _UNION_API_DLL или _UNION_API_LIB, в зависимости от способа подключения.

Полная документация, примеры и инструкции находятся в официальной Wiki Union API.

Статус проекта:
Union API находится в активной разработке. Хотя он еще не завершён, уже доступен для тестирования. Следует учитывать, что API может меняться и в нём могут быть ошибки.
Автор
GeorG
Загрузок
5
Тип файла
zip
Размер файла
69,2 КБ
Первый релиз
Новые обновления
Оценка
0,00 звезда(ы) 0 оценки(ок)

Другие ресурсы от GeorG

Сверху Снизу