Survivor League: установка и настройка сервера
Survivor League
Текущая версия: 1.10.9. Survivor League — открытый мод для многопользовательских соревнований в Project Zomboid Build 42. Он объединяет прежние редакции Community и Meeks Protocol, позволяя выбирать тему интерфейса, и при этом сохраняет единую систему подсчёта очков и хранения результатов.
Возможности
- Раздельный учёт сезона, общего числа убийств и серии: Season Kills накапливаются в течение сезона, Total Kills сохраняются, а независимая серия убийств сбрасывается после смерти.
- Вкладочный Command Center: по умолчанию открывается клавишей F6. В нём есть таблица лидеров по 10 игроков на странице, личная статистика, история сезона, награды за места на пьедестале и серию, а также административные элементы управления с ограниченным доступом. Код клавиши можно настроить в Sandbox Options.
- Настраиваемые сезоны и награды за пьедестал: администраторы могут задавать длительность сезона, нужное число убийств, наборы предметов, опыт навыков и черты персонажа через встроенные Sandbox Options.
- Пять уровней наград за серию убийств: каждый уровень может один раз за жизнь персонажа выдавать предметы и опыт навыков; после смерти серия сбрасывается.
- Объявления о смерти: необязательные сообщения для всего сервера могут содержать время выживания, Season Kills, Total Kills и пользовательский префикс. Отображение в чате и над персонажем настраивается отдельно; чат включён, а halo-уведомления отключены по умолчанию.
- Случайные приветствия при подключении: до 20 редактируемых администратором сообщений. Шаблон {name} автоматически подставляет имя игрока; префикс, задержку между сообщениями и включение функции можно настраивать через Sandbox Options.
- Совместимость чата с Build 42: приветствия вставляются в чат без красного серверного оповещения Build 42; доставка сообщений о смерти и административных уведомлений настраивается отдельно.
- Системные уведомления: сообщения о протоколе, наградах, исправлениях, сбросе серии и итоговом расчёте показываются как сообщения сервера/системы, а не произносятся персонажем игрока.
- Гибридная синхронизация: выделенный сервер предпочитает объект игрока на сервере. Резервный механизм совместимости Build 42 отдельно учитывает приросты, сообщённые клиентом, ограничивает их частоту, сравнивает с надёжными серверными счётчиками и помещает подозрительные данные в карантин.
- Контроль доверия для наград: неподтверждённые приросты из клиентского резервного механизма по умолчанию не дают наград за этапы. Сообщества, доверяющие своим участникам, могут явно разрешить такие награды в Sandbox Options.
- Резервное обнаружение подтверждённой смерти: события смерти Build 42 обнаруживаются через встроенные callbacks, опрос локального состояния и стандартное сообщение о смерти в чате. Для отчётов нужны активный токен клиентской/серверной сессии и защита от дубликатов.
- Главный переключатель: при отключении мода прекращаются подсчёт, команды, награды, приветствия, сообщения о смерти и запросы таблицы лидеров.
- Проверка протокола: до приёма игровых или административных команд клиенты должны завершить точное согласование протокола и версии релиза.
- Поддержка имён UTF-8: имена игроков и персонажей с многобайтными символами очищаются и обрезаются только по границам символов.
- Три темы интерфейса: Project Zomboid, Meeks Protocol или Military; выбор задаётся в Sandbox Options, также возможны индивидуальные косметические переопределения для игроков.
- Брендинг white-label: заголовок и подзаголовок Command Center настраиваются без отдельной сборки.
- Защищённый перенос старых данных: если таблица Community пуста, можно импортировать прежнюю таблицу SurvivorLeagueData, не удаляя её. Непустые наборы данных автоматически не объединяются.
- Журналы для ретрансляции: структурированные маркеры [SurvivorLeagueKill], [SurvivorLeagueDeath] и [SurvivorLeagueCommunityJoin] можно использовать в необязательных ретрансляторах для Discord или сайта.
Настройка
Все поддерживаемые параметры владельца сервера доступны во встроенных Sandbox Options Project Zomboid. Для изменения сезонов, наград, сообщений о смерти или приветствий администратору не нужно редактировать Lua-файлы.
Уровни серии убийств, для которых не настроены предметы и задано 0 XP, считаются отключёнными даже при отмеченном переключателе. Это позволяет избежать пустых выдач наград и вводящих в заблуждение уведомлений.
Пустые ячейки сообщений при подключении игнорируются. Добавьте {name} в любое место текста, где должно отображаться имя подключившегося игрока.
На выделенных серверах Build 42, где число убийств зомби не обновляется в объекте игрока на сервере, можно оставить включённой настройку Allow hosted/co-op client kill-report fallback. Это режим совместимости, а не криптографическое доказательство убийства. Отчёты сохраняют сведения об источнике, ограничиваются по частоте, сравниваются со счётчиком сервера после того, как он подтверждён как надёжный; подозрительные значения помещаются в карантин. Оставляйте Allow unverified client-fallback milestone rewards отключённым, если не доверяете каждому подключённому клиенту.
Истечение сезона проверяется при запуске сервера, затем раз в минуту и во время обычного опроса игроков. Защита от повторного расчёта не позволяет параллельным таймерам или административным запросам выдать награды за пьедестал несколько раз.
Season Kills накапливаются в течение активного сезона. Смерть сбрасывает только Current Streak и отметки уже полученных наград за текущую жизнь. Total Kills и Best Streak сохраняются. Старое значение LeaderboardSize всё ещё читается из сохранённых пресетов для совместимости, но параметр скрыт, а Command Center всегда разбивает все зарегистрированные результаты на страницы по 10 игроков.
Запросы таблицы лидеров ограничиваются по частоте и на клиенте, и на сервере. Перед передачей интерфейсу имена игроков очищаются и ограничиваются по длине. Отчёты клиента о подтверждённой смерти включены по умолчанию, поскольку выделенный многопользовательский сервер Build 42 не всегда передаёт встроенные Lua-события смерти.
По умолчанию для Command Center используется код клавиши Project Zomboid 64 (F6). Чтобы назначить другую клавишу, измените Command Center key code на допустимый код. В журналах сервера есть структурированные записи о решениях протокола, автоматическом запуске итогового расчёта, административных запросах, отклонённых неавторизованных попытках и завершении расчёта.
Описание объединённой логики и процедура перехода со старой редакции Meeks Protocol приведены в ARCHITECTURE.md и MIGRATION.md.
Административные права
Администраторы всегда получают полный набор прав управления Survivor League. Учётным записям Moderator и Overseer через Sandbox Options можно выдать четыре независимых права, контролируемых сервером: просмотр оперативного статуса, управление результатами/архивом, повторная выдача награды и завершение сезона. По умолчанию доступен только просмотр статуса. Сервер заново проверяет права для каждой защищённой команды: скрытие вкладки или кнопки не является границей безопасности.
Обновление с версии 1.8.0
Замените клиентскую и серверную копии полным пакетом версии 1.10.9, затем перезапустите Project Zomboid и сервер. Существующие таблицы результатов, история сезонов и Sandbox-настройки остаются в схеме данных 2. В версии 1.10.9 сохранена защищённая сверка общего числа убийств и добавлен резервный механизм объявления о смерти для Build 42.
Установка
- Установите мод через Steam Workshop или скопируйте SurvivorLeagueCommunity в каталог модов Project Zomboid.
- Добавьте SurvivorLeagueCommunity в параметр Mods= конфигурации сервера.
- Настройте мод в разделе Survivor League меню Sandbox Options.
- Перезапустите сервер после изменения настроек.
- Идентификатор Workshop: 3784151798
- Идентификатор мода: SurvivorLeagueCommunity
- Требуется Project Zomboid Build 42.20 или новее.