Читать на других языках: English
Локальный кооперативный мод для игры PRAGMATA (Steam-версия 1.2.2.0+).
Мод позволяет играть вдвоем на одном ПК:
- Игрок 1 (Hugh): полностью управляет персонажем, перемещением, боем и выбором целей для взлома.
- Игрок 2 (Diana): использует второй геймпад для решения мини-игр и головоломок взлома (
Y/X/A/Bили▲/■/X/●).
Игровой движок RE Engine по умолчанию объединяет ввод со всех подключенных геймпадов в одно устройство. Чтобы разделить управление, проект состоит из трех компонентов:
-
Нативный фильтр ввода (
native/PragmataInputFilter.cpp):- Выполняет перехват функций
XINPUT1_4.dllв процессеPRAGMATA.exe. - Изолирует контроллеры: игра «видит» только геймпад Игрока 1, а сигналы второго геймпада перехватываются модом.
- Ввод с клавиатуры и мыши никогда не фильтруется и всегда доступен Игроку 1.
- Выполняет перехват функций
-
C#-плагин для REFramework (
managed/PragmataSplitControl/):- Читает ввод со второго геймпада через
XINPUT9_1_0.dll. - Передает команды взлома Игрока 2 непосредственно в логику игры во время активной мини-игры.
- Если второй геймпад отключается, управление взломом автоматически возвращается Игроку 1.
- Читает ввод со второго геймпада через
-
Конфигуратор (
tools/PragmataSplitControlConfigurator.cs):- WinForms-приложение для удобной привязки контроллеров к игрокам и проверки ввода в реальном времени.
- DualSense / DUALSHOCK 4 (нативно) для P1 + Xbox/XInput для P2 (рекомендуется для сохранения адаптивных триггеров DualSense).
- Два XInput / Xbox геймпада.
- Клавиатура + Мышь для P1 + XInput геймпад для P2.
├── managed/ # C# плагин для REFramework
│ └── PragmataSplitControl/
│ ├── PragmataSplitControl.cs
│ ├── PragmataSplitControl.csproj
│ └── AssemblyInfo.cs
├── native/ # Нативный C++ фильтр ввода (DLL)
│ └── PragmataInputFilter.cpp
├── tools/ # Исходный код конфигуратора WinForms
│ └── PragmataSplitControlConfigurator.cs
├── release/ # Шаблоны конфигурации и ресурсы
├── README.md # Документация на английском
└── README_RU.md # Документация на русском
- C#-плагин:
dotnet build managed/PragmataSplitControl/PragmataSplitControl.csproj -c Release - Конфигуратор: Сборка
tools/PragmataSplitControlConfigurator.csвPragmataSplitControl_Config.exe - C++ фильтр: Сборка
native/PragmataInputFilter.cppвPragmataSplitControl_InputFilter.dll(x64 DLL)
- Установите REFramework
- Поместите скомпилированные файлы мода в папку с
PRAGMATA.exe. - Запустите
PragmataSplitControl_Config.exe, назначьте геймпады и сохраните настройки. - Запустите игру.
