Dialogue Freeze Fix - F4SE / Исправление зависания диалогов
Сегодня 47 5 Автор мода: tryname Автор публикации: k©קaso√® Версия: 1.1 Перевод: Русский

Dialogue Freeze Fix - F4SE / Исправление зависания диалогов

Полностью исправляет ​​ошибку с зависанием диалогов, которая годами доставляла проблемы сообществу FO4.

Введение:
Вы заговариваете с NPC. Мышь и клавиатура перестают реагировать, варианты диалога не нажимаются, и вам приходится загружать сохранение. Это и есть «зависание диалога». В Fallout 4 каждому открытому элементу интерфейса присваивается определенный приоритет глубины (`depthPriority`). Некоторые оверлеи (например, всплывающий урон, счетчики крышек и другие HUD-виджеты) могут перекрывать меню диалога (`DialogueMenu`) и перехватывать ваш ввод.

Этот мод исправляет проблему прямо во время игры. Как только начинается разговор, он временно понижает приоритет таких оверлеев, позволяя меню диалога оставаться в фокусе. Всё возвращается в исходное состояние сразу после завершения беседы. Мод написан на C++ и реагирует мгновенно. Никаких скриптов, никаких изменений файлов игры и никакой зависимости от сохранений. (По умолчанию используется динамический режим, но в конфигурационном файле можно переключиться на статический).

*Примечание:* Поскольку в старой версии игры (OG / 1.10.163) отсутствует функция `AddTaskPermanent`, здесь был реализован альтернативный подход. Надеюсь, всё работает как надо.

Настройки в файле DialogueMenuFix.toml (открывать через обычный Блокнот или Notepad++): (все параметры уже выставлены как задумано автором мода)

# Настройки по умолчанию подобраны так, чтобы всё работало сразу из коробки.
# Обычно вам НЕ НУЖНО здесь ничего менять. Редактируйте только в том случае,
# если столкнулись с конкретным конфликтом модов.

# ----------------------------------------------------------------------------
#  [Demotion]  -  Основное исправление (понижение приоритета). Оставьте включенным.
#
#  Пока открыто окно диалога, HUD-меню, которые в противном случае перекрывали бы
#  DialogueMenu, временно сдвигаются под него (их параметр depthPriority понижается),
#  а затем восстанавливаются, когда разговор завершается.
# ----------------------------------------------------------------------------
[Demotion]

# Главный переключатель. true = включено (рекомендуется), false = выключено.
bEnabled = true

# Режим работы:
# 0 = динамический. Сканирует и понижает приоритет интерфейсов каждый кадр, пока
#     открыт диалог, затем восстанавливает. Улавливает меню, появившиеся уже после
#     начала разговора.
# 1 = статический. Сдвигает меню один раз при загрузке игры и больше не восстанавливает.
#     Нулевая нагрузка на кадр, но безопасно только если все HUD-моды загружаются
#     строго до того, как откроется первый диалог.
#
# Примечание для старой версии игры OG (1.10.163): динамический режим здесь работает
# иначе, чем на NG/AE. Если заметите странное поведение на OG, попробуйте статический режим (1).
bMode = 0

# Значение depthPriority, до которого опускается меню при понижении. Значение по умолчанию 5 (kHUD)
# удерживает его ниже DialogueMenu. Диапазон: от 0 до 20.
# (5=kHUD, 6=kStandard, 8=kPipboy, 10=kGameMessage, 11=kPauseMenu)
iDemoteTo = 5

# Понижаются только те меню, чей текущий depthPriority находится в этом диапазоне.
# Благодаря этому меню, которые оправданно должны быть сверху (пауза, терминалы), не затрагиваются.
# Диапазон: от 0 до 20.
iDemoteFromLow = 6
iDemoteFromHigh = 9

# Список исключений: названия меню через запятую, которые никогда не должны сдвигаться вниз.
# Учитывайте регистр символов, названия должны точно соответствовать внутренним именам игры.
# Используйте параметр bConsoleDump ниже, чтобы узнать точные названия.
#   Пример:  sWhitelist = MyCustomHUD, AnotherWidgetMenu
sWhitelist = PhotoMode, ScreenArcherMenu

# Если включено, при открытии консоли (клавиша ~) будет выводиться весь список активных меню —
# название каждого меню, его depthPriority, а также статус (будет ли оно сдвинуто/в белом списке/заблокировано).
# Используйте это, чтобы найти имя для sWhitelist, а затем отключите параметр.
bConsoleDump = true


# ----------------------------------------------------------------------------
#  [Priority]  -  Альтернативное исправление. Пробуйте только в том случае, если
#  режим [Demotion] не решил проблему с зависанием. Не включайте оба режима одновременно.
#  Вместо понижения других меню, этот режим повышает собственный depthPriority у DialogueMenu,
#  пока активен диалог.
# ----------------------------------------------------------------------------
[Priority]

# Главный переключатель. По умолчанию выключено.
bEnabled = false

# 0 = динамический (повышает при активности, возвращает исходный после). 1 = статический (задается один раз).
bMode = 0

# Значение depthPriority, присваиваемое DialogueMenu во время диалога (динамический режим). Диапазон: 0-20.
iDynamicPriority = 10

# Значение depthPriority, присваиваемое DialogueMenu насовсем (статический режим). Диапазон: 0-20.
iStaticPriority = 10

# Значение depthPriority, возвращаемое для DialogueMenu после завершения разговора (динамический режим).
iRestorePriority = 6

Требования:
Fallout 4 OG (1.10.163), NG (1.10.984), AE (1.11.221)
Address Library for F4SE Plugins
Fallout 4 Script Extender (F4SE)

Установка:
Установить архив через менеджеры модов или вручную. Активация не требуется.

У пользователей OG (1.10.163) в журнале F4SE может отображаться сообщение о том, что плагин не загружен или отсутствует информация о версии. Это косметический дефект. Плагин работает нормально. Можете игнорировать это сообщение.
avatar
Gamer-mods.ru © 2012 - 2026. Все права защищены. Копирование материалов без указанной активной ссылки на данный сайт запрещено.