Гид

Плейлисты и голосование

Установите готовый плейлист

Репозиторий ElDewrito Server Hosting предлагает плейлисты для 0.7, включая Halo Online, Halo 3, ротации с модами и минимальный пример. Устанавливайте один выбранный плейлист на сервер: копирование всех плейлистов друг поверх друга не объединяет их.

  1. Остановите контейнер либо скрипт наблюдения Windows и сервер. Сохраните резервную копию autoexec.cfg и всего каталога data, особенно настроек, data/server и пользовательских вариантов. Сохраните существующие пакеты модов, необходимые для возврата прежней ротации.
  2. Клонируйте репозиторий или скачайте ZIP, затем распакуйте его.
  3. Сначала скопируйте содержимое 0. Stock maps and gametypes/data в каталог data сервера, объединяя папки. Это установит стандартные варианты карт и режимов, которые ожидают плейлисты.
  4. Затем скопируйте содержимое data выбранного плейлиста туда же, разрешив его файлам перезаписать прежнюю конфигурацию. На Linux это /opt/eldewrito/data; на Windows — data рядом с eldorado.exe. Не создавайте data/data и не копируйте один лишь voting.json, забыв необходимые варианты.
  5. Изучите получившийся data/server/voting.json и mods.json, если он есть; установите и проверьте указанный контент, как описано ниже. Замените Voting.SystemType 0 в autoexec.cfg следующим блоком, сохранив команды начальной карты и режима для первого матча:
Voting.JsonPath "data/server/voting.json"
Voting.SystemType 1
Voting.ReloadJson
  1. Запустите сервер, завершите первый матч и проверьте голосование, победившую карту, загрузку необходимых модов и повторное подключение. Проверьте задуманные сочетания карт и режимов, прежде чем делать ротацию публичной.

Для Windows в репозитории также есть бета-версия вспомогательного скрипта Get playlist #.ps1. Сохраните его рядом с eldorado.exe, замените # в имени файла числовым ID выбранной папки и запустите из PowerShell, рабочим каталогом которого является эта установка игры. Например, сохранив его как Get playlist 6.ps1, выполните & '.\Get playlist 6.ps1' для минимального примера. Изучите скачанный скрипт перед запуском и следуйте рекомендациям по политике выполнения PowerShell, если система его блокирует; не отключайте политику глобально ради установки плейлиста.

Скрипт скачивает текущий репозиторий, сначала принудительно копирует стандартные варианты, затем — выбранный плейлист. Он пишет в текущий рабочий каталог, не создаёт резервную копию и не включает голосование за вас. Ручная инструкция работает на обоих типах хостов и позволяет проще контролировать порядок перезаписи.

Добавьте небольшую ротацию с голосованием

Для небольшой ротации, которую удобно редактировать самостоятельно, начните с карт базовой игры. Справочник голосования описывает пользовательские варианты, ограничения совместимости карт, шаблоны, моды и плейлисты с вето. Можно также посмотреть data\server\voting.json.example, но не включайте его без изменений: один из примеров содержит лишнюю запятую в конце, что недопустимо в JSON.

  1. Остановите контейнер либо скрипт наблюдения Windows и сервер, затем сохраните следующий текст как data/server/voting.json в каталоге игры. Он предлагает Slayer на Guardian или Valhalla. Используйте внутренние идентификаторы карт, например riverworld для Valhalla, а не отображаемые названия.
{
  "maps": [
    { "displayName": "Guardian", "mapName": "guardian" },
    { "displayName": "Valhalla", "mapName": "riverworld" }
  ],
  "types": [
    { "displayName": "Slayer", "typeName": "Slayer" }
  ]
}
  1. В autoexec.cfg замените Voting.SystemType 0 следующим блоком. Сохраните команды начальной карты и режима для первого матча. Голосование также можно выбрать через Host Settings → Voting Mode → Vote.
Voting.JsonPath "data/server/voting.json"
Voting.SystemType 1
Voting.VoteOptionCount 2
Voting.DuplicationLevel 1
Voting.ReloadJson
  1. Запустите сервер, подключитесь и завершите первый матч. Убедитесь, что голосование предлагает только нужные пары карты и режима, а победивший матч загружается. Переподключитесь после перехода и повторите проверку после намеренного перезапуска.

Voting.SystemType равен 0 без голосования, 1 для голосования и 2 для вето. В примере используется уровень повторений 1, соответствующий Gametype or Map Can Repeat в интерфейсе, чтобы один режим Slayer мог появиться с двумя разными картами. Вето работает иначе и использует vetoPlaylist; простое переключение этого примера с двумя картами на вето не создаёт упорядоченный плейлист вето.

Безопасно чередуйте моды и пользовательские варианты

Рабочий пункт ротации — это совместимое сочетание пакета мода, базовой карты или варианта Forge и режима игры. Установите варианты на сервер по разделу «Пользовательский контент» и проверьте каждое сочетание в закрытой игре, прежде чем добавлять его в публичное голосование.

  • displayName — подпись в голосовании. mapName и typeName должны указывать контент, который сервер может загрузить; изменение подписи не переименовывает карту.
  • specificMaps у режима ограничивает его совместимыми картами. Это не позволяет специализированному режиму появляться на каждой карте из общего списка.
  • modPack у режима задаёт имя записи мода. data\server\mods.json сопоставляет имена внутри mods с объектом, содержащим package_url. Имя должно совпадать с записью голосования, а URL — вести на нужную версию пакета.
  • Server.ModsJsonFile выбирает список модов для автоматической загрузки пакетов при запуске. Путь по умолчанию — data\server\mods.json, а не data\server\server.json.
  • Используйте стабильный прямой URL загрузки пакета, которым имеете право делиться. Игроки должны скачивать файл без входа в учётную запись. Проверьте ссылку вне своей учётной записи и избегайте временных ссылок на вложения.
  • commands и endOfMatchCommands могут применять и отменять настройки отдельных режимов. В первом плейлисте избегайте переопределений; добавляя их позже, восстанавливайте настройки, которые должен унаследовать следующий матч, а не позволяйте состоянию перетекать между режимами.

ED Resurgence Voting JSON Builder создаёт файлы voting.json и mods.json для 0.7. При выборе папки вариантов укажите каталог data установки, содержащий map_variants и game_variants. Сохраните созданные файлы по путям, настроенным на сервере. Проверьте предложенные URL модов и каждый пакет перед добавлением в ротацию: некоторые ссылки могут устареть или больше не работать.