Пакеты

Общие сведения

Все пакеты лежат в папке packages/ в основной папке игры.

Каждый пакет находится в своей папке. Идентификатор пакета записан в файле .info.

Ресурсы пакета разделены по принципу использованию на две основные секции.

Название секцииОписание

global

Ресурсы секции 'global' применяются один раз при запуске приложения и при включении/выключении пакетов в настройках игры.

В этой секции находятся ресурсы:

  • файлы интерфейса front-end

  • звуки,

  • музыка,

  • видео,

  • карты

scene

Ресурсы секции 'scene' применяются перед началом загрузки сцены, при создании новой сессии или в процессе подключения к сессии.

Локализация

В пакетах поддерживается локализация. Локализируемые ресурсы размещаются в папках .lang/, где lang - код языка (обычно двухсимвольный).

Настройка свойств пакета

Свойства пакета задаются параметрами в файле .info, который находится в корне папки пакета.

ПараметрОписание

id

Уникальный идентификатор пакета. Если пакет является Steam DLC или Steam Workshop, то идентификатор назначается Steam. При создании пакета через интерфейс раздела "Настройки" уникальный идентификатор назначается автоматически. В других случаях рекомендуется использовать любой подходящий GUID-генератор (например, http://www.guidgen.com/).

legacy_id

Параметр id заменяется на legacy_id в процессе присвоения пакету Steam DlcId или WorkshopId. Значение параметра берется из параметра id. Таким образом, старые ссылки (например, save game) будут идентифицировать пакет

name

Название пакета. Не обязательный параметр. Если не задан, то в качестве названия берется папка, в которой лежит пакет. В случае Steam DLC игнорируется.

author

Автор пакета. Не обязательный параметр. Отображается в свойствах пакета.

order

Порядок в списке пакетов.

Значение параметра может быть как положительным, так и отрицательным. Влияет на порядок в списке, в котором пакеты отображаются в настройках. По умолчанию равен 0 и отображается самым верхним в списке пакетов.

default_disabled

Пакет по умолчанию будет отключен, пока игрок не активирует его в "Настройках игры". Если параметр не задан, то как только пакет будет установлен, он считается включенным.

hidden

Пакет не отображается в настройках. По умолчанию пакеты отображаются в настройках.

dependency <id пакета>

Зависимость от другого пакета. Блок с параметром dependency может быть использован многократно для создания множественных зависимостей. Пакеты применяются в том порядке, в котором записаны блоки.

incompatible <id пакета>

Указывает на несовместимость с пакетом. Игра будет отключать пакет с указанным id при активации пакета.

min_core_version <count> max_core_version <count>

Минимальная и максимальная версии игры, для которых поддерживается совместимость пакета. Если параметры не указаны, то соответствующая проверка отсутствует.

delete_global

Список виртуально удаляемых ресурсов при активации секции 'global'.

delete_scene

Список виртуально удаляемых ресурсов при активации секции 'scene'.

always_activate_scene

Всегда активировать секцию 'scene' этого пакета если активна секция 'global'. По умолчанию секция 'scene' активируется, если загружается карта, которая находится в секции 'global' этого пакета.

always_activate_global

Означает, что данный пакет изменяет глобальные игровые настройки (т.е. этот пакет будучи включенным всегда отмечается в списке при создании хоста, в сохранении игры и т.п.).

sign

Цифровая подпись.

Только для пакетов, выпущенных компанией Best Way.

Пакеты, имеющие такую подпись не допускают какой-либо модификации.

Если подпись не подтверждается, то пакет считается испорченным и не загружается.

token_count

Количество токенов, которые дает данный пакет.

Токены могут быть присвоены только пакетам, выпускаемым компанией Best Way.

token_sign

Цифровая подпись для токенов. Если подлинность не подтверждается, то токены игнорируются.

hash

Значение параметра hash позволяет предварительно определять, что содержимое пакета одинаковое у разных пользователей и на сервере при игре совместно.

Значение параметра hash автоматически обновляется при публикации в пакета в Workshop

obsolete

Позволяет скрыть ресурсы пакета (объекты и текстуры) в списках доступных ресурсов в редакторе.

client_only

Содержимое пакета доступно только на клиенте, не подгружается на сервер и не влияет на игровой процесс.

Пример содержимого файла .info
{id "cc507d63-2143-4598-99de-237a5ea5e621"}
{name "Пример Пакета"}
{order 1}
{dependency "02f8e8f9-91d9-45e0-8ee6-dc56adae4763"}; main package
{min_core_version 1.030}; требуется версия игры не меньше чем 1.030
{default_disabled}
{author "Created by Best Way, at Mon Apr 15 16:39:49 2024"}

Конфликты и их разрешение

Если один и тот же ресурс модицифируется больше, чем одним пакетом, возникает конфликт.

Разрешение конфликтов происходит благодаря заданию нужной последовательности подключения пакетов с помощью блоков с параметром dependency.

Результат модификации ресурсов зависит от того, в каком порядке будут применяться пакеты.

Пример задания последовательности активации пакетов с помощью блока dependency
{id "cc507783-2143-4598-99de-237a5ea5e621"}
{name "Веселые игры"}
{order 0}
{dependency "02f8e8f9-91d9-45e0-8ee6-dc56adae4763"}; main package
{default_disabled}
{ dependency “c32d8b45-92fe-44f6-8b61-42c2107dfe87”}; Id [A]
{ dependency “ab5f568d-552a-42f9-9983-70f02cda4c5b”}; Id [D]
{ dependency “2e4cac11-d58b-48ca-9ab9-aee01de80ec4”}; Id [C]
{ dependency “516cf25f-f659-4d7a-bddc-41f1043145f5”}; Id [B]
{author "Created by username, at Mon Apr 17 16:39:49 2024"}

Пакет качестве базовых ресурсов использует пакет main и требует активации пакетов А, В, С и D С помощью последовательного перечисления блоков dependency задана требуемая последовательность подключения пакетов А, В, С , D для корректной работы мода "Веселые игры"

Примеры параметров свойств пакета

Пример блокаПоясненияДополнительно

{order -100}

опустить пакет ниже в списке пакетов на 100 пунктов

{order +4000}

поднять пакет выше в списке пакетов на 4000 пунктов

{default_disabled}

состояние по умолчанию "отключен"

то же самое, что и {default_disabled 1}

{hidden 0}

пакет отображается в списке пакетов

{hidden}

пакет не отображается в списке пакетов

то же самое, что и {hidden 1}

{dependency "b86c6020-9b25-4659-bcdf-53b12715a0a1"}

пакет зависит от пакета с id "b86c6020-9b25-4659-bcdf-53b12715a0a1"

{delete_global "/map/single/2-fra" "/video/menu.avi"}

при загрузке секции global игнорировать папку /map/single/2-fra и файл /video/menu.avi

{delete_scene "/entity/service/flag"}

при загрузке секции scene игнорировать объект flag из папки /entity/service/

Last updated