Последние комментарии

боевойкот Neurotrauma
можно сделать 2 одинаковых пациента кратко берём пациента номер 1 и...
2 часа назад
Ваграм 1987 BMW E34
блин жалко. но не время расстраиватся!!!
7 часов назад
Цумолеслав Цумолеслав 1987 BMW E34
сейчас не играю уже, времени мало
8 часов назад
Ваграм 1987 BMW E34
а ты играешь в тирдаун????
8 часов назад
Ваграм 1987 BMW E34
а у тебя есть тирдаун? я хотел с тобой поиграть без мультиплеера.
12 часов назад

Мод «AEBS Weather Fix» на Project Zomboid

Мод исправляет ошибку, появившуюся в сборке 42.15, из-за которой прогнозы погоды системы AEBS (Automated Emergency Broadcast System) отображают сырые заполнители формата «%s» вместо фактических значений температуры, влажности и ветра.

  • Автоотключение: автоматически переходит в режим пропуска, как только ошибка будет исправлена разработчиками игры. Мод не наносит вреда, если его не отключить, но рекомендуется отписаться после выхода официального патча.
  • Все языки: работает с любой локализацией, исправляя экранирование символов в момент отображения без изменения файлов перевода.
  • Легковесность: минимальная реализация, переопределяющая единственную функцию игры.

Совместимость:

  • Требуется сборка 42.15 и выше.
  • Поддерживает одиночную и многопользовательскую игру.
  • Не конфликтует с другими модами (переопределяет только функцию getRadioText).

Проверка работы:
В консоли или файле лога должно появиться одно из сообщений:
AEBSWeatherFix: double-escape bug detected, fix active
AEBSWeatherFix: bug not detected, passthrough mode

Техническая информация:

  • Причина ошибки: В сборке 42.15 система локализации была переработана, а формат файлов изменён с .txt на .json. В результате Translator.java начал применять процентное экранирование (% → %%) ко всем загружаемым значениям для использования с Java String.format. Однако тексты прогнозов погоды AEBS (категория DynamicRadio) передаются напрямую в Lua через getRadioText() и обрабатываются функцией string.format языка Lua. Поскольку декодирование на стороне Java не применяется, последовательность %%s интерпретируется Lua как literal %s, что приводит к отображению сырых заполнителей.
  • Принцип работы: Мод переопределяет getRadioText(), раскодировывая %% обратно в % перед возвратом значения в Lua. При первом вызове используется контрольный ключ (AEBS_temperature) для автоматического обнаружения ошибки двойного экранирования. Если ошибка не обнаружена, используется оригинальная функция.
  • Затрагиваемые тексты: AEBS_temperature (температура и влажность), AEBS_wind_0 (направление и скорость ветра), AEBS_weather_warning (предупреждения о суровой погоде), AEBS_weather_0_a / _c (периоды прогноза погоды), AEBS_random_0–3 (случайные передачи AEBS).
  • Workshop ID: 3687634406
  • Mod ID: AEBSWeatherFix
Билд Project Zomboid
  • Build 42
Нет комментариев. Ваш будет первым!