Привет.
Представляю вам модуль оконного режима, построенный на основе встроенного Direct3D 9, что открывает несколько классных возможностей, включая отсутствие лагов и полный FPS (эмулятора нет!), растягивание окна, открепление мыши от окна, а также возможность создания и стриминга Full-HD видео и скриншотов вне зависимости от монитора и системы.
Способ сделать Direct3D 9 оконным был изначально найден Kawoosh'ем, и затем я расширил его с множеством исправлений и добавлений:
Режим растянутого окна - включается при помощи Stretch=1 для соответствующих разделов игры в ini-файле. Это по-прежнему оконка, но здесь она развёрнута на полный экран, будто бы вы играете в обычную полноэкранную игру. Это особенно полезно, если ваш монитор не поддерживает 640×480 (и вы хотите фулскрина), либо если вы хотите ускорить реакцию игры (не тратя время на ожидание, пока меняется разрешение вашего монитора): мгновенное возвращение в меню после завершения игры, мгновенное сворачивание и разворачивание, возможность задать разрешение экрана даже больше вашего собственного. Примечание: на некоторых видеокартах может потребоваться врубить сглаживание, чтобы не было голых растянутых пикселей.
ВНИМАНИЕ: опция Stretch в меню теперь больше не нужна с SuperFrontendHD. Более НЕ рекомендуется использовать опцию Stretch в меню (это влечёт за собой ограничение функционала и возможные баги).
Поддержка игры на нескольких мониторах сразу: возможность включить отображение игрового процесса и/или меню, простирающегося на несколько мониторов. Расположены мониторы могут быть как вертикально, так и горизонтально. С включённой опцией AutoSetResolution, результирующее суммированное внутриигровое разрешение будет автоматически рассчитано и включено в настройках игры при каждом запуске. При использовании растянутого или полноэкранного режима отображения меню, включение опции нескольких мониторов (как в игре, так и в меню) не будет ограничивать курсор рамками меню. ВНИМАНИЕ: важно учитывать мощность вашего железа, в частности, видеокарты и процессора, чтобы обеспечить себе комфортную игру на таких огромных разрешениях.
Ограничения: мониторы должны работать в режиме "Расширить", а не "Дублировать". Главный (первичный) монитор должен быть слева (на горизонтальных установках) либо сверху (на вертикальных); расположение задаётся в настройках системы. Для более чем двух мониторов рекомендуется сохранять нумерацию слева направо (хотя может быть и необязательно - тут уже тестируйте сами). Квадратные установки (напр., два монитора над двумя) поддерживаются, если соблюдены условия положения первичного. Максимальный размер 2D-текстуры, поддерживаемый вашей видеокартой, является максимально возможным значением суммы ширин (или высот на вертикальных установках) всех мониторов (если вы превысили лимит, WA оповестит вас об этом и сократит число мониторов до приемлемого значения). Мониторы разного разрешения поддерживаются, но не рекомендуются: вам решать, оставлять ли пустое место, сделав меньший монитор первичным, либо срезать несколько строк, сделав первичным больший монитор (можно настроить часть, которую необходимо срезать, перемещая расположение меньшего монитора в настройках системы). По крайней мере половина высоты (или ширины на вертикальных установках) должна соприкасаться с монитором слева; в противном случае, вам, скорее всего, не нужна поддержка нескольких мониторов.
Открепление и закрепление мыши: возможность, давно предложенная каким-то пользователем, позволяющая открепить мышь во время игры и водить ею над окном W:A. Это может быть полезно при включенной оконной рамке (см. ниже).
Нажимайте Ctrl+G для открепления или закрепления мыши.
Нестандартный размер и центрированное меню - можно задать свой размер меню, а также выбрать, сделать ли его центрированным, но это впитывает мышь.
ВНИМАНИЕ: эти опции теперь больше не нужны с SuperFrontendHD. Более НЕ рекомендуется использовать эти опции в меню (это влечёт за собой ограничение функционала и высокий риск багов).
Активный фоновый режим: доступен как в обычном, так и в растянутом режиме. Позволяет видеть прогресс игры даже тогда, когда окно не в фокусе. Этот режим навсегда включён для тех, у кого нету эффектов Aero (в качестве фикса), а также перемещает окно игры в левый верхний угол. Не может быть задействован при включенной оконной рамке.
Работа меню в фоновом режиме: возможность, не дающая меню самосворачиваться при переключении с окна WA на другое. Когда она включена, меню всё ещё будет видно на фоне. Может быть переключена при помощи настройки "RunInBackground" в секции [FrontendSettings].
Оконная рамка во время матча: позволяет включить рамку вокруг окна во время игры. Используя вышесказанную возможность открепления мыши вы можете передвигать окно во время игры.
Врубается при помощи WindowBorder=1 в ini-файле. Нажмите Ctrl+D во время геймплея, чтобы поменять на лету вне зависимости от настройки в ini.
Опция QuickInfo также отобразит некоторые сведения об игре в заголовке рамки окна.
Поверх всех окон (анти): окно игры больше не будет поверх всех окон (как в меню, так и во время матча). Это включено по умолчанию с версии 0.4.4.0, настройка "NoTopmost" в секции [Misc]. При помощи Ctrl+T можно переключать этот режим независимо от настройки в ini-файле.
Ну и, разумеется, я сделал модуль "умным", чтобы тупики не попадали в проблемы.
В отличие от wndmode, D3D9Wnd работает только на версиях W:A от 3.7 и новее, потому что он использует встроенный Direct3D 9, добавленный в версии 3.7.
Дополнительно:
Чтобы полностью выключить модуль без необходимости в его удалении, воспользуйтесь "Disabled=1" в ini-файле. Чтобы выключить его на одну сессию, запустите WA.exe с параметром командной строки /wkargs -nowindow.
Это также решает проблему с "несколькими мониторами на Windows 7", когда игра не стартовала.
При помощи модуля wkLobbyCmd можно менять разрешения прямо в предыгровом лобби, на ходу, и даже задать разрешение, которое больше величины вашего собственного экрана (в этом случае окно будет уменьшено и отображено на весь экран). Это позволяет любому создавать Full-HD видео (и даже более большие ) и скриншоты вне зависимости от монитора. Соотношение сторон может быть любым, как видно из примеров.
Максимально возможное разрешение равно максимальному размеру текстуры на вашей видеокарте (пример с 4096×4096), а минимальное - 143×1. Для получения наилучших пропорций картинки включите мозг и математику, если знаете соотношение сторон вашего монитора (16:9, 16:10, 4:3, 5:4...)
Последняя версия - 0.7.0.0, СКАЧАТЬ | зеркало. Извлеките всё содержимое в Вашу папку с игрой, соглашаясь на замену в случае чего. Вы обязаны включить опцию "Загружать WormKit-модули" из дополнительных настроек игры.
почему нет? я сделал всё возможное, чтобы был совместим
хм, странно
был установлен приват конфиг и настройки лежали в ini
поверх распаковал D3D9Wnd
запускаю wa ругается что нужно включить d3 рендер, включаю в настройках
выхожу из игры захожу заново - все тоже самое
удалил приватконфиг все заработало
почему нет? я сделал всё возможное, чтобы был совместим
хм, странно
был установлен приват конфиг и настройки лежали в ini
поверх распаковал D3D9Wnd
запускаю wa ругается что нужно включить d3 рендер, включаю в настройках
выхожу из игры захожу заново - все тоже самое
удалил приватконфиг все заработало
ну так надо врубить опцию
если wkPrivateCfg грузится после D3D9Wnd, ничего сделать нельзя. конечно можно добавить костыль на прочтение файла, но костыль
юзай Tweaks
может быть потом выйдет новый wkPrivateCfg
тут щас кавардак с загрузкой модулей и настроек, всё дезориентировано
Added after 11 hours 27 minutes:
Обновление. 0.4.0.0
Опция растянутого оконного режима была поделена на 2 части: Frontend и InGame, чтобы можно было поддерживать их по отдельности.
Оконная рамка больше не экспериментальна, и теперь переименована в WindowBorderInGame, работает только в игре, как и должна, а также автоматически удаляется, если размер окна занимает весь экран.
Добавлено Ctrl+D: быстрое включение/выключение оконной рамки во время игры (если позволяет размер), независимо от настройки в ini-файле.
Улучшено сворачивание игры: теперь опция "Свернуть игру" из меню клавиши Escape тоже работает.
Добавлено центрированное меню. Меню будет центрировано, но также скушает мышь. Не рекомендуется.
Добавлено задание нестандартного размера меню. Это позволит задать нестандартный размер окну меню при помощи строк FrontendXsize и FrontendYsize в ini-файле. Кушает мышь!
Добавлена опция командной строки для однократной деактивации модуля: запустите WA.exe с параметром /wkargs -nowindow, и оконка отключится в текущем запуске игры.
Стандартный ini-файл версии 0.4.0.0:
Примечание: опции растянутого окна имеют наивысший приоритет перед всеми остальными.
Добавлена экспериментальная опция FullscreenFrontend. У некоторых людей нету сглаживания в системе, и режим растянутого окна не был сглажен. Эта опция возвращает полноэкранное меню 640х480 (но сворачивание пока что не будет восстанавливать разрешение рабочего стола), по-прежнему используя окно (или любые опции, заданные в ini) во время игры.
Немного улучшилось центрированное меню (захват мыши).
Улучшился запуск WA
Улучшилась проверка WormKitDS
Примечание: у FullscreenFrontend наивысший приоритет перед всеми остальными опциями, касающимися меню.
Added after 6 hours 51 minutes:
Обновление. 0.4.4.0.
Добавлена опция NoTopmostInGame: окно во время матча больше не будет поверх всех окон. Это также может быть включено или выключено сочетанием кнопок. Опция позволяет Alt+Tab и подобным работать нормально (рекомендуется открепить мышь перед переключением). Люди с проблемой сочетаний Win и Alt могут применить reg-файл из архива. Эта опция теперь включена по умолчанию.
Ctrl+T быстро переключает режим "поверх всех окон" на включенное/выключенное состояние независимо от настройки в ini-файле.
Хорошая программка! Респектую!
Но я не разобрался в некоторых вещах:
1) Окно выбора, настроек и запуска игры 640х480 висит в левом верхнем углу, переместить в другое место экрана, свернуть и закрыть штатными способами не получается. Сама игра запускается в 1920х1080.
2) Иногда, после игры, некоторые окна других программ (браузеры, мессенжеры, тимвьювер и т.д.) оказываются "загнанными" в размер 640х480, туда-же могут переместиться и трей-сообщения.
3) Не могу запустить повтор игры в "стандартном оконном" режиме (этот режим нужен для снятия видеоролика). Всегда запускается в полноэкранном 1920х1080...
Хорошая программка! Респектую!
Но я не разобрался в некоторых вещах:
1) Окно выбора, настроек и запуска игры 640х480 висит в левом верхнем углу, переместить в другое место экрана, свернуть и закрыть штатными способами не получается. Сама игра запускается в 1920х1080.
это "окно выбора..." было создано в 1999 крайне низкопрофессиональными разработчиками Team17. состоит оно из костыля, на который поставлен ещё один костыль. в результате, перемещать его в процессе запрещено - сломается либо само меню, либо мышь. "расширить" без растягивания тоже нельзя. Это будет решено только через несколько лет, и даже с исходным кодом это сделать крайне сложно - на многовековых костылях завязана большая часть игры.
Файл настроек содержит минимальные возможности для изменения размера и перемещения меню, в частности, CenteredFrontend для центрирования и включение возможности растягивания окна до нужных размеров (ты читал информацию вообще из этой темы?). Центрирование не рекомендуется, потому что запрещено выводить мышь за окно (для предотвращения она сжирается)
Worm-E писал(а):
2) Иногда, после игры, некоторые окна других программ (браузеры, мессенжеры, тимвьювер и т.д.) оказываются "загнанными" в размер 640х480, туда-же могут переместиться и трей-сообщения.
Глюки винды?
Worm-E писал(а):
3) Не могу запустить повтор игры в "стандартном оконном" режиме (этот режим нужен для снятия видеоролика). Всегда запускается в полноэкранном 1920х1080...
Прости меня, но какой может быть оконный режим, когда ты запускаешь игру в максимальном разрешении? Даже идиоту понятно, что если выбрать размер, равный системному, окно итак покроет экран во всю ширину. Сбавь его в настройках игры и радуйся
по сети всё нормально работает. на фоне пауза игры только в оффлайне, в онлайне игра продолжается.
Worm-E писал(а):
Я вообще-то не хочу сбавлять. Имею в виду масштабирование...
ты хочешь ужать картинку? зачем? чем уменьшение размера окна не масштабирование?...
если ты хочешь побольше вид, можешь поставить разрешение, которое больше твоего монитора. тогда оно сожмётся до твоего. главное учитывать соотношение сторон экрана --- и это всё тоже написано в этой теме.
Вообще, если ты не знал, любое приложение в системе - окно. "Полноэкранный режим" - это то же самое окно, просто без границ, отображающееся во весь размер заданного разрешения. Тут то же самое. И ты можешь сделать Alt+Tab, так как теперь окно не поверх всех окон. Поэтому это уже оконный режим, и я не вижу смысла что-либо уменьшать без особой нужды. Ctrl+H даже включит возможность видеть прогресс игры, когда она не в фокусе.
Спасибо! Отличная штука!
Все пашет без проблем.
Два монитора, i7,win7
Кстати, да. Начиная с 17 июня, модуль поддерживает отображение игры с расширением на несколько мониторов. Ты можешь включить эту фичу для фронтенда и/или игрового процесса (я советую только для игрового процесса ) в новом файле настроек, секция MultiMonitor (в нём всё перестроено, поэтому надо будет вбить свои настройки заново. другого изменения формата настроек в ближайшем времени не планируется). Главное только, чтобы первичный монитор был с левой стороны в системе.
При включённых мульти-мониторах, фича AutoSetResolution автоматически сложит все разрешения экранов в одно и включит полученное автоматически (его будет видно в Настройках).
P.S. думаю, для тебя, как обладателя 2 моников, это приятное нововведение для НЕ-стриминговых целей
А вообще я бы не сделал поддержку мультимона, если бы не нашёл старый LCD-моник на даче. Вот так!
Вышло новое обновление 0.5.5.0! Изменения версий 0.5.2.5/0.5.4.0/0.5.5.0:
Завершена опция FullscreenFrontend, которая теперь работает как надо (восстанавливая разрешение при смене окна)
Полностью переделан формат файла настроек; свои старые настройки вбейте заново в новом файле.
Добавлена поддержка игры на нескольких мониторах сразу: возможность включить отображение игрового процесса и/или меню, простирающегося на несколько мониторов. Расположены мониторы могут быть как вертикально, так и горизонтально. С включённой опцией AutoSetResolution, результирующее суммированное внутриигровое разрешение будет автоматически рассчитано и включено в настройках игры при каждом запуске. При использовании растянутого или полноэкранного режима отображения меню, включение опции нескольких мониторов (как в игре, так и в меню) не будет ограничивать курсор рамками меню. ВНИМАНИЕ: важно учитывать мощность вашего железа, в частности, видеокарты и процессора, чтобы обеспечить себе комфортную игру на таких огромных разрешениях.
Ограничения: мониторы должны работать в режиме "Расширить", а не "Дублировать". Главный (первичный) монитор должен быть слева (на горизонтальных установках) либо сверху (на вертикальных); расположение задаётся в настройках системы. Для более чем двух мониторов рекомендуется сохранять нумерацию слева направо (хотя может быть и необязательно - тут уже тестируйте сами). Квадратные установки (два моника над двумя) пока не полностью поддерживаются, но могут быть рассмотрены позднее, если есть нужда. Максимальный размер 2D-текстуры, поддерживаемый вашей видеокартой, является максимально возможным значением суммы ширин (или высот на вертикальных установках) всех мониторов (если вы превысили лимит, WA оповестит вас об этом и сократит число мониторов до приемлемого значения). Мониторы разного разрешения поддерживаются, но не рекомендуются: вам решать, оставлять ли пустое место, сделав меньший монитор первичным, либо срезать несколько строк, сделав первичным больший монитор (можно настроить часть, которую необходимо срезать, перемещая расположение меньшего монитора в настройках системы). По крайней мере половина высоты (или ширины на вертикальных установках) должна соприкасаться с монитором слева; в противном случае, вам, скорее всего, не нужна поддержка нескольких мониторов.
Активный фоновый режим в игре теперь доступен для постоянного включения в файле настроек ("ActiveBackground" в секции [InGameSettings]). Он также финализован, и теперь работает во всех случаях. Теперь возможно включить оконную рамку в этом режиме, а само окно больше не будет приклеено к левому верхнему углу.
Пользователи Классического/Упрощённого интерфейса Vista/7 (без DWM) теперь больше не ограничены левым верхним углом, и она также могут использовать оконную рамку. Активный фоновый режим по-прежнему форсированно включён для них.
Добавлена опция TopLeftPosition для тех, кому нужно, чтобы окно было в левом верхнем углу. Она также может быть временно включена при помощи Ctrl+L.
Добавлена опция AutoUnpin (в секции [InGameSettings]), которая автоматически открепит курсор мыши от окна при переключении на другое окно (при помощи alt+tab или каких-либо других методов). Теперь включено по умолчанию.
Теперь курсор мыши будет вкреплён в окно назад после нажатия на окне игры, если он раньше откреплялся. В режимах растянутого/развёрнутого режима курсор будет вкреплён автоматически при переключении на окно игры.
Теперь снят лимит на максимальное разрешение экрана (ранее оно равнялось системному, помноженному на 2)! Это означает, что теперь можно задавать любые разрешения экрана без каких-либо проблем, не превышающие ограничений видеокарты (максимальный размер 2D-текстуры видеокарты).
Добавлена долгожданная поддержка работы меню в фоновом режиме: возможность, не дающая меню самосворачиваться при переключении с окна WA на другое. Когда она включена, меню всё ещё будет видно на фоне. Может быть переключена при помощи настройки "RunInBackground" в секции [FrontendSettings].
Встроенная функция игры захвата мыши во время матча была улучшена, чтобы соответствовать настоящей позиции графического окна. Таким же образом это было недавно проделано для функции активного фонового режима.
Опция "NoTopmost" была перемещена в секцию [Misc] и теперь работает как в игре, так и в меню. По-прежнему может быть переключена комбинацией клавиш Ctrl+T, но теперь в обоих местах.
если включить отображение меню по центру экрана, то при подведение курсора к левому краю - появляется курсор и на рабочем столе, при этом может взаимодействовать как положено.
UPD: при снятии скриншоты курсор пропал, но он находится на стиме).
настройки
если включить отображение меню по центру экрана, то при подведение курсора к левому краю - появляется курсор и на рабочем столе, при этом может взаимодействовать как положено.
предотвратить это невозможно. Скажи спасибо Team17, что так криво написали меню игры в 1999 году. Лучше оставь меню в левом углу или вообще расширь во весь экран стретчем.
Хотя погоди, ты показал лишь главное меню сейчас. Обычно большинство проблем на самом-самом первом меню. Попробуй перейти в другой раздел меню, должно исправиться.
Ты не можешь начинать темы Ты не можешь отвечать на сообщения Ты не можешь редактировать свои сообщения Ты не можешь удалять свои сообщения Ты не можешь голосовать в опросах