FadedMods обновила Echoes и исправила загрузку на Linux для Build 42.22
Опубликовано
28 октября FadedMods выпустила обновление Echoes of Humanity, PZ Optimized и Deadflow для Project Zomboid Build 42.22, а позднее в тот же день — исправления Deadflow и Faded Java Loader для выделенных Linux-серверов. Ниже — последовательность по времени UTC и результаты, заявленные издателем; независимой проверки запуска или игры не проводилось.
10:51 UTC: совместный выпуск
Echoes of Humanity 0.21.0 обновляет бой, учёт выстрелов игрока, полномочия при обработке урона и текущие игровые API. Конфликтовавшие наземные модели ALICE, принадлежавшие CSR, заменены частными моделями Echoes и ресурсами в собственном пространстве имён, включая пути надетых и брошенных рюкзака и жилета. Набор средств для земледелия приведён в соответствие текущим обработкам от тли, мух, мучнистой росы и слизней.
PZ Optimized 0.4.1 исправляет сбой IsoWorld.pzoptimizedSortZombiesByScore в Build 42.22: отсортированных зомби копируют обратно через API игрового списка вместо устаревшей операции с массивом. Сортировка по примитивным ключам и повторно используемая временная память сохранены; полный набор Build 42.21, по словам издателя, остался побайтно неизменным. Java-плагин работает только на клиенте и пропускается выделенными серверами.
Deadflow 0.2.12 добавила специально проверенную пару инвентаризации владения и профиля для PZ Optimized 0.4.1, сохранив профили 0.4.0 и более старых версий игры, а также проверки допуска и владения. На момент этого выпуска нативный Linux с 42.22 оставался неподдерживаемым; это ограничение относится к 0.2.12 и позднее было предметом исправления 0.2.13. Обновление не переносило старые форматы снимков зомби и не требовало сброса сохранения.
Издатель указал Faded Java Loader 0.6.7 или новее с соответствующим пакетом Bridge. В релизе также описан порядок: после обновления PZ Optimized закрыть игру и выполнить включённое в пакет автономное восстановление с проверкой владения перед запуском с Deadflow. При выпуске сохранялись проверенные резервные копии основной и персональной установок модов, выбор модов и профили FJL; адреса установщиков Main и Faded Realms не менялись, список модов предлагалось обновить. Это описание процедуры издателя, а не проверенная нами инструкция.
Что проверил издатель в первом выпуске
В Windows издатель сообщил о проверке надевания и выпадения предметов NPC мужского и женского пола: четыре надетых предмета, четыре реальных выпадения, готовые частные меши, четыре отрисованных атласа на земле и снимок сцены без препятствий; строк о недостающих мешах и ArrayStoreException не обнаружили. Состояние ресурсов изучали в изолированном нативном отладочном клиенте; отдельные свидетельства обычного режима касались появления объектов и регистрации сцены.
По отчёту издателя, Linux dedicated server запускался с точным поставляемым JAR Echoes и подписанным Loader 0.6.7 и прошёл проверки нативных реестров и мостов без недостающих мешей и фатальных ошибок. Также прошли совместный допуск PZO/Deadflow/EOH, отказ изменённого payload и CPU-проверки управляемого обновления; прежний полный gate Echoes из 81 задачи оставлен как историческое свидетельство. Эти проверки не отменяли тогдашнего ограничения Deadflow 0.2.12 на Linux 42.22.
В отчёте релиза сказано, что издатель остановил дальнейшее тестирование по просьбе своего пользователя. Графическая приёмка Linux-клиента и повторный полный регрессионный gate не заявлены. Для переносимых пакетов указаны нативные Linux-проверки извлечения и файлов установщика и сверка публичных байтов. Во время Windows-съёмки зафиксировали одну ошибку нулевого вектора zombie-lunge; сохранённый стек не определяет цель или происхождение в базовой игре, PZO либо NPC. Сцена продолжилась, предположительный игровой патч не вносили.
На момент первого релиза Faded Realms продолжал работать на игре 42.21 и Echoes 0.20.0; копия Echoes для 42.22 была подготовлена отдельно, без замены активного мода и перезапуска службы. Тогда издатель отмечал, что перед включением полного серверного набора нужно решить ограничение Deadflow для Linux 42.22. Последующие заметки ниже описывают исправления, но сами по себе не подтверждают миграцию или реальный перезапуск этого сервера.
19:26 UTC: Deadflow 0.2.13
Издатель сообщил об исправлении Deadflow на выделенных Linux-серверах Build 42.22. Причина состояла из двух частей: аудит загрузки 0.2.12 искал projectzomboid.jar в корне установки, хотя на Linux dedicated JAR и отдельные переопределения классов находятся в java/, а нативные файлы — в корне, linux64/ и natives/. Ошибка чтения выбрасывалась в premain FJL, который продолжал работу без Java-плагинов; Bridge переходил в восстановление, а Deadflow.lua сообщал о недоступности population authority. Кроме того, профили 42.22 не содержали проверенного Linux native и отказали бы даже после исправления пути.
В 0.2.13 разделены корень классов с JAR и корень установки с нативными файлами и метаданными PZ Optimized. Корень классов определяется по fjl.game.root или его подпапке java/, затем по classpath JVM и источнику zombie/GitVersion.class; имя JAR ищется без жёсткой зависимости от регистра. Проверки владения PZO schema 2 читают pzoptimized-installed.txt из корня установки. Поиск нативной библиотеки коллизий охватывает оба корня, в том числе natives/ и linux64/; правило, что первый кандидат java.library.path должен быть проверенным файлом, сохранено.
Для Linux 42.22 закреплён хеш проверенной linux64/libPZPopMan64.so; издатель указывает побайтовое совпадение игрового JAR на разных платформах. Инструмент native-collision-probe сделан независимым от платформы: использует System.mapLibraryName, учитывает Linux-расположение java/ и linux64/, поддерживает --out и PROBE_CLASSES. Добавлены 13 проверок GameRootLayoutTests для Windows, Linux dedicated, вариантов регистра, classpath-only и возврата при неверном корне.
По описанию выпуска, пересечения Mixin с PZO 0.4.1 нет: PZO затрагивает GLVertexBufferObject и SmartTexture, а Deadflow — popman, MapCollisionData, VirtualZombieManager, IsoZombie и LuaManager. Допуск действующего профиля PZO с инвентарём из 552 файлов и парой релиза не изменён. На Windows-клиенте с PZO 0.4.1 выбирался PZO_0_4_1_EFFECTIVE_42_22; на Linux-сервере PZO не устанавливает переопределения классов, используется только серверный Lua и выбирался STOCK_42_22.
Издатель сообщил об успешных hook audit и проверке нативной границы, 45 проверках допуска PZO и 298 проверках совместимости. Допуск production JAR на Linux с серверной JRE 25.0.1 запускали на реально существующей структуре сервера в режиме только чтения, с её classpath и library path: выбран STOCK_42_22 с linux64/libPZPopMan64.so. На локальной Windows-игре с PZO 0.4.1 выбран PZO_0_4_1_EFFECTIVE_42_22. Это отчёт об отдельных тестах издателя, а не наше подтверждение игрового процесса или универсальной совместимости.
20:18 UTC: Faded Java Loader 0.6.8
Поздний выпуск исправляет проверку загрузочного payload на Linux dedicated: guard искал projectzomboid.jar в корне игры и при каждом старте выдавал REJECTED с недоступным JAR, хотя PZ Optimized payload там не было. Теперь JAR ищут по расположению ресурса базового игрового класса в classpath JVM без загрузки класса, затем в корне и в java/projectzomboid.jar; относительный путь записывается как gameJarPath в диагностику и журнал. Установщик также распознаёт JAR в java/.
Если записи владения PZ Optimized нет, guard ничего не считает принадлежащим ему и не защищает: неразрешённый JAR проходит как NO_RECORD, а его идентичность остаётся диагностической. При наличии записи проверки владения и перенаправлений, а также обход устаревшего payload сохраняются для найденного JAR. Bridge остаётся версии 0.5.8, Cooperation — 1.0.3; принудительная проверка несовпадения multiplayer-плагинов остаётся отключённой. Издатель просит полностью перезапустить PZ после обновления и обновлять клиенты и серверы вместе; факт такого перезапуска или независимого тестирования здесь не установлен.