Nucleus coop не видит клавиатуру
Обновлено: 21.11.2024
Я ищу способ обработки нескольких входных данных (см. заголовок, только для Windows).
В Xorg это будет называться многоместный, верно?
Я постараюсь объяснить лучше, и, пожалуйста, дайте мне знать, действительно ли то, о чем я прошу, достигается с помощью возможности многопользовательского.
Или мне следует поискать установку Xephyr.
Пожалуйста, поправьте меня, если я ошибаюсь.
Допустим, я запускаю одновременно два (или более) отдельных экземпляра одной и той же программы.
> будут ли какие-либо различия между запуском их из исполняемого файла или нет?
> например: /usr/bin/sameprogram_A && /usr/bin/sameprogram_A VS /usr/bin/sameprogram_A && /usr/bin/sameprogram_B р>
Джойстик в первом экземпляре настроен как Player1 и отображается как /dev/input/js0
Джойстик во втором экземпляре настроен как Player1 и отображается как /dev/input/js1
Если щелкнуть окно первого экземпляра, оно получит фокус, и я смогу играть, используя /dev/input/js0
Но при щелчке по окну второго экземпляра он получает фокус, и я могу играть, используя /dev/input/js1, но теряю первый экземпляр
Как я могу добиться одновременного фокуса на обоих экземплярах окна?
Могу ли я использовать два разных входа (js0 и js1), каждый из которых привязан к своему экземпляру?
Последний раз редактировалось d.ALT (2021-11-02 12:27:40)
Часто игровые программы позволяют указать, какой ввод использовать. В этом случае вам не понадобится multiseat / xephyr — просто запустите два экземпляра рассматриваемой игры, каждый с соответствующими флагами или конфигурациями, чтобы указать желаемый ввод.
Если у "someprogram" нет таких опций, то multiseat/xephyr, вероятно, будет самым простым подходом. Но что такое «некоторая программа»? Гипотетические потоки редко бывают продуктивными, поскольку часто обнаруживают, что представляют собой проблемы X-Y. У вас есть несколько мониторов и клавиатур, которые вы собираетесь использовать? Если нет, то вам не нужен многопользовательский режим.
Последний раз редактировалось Trilby (2021-11-02 13:24:51)
«UNIX проста и понятна», — Деннис Ритчи, «GNU — это не UNIX», — Ричард Столлман
Привет, Трилби! Спасибо, что нашли время ответить мне.
У вас есть несколько мониторов и клавиатур, которые вы собираетесь использовать? Если нет, то вам не нужен многопользовательский режим.
Нет: только один монитор и только одна клавиатура. Но у меня два джойстика.
Итак, программа представляет собой эмулятор Supermodel, который был скомпилирован вручную из svn.
Затем я скопировал сгенерированный связанный бин (./supermodel) в оба /Supermodel-master /supermodel_A и /Supermodel-slave/supermodel_B.
Можно ли указать, какие входные данные использовать в файле конфигурации (Supermodel.ini) и это то, что я сделал, но есть предостережение, пожалуйста, продолжайте читать.
Для того, чтобы играть в (сетевую) связанную игру, должны быть одновременно запущены два выделенных экземпляра эмулятора одной и той же игры:
1-й экземпляр ($ ./supermodel_A) запущен, и внутренняя конфигурация игры настроена как "LINK TYPE = MASTER(CAR1)"
Запускается 2-й экземпляр ($ ./supermodel_B), и на этот раз внутренняя конфигурация игры настроена как "LINK TYPE = SLAVE (CAR2)"
И вот предостережение: каждый экземпляр эмулятора запускается из своего собственного выделенного каталога со своей собственной выделенной конфигурацией (давайте назовем их Supermodel_A.ini и Supermodel_B.ini). .
Вот как это работает, по-другому нельзя.
Давайте немного приведем в порядок:
В заключение, фокусировка на окне одного экземпляра (или на другом) означает одновременное управление только одним входом.
Эта страница служит руководством к тому, как работает Proto Input и как использовать его для настройки скрипта Nucleus.
Что такое прото-ввод?
Proto Input — это набор библиотек, используемых Nucleus Co-Op для внедрения в игры хуков для ввода (в основном нескольких клавиатур или мышей), а также имитации фокуса окна и т. д. Proto Input — это значительное улучшение по сравнению с оригинальными хуками внутри. Nucleus и универсальный разделенный экран. Настоятельно рекомендуется обновить все скрипты, использующие старые хуки мыши/клавиатуры, до Proto Input, так как ввод будет работать намного надежнее.
Как это работает
Основной код для Proto Input находится внутри ProtoInputHooks32/64.dll. Это нужно внедрить в игровой процесс. Основной API внутри ProtoInputLoader32/64.dll содержит два метода внедрения. Во-первых, это инжект запуска EasyHook, который создает игровой процесс и сразу инжектится в него. Это необходимо для игр, которые при запуске вызывают функцию, которую необходимо перехватить (например, создать мьютекс). Другой метод — внедрение во время выполнения, которое встраивается в существующий процесс. Затем API (в ProtoInputLoader) вызывается из «хост-процесса», например. Nucleus или ProtoInputHost. В принципе, хуки можно внедрить из любого инжектора dll.
Перед внедрением dll ProtoInputLoader откроет именованный канал (туннель, используемый для связи) с именем, связанным с внедренным идентификатором процесса, например. ПротоВход1234. Как только dll будет введена, она подключится к каналу. Все данные, отправляемые в dll, выполняются через этот канал. На этом этапе dll не будет внедрять какие-либо ловушки. Затем команды для внедрения хуков (или установки данных и т. д.) выполняются путем вызова API в ProtoInputLoader. Например, в Nucleus теперь будут внедряться все хуки, установленные в скрипте.
Как использовать прото-ввод
Proto Input не связан с Nucleus Co-Op, поэтому обычно быстрее всего сначала настроить параметры игры с помощью графического интерфейса, а затем преобразовать их в сценарий Nucleus.
Прототип узла ввода
Существует 3 способа выбора процесса для внедрения:
- Во-первых, (2), для внедрения при запуске: просмотрите исполняемый файл игры. Это добавит экземпляр в список экземпляров (1).
- Второе (3): сфокусируйтесь на окне запущенной игры, например. Alt+Tab или щелкнув по нему, затем вернитесь в графический интерфейс. Выбранный процесс должен отображать имя процесса, затем нажмите кнопку, чтобы добавить его в список экземпляров.
- Третий вариант (4): поиск по всем запущенным процессам.
Вы можете добавить столько экземпляров, сколько вам нужно, хотя для тестирования обычно достаточно 1 экземпляра. К каждому экземпляру могут быть подключены разные устройства ввода. Установите устройства ввода на панели (5) для выбранного экземпляра.
После того как вы настроили экземпляры, вы можете изменить настройки. Установите метод впрыска в (6). Для внедрения во время выполнения EasyHook Inject подойдет для большинства игр. Если это не так, попробуйте удаленную загрузку библиотеки. Некоторые игры, блокирующие внедрение, могут работать со Stealth Inject. Внедрение при запуске (EasyHook Create and Inject) может работать, когда внедрение во время выполнения не работает, и наоборот, поэтому обязательно протестируйте все варианты.
Настройки хуков в (7) будут отправлены во внедренную dll сразу после внедрения. Если вы только тестируете, вы можете оставить их по умолчанию или отключить все. Затем вы можете изменить крючки в игре позже. Если вы хотите сохранить свои настройки в качестве предустановки, введите имя в текстовое поле в (9), например. profile.json, затем Сохранить. Затем вы можете загрузить его в любое время.
В (8) «Блокировка ввода с помощью клавиши «Отбой» означает, что «настоящая» мышь и клавиатура будут заблокированы при нажатии кнопки «Отбой», поэтому они не будут мешать «фальшивому» вводу. «Блокировка ввода также приостанавливает работу explorer.exe» означает, что при блокировке ввода некоторые потоки процесса explorer.exe будут приостановлены. Это предотвратит случайное нажатие Alt + Tab, открытие меню «Пуск», перемещение панели задач и т. д. Настоятельно рекомендуется включить эту функцию. «Заморозить игровой ввод, когда ввод не заблокирован» означает, что Proto Input будет отправлять «фальшивый» ввод только тогда, когда «настоящий» ввод заблокирован. Это сделано для того, чтобы вы не могли одновременно управлять настоящим и фальшивым курсором мыши.
Когда вы закончите с настройками, вы можете начать инъекцию с помощью (8). Если инъекция работает, вы можете увидеть быструю вспышку, поскольку командное окно открывается, а затем скрывается. Если вы видите ошибку, попробуйте изменить метод инъекции.
Прототип интерфейса ввода
После внедрения dll-файлов ловушек вы можете открыть графический интерфейс крючков. Нажмите правый ctrl + правый alt + 1, чтобы открыть графический интерфейс для первого экземпляра (и 2 для второго и т. д.). Графический интерфейс позволяет включать/отключать хуки во время выполнения, изменять настройки устройства и все остальное, связанное с Proto Input. Вам следует настраивать параметры в графическом интерфейсе до тех пор, пока ввод не будет нормально работать в игре.
После открытия графического пользовательского интерфейса первое, что нужно сделать, — отключить параметр "Замораживать поддельный ввод при открытом графическом интерфейсе" в пункте (4). Эта опция не позволяет Proto Input отправлять «фальшивые» данные при открытии графического интерфейса, однако в большинстве случаев это избыточно, если у вас уже есть функция «Заморозить ввод игры, когда ввод не заблокирован» от Proto Input Host.
На панели хуков (1) вы можете увидеть, какие хуки включены (зеленый) и отключены (красный). Выбранная панель хука (2) дает вам описание хука, а иногда и панель сведений для изменения настроек, связанных с хуком, или просмотра некоторой выходной информации.
Открыв окно консоли (3), вы сможете увидеть консольный вывод Proto Input, а также любой стандартный вывод игры. Полезный прием — закрыть окно консоли, чтобы немедленно завершить игровой процесс.
Вы можете установить клавиатуру и мышь в (5). Это устанавливает устройства, которые Proto Input будет обрабатывать, чтобы затем имитировать «фальшивый» ввод. Обратите внимание, что вы можете выбрать более 1 устройства каждого типа.
Некоторые параметры можно настроить в (3), (4) и (5): см. ниже.
Фильтры сообщений можно настроить на вкладке Фильтр сообщений.«Модификаторы» сообщений изменяют данные, отправленные в сообщении Windows, или выборочно блокируют сообщения, например. разрешая только сообщения, которые имитируются Proto Input. Кроме того, вы можете установить блокировку любых сообщений, например. на WM_KILLFOCUS, чтобы игра не теряла фокус.
Сценарии с Nucleus Co-Op
В вашем сценарии всегда должны быть строки:
Крючки
Вы должны использовать графический интерфейс Proto, чтобы включать/отключать перехватчики во время выполнения, пока вы не заработаете. Как только вы это сделаете, вы должны добавить соответствующие строки в свой скрипт. Вы также должны сделать то же самое для фильтров сообщений и других настроек.
3.) Извлеките загруженные файлы Nucleus Coop и поместите их в новую папку. (Назовите эту папку как угодно. Я назвал свою "Nucleus Coop".)
5.) Убедитесь, что Orion: Prelude находится на том же жестком диске, что и папка «Nucleus Coop» (в данном примере это C:/). Если нет, поместите их на тот же жесткий диск. Но не помещайте папку "Nucleus Coop" в каталог Orion: Prelude.
6.) Щелкните правой кнопкой мыши программу "NucleusCoop.exe", перейдите в свойства, перейдите в раздел "Совместимость" вверху, установите флажок "Выполнять эту программу от имени администратора".
5.) Он завершится, а затем появится диалог. Нажмите «Да», затем найдите исполняемый файл Halo, расположенный в «каталоге вашей игры»/Binaries/Win32/DinoHordeGame.exe. (Вы можете найти «свою папку с игрой», щелкнув правой кнопкой мыши игру, затем перейдя в «Управление» и нажав «Просмотреть локальные файлы».)
6.) Настройте контроллеры, нажав на маленькое поле под значком клавиатуры. Перетащите свои контроллеры в вашу настроенную конфигурацию. Если у вас настроено несколько мониторов, вы также можете настроить каждый экран для разделения экрана здесь!
8.) И, наконец, в игре, пусть один человек начнет публичную игру. Затем попросите других людей присоединиться к этому человеку в холле.
<р>9. Очень важный последний шаг: после того, как вы закончите и выйдете из игры, ваша мышь не будет работать. Нажмите кнопку "End" на клавиатуре или "ctrl+Q", чтобы это исправить.10.) (НЕОБЯЗАТЕЛЬНЫЙ ШАГ: это сократит время запуска) Закройте приложение Nucleus Coop. Внутри папки «Nucleus Coop» перейдите в «scripts», щелкните правой кнопкой мыши «Halo The Master Chief Collection», нажмите «редактировать», нажмите ctrl+F, найдите 30, измените 30 на 3, сохраните и выйдите. Снова откройте приложение Nucleus Coop.
У вас низкое разрешение или растянуто соотношение сторон.
Щелкните правой кнопкой мыши на рабочем столе, перейдите в панель управления Nvidia/AMD и включите DSR, специальные разрешения. Затем увеличьте разрешение. В Nvidia это в разделе «Управление настройками 3D», «DSR — Факторы», затем параметры разрешения находятся в разделе «Изменить разрешение».
Замораживание в окне "Пауза на 30 секунд" или в окне "Создание необработанного ввода".
Поместите созданную вами папку «Nucleus Coop» в другое место, например C:/Program Files (x86). Также отключите «Показать окно состояния» в настройках Nucleus. Это новая функция, представленная в последней версии, но вызывающая проблемы у некоторых пользователей.
Всплывающее окно с надписью "ОШИБКА: исключение в ResetWindows для".
Перейдите к сценарию «Орион: Прелюдия» и увеличьте время паузы с 3 до 4, 5, 6 и т. д. Также отключите «Показать окно состояния» в настройках Nucleus. Это новая функция, представленная в последней версии, но вызывающая проблемы у некоторых пользователей.
-
Можно ли сократить время запуска?
- Да, см. шаг 10 в разделе "Как сделать".
Дополнительные вопросы и ответы см. в разделе часто задаваемых вопросов
Не всегда показывает на многих играх кнопки и мышки
И не всегда джойстики
Взял openscript Grim Dawn так, как он единственный показывал все. Оттуда переметнул некоторые корректировки в другие скрипты и - заработало!
Если не видите джойстики без Xinput, то ставим Direct Input TRUE
Играю с девушкой на мониторе Full HD в Borderlands 3, Generation Zero, GR:Breakpoint и во многие другие игры с двумя клавиатурой и мышью! Супер!
@Exercitus, о, похожее происходит и со мной. Либо попросите разработчика исправить это в дискорде, либо используйте два контроллера.
@Bmb92 Игра в Halo MMC, 1 клавиатура/мышь и 1 геймпад. Мышь держит табуляцию вне игры, таким образом блокируя игрока с мышью. Любая идея, как исправить? Я предполагаю, что это потому, что мышь уходит за пределы игровой области, а затем, когда вы нажимаете, чтобы стрелять, она фокусирует другую программу
Ну, я нашел проблему, видимо, это был мой vpn. он продолжал отключать мое соединение с модом Nuclearcoop.
Локальные серверы Bo2 отключены? мод работал нормально 2 недели назад, но теперь, когда я запускаю совместный матч, один из сеансов игры вылетает. Сбой остановился, когда я запускаю мод ядра с режимом совместимости с Windows 8, но мне кажется странным, что раньше он работал нормально.
Теперь проблема в том, что я подключаюсь к серверам кооператива. Я обратился за помощью в дискорде, мне не ответили?
Кто-нибудь знает решение?
Bmb92 ахахаха Я заказал оригинальный контроллер xbox360, потому что я так разозлился, но в любом случае я спросил их в дискорде, и Талос ответил, сказал мне, что делать, но мне было все равно. этот контроллер - задница, и поэтому я решил купить настоящий. Дело в том, что я покупаю его на сайте, который предлагает его за 20 долларов, поэтому, если он окажется подделкой, я, вероятно, совершу снос дома. Приятно то, что парень, у которого я покупаю контроллер, имеет хорошую репутацию, так что я надеюсь, что все будет хорошо. Спасибо за попытку помочь мне :)
Сравните Nuclearcoop и ProtoInput и посмотрите, в чем их отличия.
нуклеускоп
Неофициальный мод для Nucleus Co-Op, который представляет собой приложение, запускающее несколько экземпляров игры для многопользовательской игры с разделенным экраном! (от ZeroFox5866)
Протовход
Proto Input позволяет разделить экран в компьютерных играх, подключая функции Windows и перенаправляя ввод с нескольких клавиатур/мышей/контроллеров (автор Ilyaki)
- Scout APM: меньше времени на отладку, больше времени на создание
- OPS — сборка и запуск Unikernel с открытым исходным кодом
- Mergify – автоматизируйте запросы на вытягивание с помощью Mergify
Количество упоминаний – это общее количество отслеженных упоминаний плюс количество предложенных пользователями альтернатив.
Звезды — количество звезд, которое имеет проект на GitHub. Рост - ежемесячный рост звезд.
Активность — это относительное число, показывающее, насколько активно разрабатывается проект. Недавние коммиты имеют больший вес, чем старые.
Например, активность 9,0 означает, что проект входит в число 10 % наиболее активно разрабатываемых проектов, которые мы отслеживаем.
ядерное исследование
Сообщения с упоминаниями или отзывами о Nuclearcoop. Мы использовали некоторые из этих постов для создания нашего списка альтернатив и подобных проектов. Последнее было 21 февраля 2022 г.
Easy Red 2 — тактический крупномасштабный шутер-песочница от первого/третьего лица о Второй мировой войне. Или в основном BF1942 с кучей ботов и немного большей глубиной. В нем есть редактор миссий, а также множество транспортных средств и оружия. Предварительный просмотр страницы Steam на Youtube Nucleus Coop
https://nucleus-coop.github.io/ — это то, что вам нужно, это очень просто. Раньше он назывался «универсальный разделенный экран» и позволял играть в кооперативе на диване во множестве игр.
У него есть режим локальной сети, но по умолчанию нет режима разделенного экрана. Тем не менее, вы можете играть на разделенном экране, если хотите использовать Nuclearcoop, или просто открыть 2 экземпляра и подключить их через локальную сеть через IP-адрес «localhost» или 127.0.0.1
Последняя игра, на которую у меня была назначена постоянная встреча. После школы, прыгать в онлайн после душераздирающего опыта, который был в старшей школе, просто чтобы пообщаться с приятелями, пошутить, поиграть вместе в Halo, надрать мне задницу, поиграть в какие-нибудь нестандартные игры. Трудно поверить, что прошло чуть больше 14 лет. Я знаю, что все еще могу играть в нее сейчас, и, используя что-то вроде этого, я все еще могу играть на разделенном экране с друзьями (даже с друзьями, которые не владеют им и находятся далеко, если я использую Parsec), но когда вы видите, что это происходит по-другому загрузите логотип, запустите игру с диска и увидите, что куча приятелей открыла лобби, в котором достаточно места, чтобы вы могли зайти в любое время.
Протоввод
Небольшие новости, прежде чем мы начнем. На сервере Discord, указанном ниже, один из разработчиков Nucleus, Ильяки, выпустил новую программу под названием ProtoInput. Короче говоря, это улучшенная версия кода, используемого для перехвата ввода для Nucleus, который в конечном итоге будет интегрирован в Nucleus. На данный момент он имеет модульную конструкцию и может использоваться сам по себе с включенным хостом ProtoInput, который по сути является модернизированным универсальным разделенным экраном. Теоретически это должно работать для каждой игры, которую поддерживает Nucleus, и работает для игр, которые Nucleus не поддерживает. Ильяки опубликовал несколько профилей, которые он использует для этого, и вы можете найти их в Discord. Не стесняйтесь попробовать!
Какие есть альтернативы?
эмулятор_золота
немиртингас_epic_emu
эмулятор_золота
nucleuscoop — запускает несколько экземпляров игры для многопользовательской игры на разделенном экране!
DepotDownloader — загрузчик хранилища Steam, использующий библиотеку SteamKit2.
HollowKnight.Мультиплеер
redgpu — лучший в мире API GPU. Лучше Металла, Вулкана и прочей фигни.
UniversalSplitScreen — многопользовательская игра с разделением экрана для любой игры с несколькими клавиатурами, мышами и контроллерами.
Mhook – библиотека подключения Windows API
splitscreenme-nucleus — Nucleus Co-op — это приложение, которое запускает несколько экземпляров игры для многопользовательской игры с разделенным экраном!
Читайте также: