Dokumentacja Steamworks
Tagi przedmiotów w Ekwipunku Steam
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.

inventory_tag_filtering.png
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.

inventory_tag_localize.png

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.