Документация Steamworks
Метки предметов инвентаря Steam
Метки предметов позволяют Steam показать пользователям «дополнительные фильтры» при поиске предметов как в инвентаре
, так и на Торговой площадке. Игроки могут быстро сузить поиск до предметов определённой редкости или подходящих только для класса их персонажа.

inventory_tag_filtering.png
Для использования меток необходимо задать категории и метки напрямую в файле определений предметов, затем предоставить видимые пользователям
строки на английском и других языках, которые вы планируете поддерживать. Метки, у которых нет строки
на английском, будут проигнорированы функциями службы инвентаря.

Значения, используемые при определении предметов должны быть короткими, простыми текстовыми токенами. Эти токены используются как ключи для определения переведённых строк на каждый из языков. Сами токены пользователям напрямую не показываются.

Локализация меток предметов

После того, как вы определили метки предметов, для того, чтобы сделать их видимыми, необходимо создать их переводы,
по крайней мере на английский, но желательно — на все поддерживаемые языки. Всё это можно указать в настройках Steamworks на странице службы инвентаря приложения.

inventory_tag_localize.png

Формат меток предметов

Поле tag должно быть заполнено как список токенов по категориям, разделённым точкой с запятой.
Каждый токен состоит из токена категории и токена со значением, разделённых двоеточием.

<tag_list>: <tag_pair> { ";" <tag_pair> } <tag_pair>: <category_token> ":" <tag_token>

Пример меток предметов

"tags":"class:elf;farms:potato;rarity:legendary;type:character;handed:ambi" ... "tags":"class:troll;farms:gold;rarity:common;type:character;handed:left"

Попредметные метки


При создании предмета с помощью generator, playtimegenerator, или bundle, можно назначить для него метку, которая сохранится на всё время его существования и не изменится от перемены владельца.

Эти метки автоматически отправляются вместе с другими его свойствами клиенту Steam и могут быть возвращены посредством вызова ISteamInventory::GetResultItemProperty с названием свойства tags. Метки будут возвращены в предоставленном строковом буфере, разделённом точкой с запятой ;.

Простой способ назначить метки — указать их в генерируемом определении предмета, а всё содержимое поля tags для определения предмета generator или playtimegenerator будет полностью скопировано для созданного предмета.

Пример


Шансы генератора A создать легендарный предмет составляют 10%, а обычный предмет — 90%. Генератор A также применяет метку color:red. Генератор легендарного качества (Generator Legendary) применяет метку quality:legendary и создаёт предмет (меч или щит), тогда как генератор обычного качества (Generator Common) применяет метку quality:common и также создаёт предмет (меч или щит).

itemdefid: 10 type: item name: Sword itemdefid: 11 type: item name: Shield itemdefid: 100 type: generator name: Generator A bundle: 101x1;102x9 tags: color:red itemdef: 101 type: generator name: Generator Legendary bundle: 10;11 tags: quality:legendary itemdef: 102 type: generator name: Generator Common bundle: 10;11 tags: quality:common

Также метки можно назначить, используя тип определения предмета tag_generator. В этом особом определении предмета (который на самом деле не генерирует предметы) нужно указать набор меток для выбора и их вероятность. В определении предмета generator, playtimegenerator или bundle необходимо настроить поле tag_generators со всеми номерами определений предметов всех генераторов меток. Эти генераторы меток будут применены ко всем последующим предметам.

Пример генерации меток


Генератор A создаёт щит или меч, применяет метку color:red, а затем применяет генератор метки качества и эффекта к предмету. Вероятность того, что генератор метки качества добавит метку quality:legendary составляет 10%, метку quality:common — 90%. Генератор метки эффекта имеет одинаковые шансы применить метки fx:flames, fx:sparks или fx:lasers. В результате могут получиться: «легендарный красный щит с эффектом пламени или «обычный красный меч с лазерным эффектом».

itemdefid: 10 type: item name: Sword itemdefid: 11 type: item name: Shield itemdefid: 100 type: generator name: Generator A bundle: 10;11 tags: color:red tag_generators: 101;102 itemdefid: 101 type: tag_generator name: Tag Generator Quality tag_generator_name: quality tag_generator_values: legendary:1;common:9 itemdefid: 102 type: tag_generator name: Tag Generator FX tag_generator_name: fx tag_generator_values: flames;sparks;lasers

Форматом поля tag_generators является список всех номеров определений предметов генераторов меток, которые вы хотите применить, разделённых точкой с запятой.

Для определений предметов tag_generator вам понадобится указать поля tag_generator_name и tag_generator_values.

Поле tag_generator_name аналогично токену категории, описанному выше.

Поле tag_generator_values — это список tag_token:chance, разделённых точкой с запятой. Если вероятность опущена, по умолчанию она будет равна 1.