Tagi przedmiotów pozwalają Steam wyświetlać użytkownikom okno dialogowe o nazwie „zaawansowane filtrowanie” podczas przeglądania przedmiotów, włączając w to widoki wyszukiwania w ekwipunku oraz na Rynku Społeczności Steam. Gracze mogą szybko zawęzić wyszukiwanie do przedmiotów o pewnej rzadkości lub odpowiednich tylko dla jakiejś klasy postaci.
Aby używać tagów, musisz najpierw zdefiniować kategorie i tagi bezpośrednio w definicjach przedmiotów, a następnie podać widoczne dla użytkowników zlokalizowane stringi po angielsku i we wszelkich innych językach, które planujesz wspierać. Tagi, które nie mają stringa lokalizacyjnego przynajmniej w języku angielskim, zostaną zignorowane przez funkcje ekwipunku.
Wartości używane w definicji przedmiotu powinny być krótkimi, prostymi tokenami tekstu. Te tokeny są używane jako klucz do identyfikacji stringów lokalizacyjnych dla każdego języka. Same tokeny nie są bezpośrednio pokazywane użytkownikom.
Lokalizacja tagów przedmiotu
Aby zdefiniowane dla przedmiotów tagi były widoczne dla użytkowników, musisz wprowadzić tłumaczenia, przynajmniej po angielsku, ale najlepiej we wszystkich obsługiwanych językach. Można to wykonać w ramach konfiguracji Steamworks na stronie
usługi ekwipunku dla twojej aplikacji.
Format tagów przedmiotów
Pole
tag
powinno zostać podane jako lista tokenów w kategoriach oddzielonych średnikiem.
Każdy token składa się z tokenu kategorii i tokenu wartości oddzielonego dwukropkiem.
<tag_list>: <tag_pair> { ";" <tag_pair> }
<tag_pair>: <category_token> ":" <tag_token>
Przykład tagów przedmiotów
"tags":"class:elf;farms:potato;rarity:legendary;type:character;handed:ambi"
...
"tags":"class:troll;farms:gold;rarity:common;type:character;handed:left"
Tagi indywidualne dla każdego przedmiotu
Kiedy przedmiot jest tworzony z definicji
generator
,
playtimegenerator
lub
bundle
, możesz przypisać mu tagi, które zachowa przez cały czas swojej obecności na Steam i które nie ulegną zmianie niezależnie od tego, czy zmieni on właściciela.
Te tagi są automatycznie przesyłane wraz z innymi atrybutami przedmiotu do klienta Steam i mogą zostać uzyskane przez wywołanie ISteamInventory::GetResultItemProperty() z nazwą właściwości „tags”. Tagi zostaną zwrócone w podanym buforze stringów i będą oddzielone
średnikiem
.
Prostym sposobem przypisania tagów jest określenie ich w definicji wygenerowanego przedmiotu — krótko mówiąc, cokolwiek znajdującego się w polu
tags
dla definicji przedmiotu
generator
lub
playtimegenerator
zostanie całkowicie skopiowane do dowolnego utworzonego przedmiotu.
Przykład
Generator A ma 10% szansy na stworzenie przedmiotu z „Generator Legendary” i 90% szansy na stworzenie elementu z „Generator Common”. Generator A stosuje również tag
color:red
. „Generator Legendary” stosuje tag jakości
quality: legendary
i tworzy przedmiot (miecz lub tarczę), podczas gdy „Generator Common” stosuje tag
quality:common
i także tworzy przedmiot (miecz lub tarczę).
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
Przypisać tagi możesz także za pomocą typu definicji przedmiotu
tag_generator
. W tej specjalnej definicji przedmiotu (która w rzeczywistości nie generuje przedmiotu) należy określić zestaw tagów do wyboru oraz ich prawdopodobieństwo. W definicji podmiotu
generator
,
playtimegenerator
lub
bundle
musisz skonfigurować pole
tag_generators
ze wszystkimi ID definicji przedmiotów wszystkich generatorów tagów. Te generatory tagów zostaną zastosowane do wszystkich kolejnych przedmiotów.
Przykład generatora tagów
Generator A tworzy tarczę lub miecz, stosuje tag
color:red
, a następnie dodaje do nowego przedmiotu „Tag Generator Quality” oraz „Tag Generator FX”. Prawdopodobieństwo, że generator tagów jakości doda tag
quality:legendary
to 10%, a
quality:common
to 90%. Generator tagów efektów ma równą szansę na dodanie tagów
fx:flames
,
fx:sparks
lub
fx:lasers
. Rezultatem może być: „Legendary Red Shield with Flames” lub „Common Red Sword with 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
Format pola
tag_generators
to lista wszystkich ID definicji przedmiotów należących do generatorów tagów, które mają zostać użyte, oddzielone średnikiem.
Dla definicji przedmiotów
tag_generator
musisz określić oba pola:
tag_generator_name
i
tag_generator_values
.
Pole
tag_generator_name
jest tym samym co token kategorii zdefiniowany powyżej.
Pole
tag_generator_values
jest listą tagów
tag_token:chance
oddzielonych średnikami. Jeśli prawdopodobieństwo zostanie pominięte, domyślnie wartość ta będzie równa 1.