Полностью исправляет ошибку с зависанием диалогов, которая годами доставляла проблемы сообществу 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, F4WheelMenu, WheelMenu, FavoritesMenuEx, LooksMenu
# Когда включено, при каждом открытии консоли (~) полный стек меню дампится
# в лог F4SE — имя каждого меню, depthPriority и будет ли оно
# понижено/внесено в белый список/заблокировано. Используйте это, чтобы найти имя для sWhitelist,
# а затем отключите.
bConsoleDump = false
# ----------------------------------------------------------------------------
# [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) АЕ (1.11.240)
Address Library for F4SE Plugins
Fallout 4 Script Extender (F4SE)
Установка:
Установить архив через менеджеры модов или вручную. Активация не требуется.
У пользователей OG (1.10.163) в журнале F4SE может отображаться сообщение о том, что плагин не загружен или отсутствует информация о версии. Это косметический дефект. Плагин работает нормально. Можете игнорировать это сообщение.
Обновление:1.6.1
* Добавлена поддержка игры 1.11.240
* Теперь из работы мода исключен *LooksMenu*.
* Исправлена ошибка, из-за которой файл конфигурации не мог быть прочитан корректно.
* Теперь из работы мода исключены: фоторежим (*Photo mode*), меню скринарчера (*screen archer menu*), круговое меню (*wheel menu*) и *FavoritesMenuEx*.
Обновление:1.3
Исключены фоторежим, меню скриншотера и селекторное меню (колесо).
Отладка теперь должна завершаться корректно.
Введение:
Вы заговариваете с 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, F4WheelMenu, WheelMenu, FavoritesMenuEx, LooksMenu
# Когда включено, при каждом открытии консоли (~) полный стек меню дампится
# в лог F4SE — имя каждого меню, depthPriority и будет ли оно
# понижено/внесено в белый список/заблокировано. Используйте это, чтобы найти имя для sWhitelist,
# а затем отключите.
bConsoleDump = false
# ----------------------------------------------------------------------------
# [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) АЕ (1.11.240)
Address Library for F4SE Plugins
Fallout 4 Script Extender (F4SE)
Установка:
Установить архив через менеджеры модов или вручную. Активация не требуется.
У пользователей OG (1.10.163) в журнале F4SE может отображаться сообщение о том, что плагин не загружен или отсутствует информация о версии. Это косметический дефект. Плагин работает нормально. Можете игнорировать это сообщение.
Обновление:1.6.1
* Добавлена поддержка игры 1.11.240
* Теперь из работы мода исключен *LooksMenu*.
* Исправлена ошибка, из-за которой файл конфигурации не мог быть прочитан корректно.
* Теперь из работы мода исключены: фоторежим (*Photo mode*), меню скринарчера (*screen archer menu*), круговое меню (*wheel menu*) и *FavoritesMenuEx*.
Обновление:1.3
Исключены фоторежим, меню скриншотера и селекторное меню (колесо).
Отладка теперь должна завершаться корректно.
Для Fallout 4 OG (1.10.163), NG (1.10.984), AE (1.11.221) АЕ (1.11.240) (202 kb)Сервер №1





* Добавлена поддержка игры 1.11.240
* Теперь из работы мода исключен *LooksMenu*.
* Исправлена ошибка, из-за которой файл конфигурации не мог быть прочитан корректно.
* Теперь из работы мода исключены: фоторежим (*Photo mode*), меню скринарчера (*screen archer menu*), круговое меню (*wheel menu*) и *FavoritesMenuEx*.
Исключены фоторежим, меню скриншотера и селекторное меню (колесо).
Отладка теперь должна завершаться корректно.