Steamworks-Dokumentation
Steam-Inventar: Gegenstandszubehör
Zubehör für Gegenstände ermöglichen es Spielern, diese in Ihrem Spiel zu verändern und gewöhnliche Gegenstände in wertvolle, interessante und einzigartige Versionen zu verwandeln.

Angebrachtes Zubehör wird in der Inventaransicht in der Community sichtbar und erstellt „eindeutige“ (nicht verbrauchbare) Gegenstandseinträge, wenn sie auf dem Steam-Communitymarkt angeboten werden.

Sie haben freie Wahl, welche Arten Zubehör Sie unterstützen und welche kosmetischen oder Gameplay-Effekte diese haben könnten. Sie haben auch die Wahl, verschiedene Arten von Zubehör für verschiedene Arten von Gegenständen in Ihrem Spiel zu unterstützen.

backpackcomic_resize30.png

Als Beispiel sehen wir uns die Definition eines bekannten Zubehörartikels an – Aufkleber.

Unique_backpack.png

Der Präfix „einzigartig“ wird in diesem Beispiel automatisch hinzugefügt.

Gegenstände als von Benutzern anpassbar markieren

Spieler können nur Gegenstände mit Zubehör versehen, die von Ihnen explizit als für diese Art Zubehör konfiguriert sind. Aktualisieren Sie die ItemDef (Artikeldefinition) mit der Eigenschaft „accessory_tag“, um einen Gegenstand als anpassbar zu markieren. Der Wert der Eigenschaft ist ein Kategorie-Token pro Gegenstand-Tag.

Beispiel:
"accessory_tag": "sticker",

Für diese ItemDef ist die Kategorie des Gegenstand-Tags „Aufkleber“ und wird als angebrachter Zubehör behandelt. Der Wert des Gegenstand-Tags pro Artikel ist dann die ItemDefID des Zubehörartikels.

Bitte beachten Sie, dass Artikel einen Gegenstand-Tag für immer behalten, auch wenn sich der Besitzer ändert.

Wie im Beispiel oben dargestellt, kann ein Gegenstand mit mehreren Zubehörartikeln versehen werden. Mit der Eigenschaft „accessory_limit“ können Sie die Anzahl für den jeweiligen Gegenstand einschränken:

"accessory_limit": 3,

Der Standardgrenzwert ist 4. Höhere Grenzwerte werden nicht empfohlen.

Wenn ein Gegenstand im Spiel verändert werden kann, finden Sie die zugehörigen Zubehörartikel über den jeweiligen Gegenstand-Tag. (Rufen Sie hierzu die SDK-Methode ISteamInventory::GetResultItemProperty() mit dem Eigenschaftsnamen „tags“ auf.)

Definition eines Zubehörartikels

Da es sich bei jedem Zubehörartikel eigentlich um eine ItemDef handelt, können Sie dessen Erscheinungsbild, darunter auch die wichtige Eigenschaft icon_url und lokalisierte Bezeichnungen, mit den bestehenden Werkzeugen definieren.

Die generierte Beschreibung des angepassten Gegenstands verwendet die Informationen aus der ItemDef. Wenn Sie die ItemDef ändern, wird das sich bereits im Inventar von Spielern befindliche Zubehör ebenfalls aktualisiert.

Eine simple Aufkleberdefinition:
{ "appid": 480, "name": "Blauer Stern", "description": "Ein Aufkleber eines blauen Sterns mit mysteriösen Kräften", "icon_url": ...

Einmal verwendbare Zubehörartikel erstellen

Zum Hinzufügen von Zubehörartikeln kann jede Methode verwendet werden, die einen Gegenstand-Tag pro Artikel hinzufügt. Besonders interessant ist die Definition eines verbrauchbaren Zubehörartikels, den Spieler verdienen oder kaufen, handeln und dann verwenden können.

Diese Funktionalität wird vom Gegenstandstyp „tag_tool“ bereitgestellt. Der Typ „tag_tool“ wird zur Modifikation des gewünschten Gegenstands verbraucht.

Um tag_tool zu aktivieren, muss zunächst der Zubehör-Tag des veränderbaren Gegenstands aktiviert werden (in diesem Beispiel ein Rucksack):
{ "appid": 480, "itemdefid": 2000, "type": "item", "name": "Alltagsrucksack", "description": "Ein guter Ort, um Dinge aufzubewahren, mit viel Platz für Aufkleber.", "icon_url":..., "accessory_tag": "sticker", "accessory_limit": 3, "allowed_tags_from_tools": "sticker" }

Jeder Aufklebertyp wird mit „type“ als „tag_tool“ festgelegt erstellt. Das Tag-Werkzeug übernimmt den Zubehör-Tag mit der ItemDef dieses Aufklebers als Argument. Die ItemDef Ihres Aufklebers sieht also folgendermaßen aus:
{ "appid": 480, "itemdefid": 1001, "name": "Blauer Stern", "description": "Ein Aufkleber eines blauen Sterns mit mysteriösen Kräften", "price_category": "1;VLV25", "icon_url"..., "type": "tag_tool", "tags": "sticker:1001", }

Beachten Sie, dass der Wert „tags“ den gewünschten Artikel mit der ItemDef-ID des Aufklebers versieht.

Beachten Sie bitte außerdem, dass Zubehörartikel alle normalen Inventaraktionen und Gegenstandsfundmethoden unterstützen, darunter auch die Definition von Preiskategorien und der Verkauf im Gegenstandsshop.

Verwendung von Zubehörartikeln

Rufen Sie die Methode https%3A//partner.steamgames.com/doc/api/ISteamInventory#ExchangeItems (Herstellen) in der Steamworks-SDK auf, um einen Aufkleber zu applizieren (oder verwenden Sie die Web-API eines Servers Ihres Vertrauens). Übergeben Sie den Aufkleber und den veränderbaren Gegenstand als Materialien und legen Sie einen mit dem ursprünglichen veränderbaren Artikel identischen Ziel-ItemDef-Typ fest. Dadurch wird tag_tool angewendet und das Ziel aktualisiert.

Bei einer gültigen Anfrage verbraucht der Aufruf ExchangeItems den Sticker atomar und aktualisiert die Tags des entsprechenden Gegenstands.

Gegenstand-Tags pro Artikel können auch auf andere Weise festgelegt werden, wie z. B. durch Gegenstandsgeneratoren. Mehr dazu finden Sie auf dieser Seite: Gegenstand-Tags.

Lokalisierung und Erscheinungsbild

Zubehörartikel werden automatisch in der Web-Ansicht gerendert, auch im Rucksack des Benutzers und im Communitymarkt. Die Beschreibung enthält eine kleine Version des Symbols für jeden angehängten Zubehörartikel und listet die lokalisierten Namen jedes Zubehörartikels auf.

Gegenstandsnamen werden wie immer lokalisiert, indem Sie Werte im ItemDef-Schema bereitstellen.

Weitere Informationen dazu, wie Sie lokalisierte interne Namen bereitstellen können finden Sie unter „Gegenstand-Tags“ auf der Steamworks-Inventardienstseite. In unserem Beispiel wird der interne Name „Aufkleber“ einfach in allen unterstützten Sprachen „Aufkleber“ zugeordnet.

Sie können auch eine gesonderte Beschreibung angeben, die vor der oben erwähnten speziellen Beschreibung angezeigt wird. Legen Sie einfach eine accessory_description_<language> API-Sprachcode-Eigenschaft für Ihre Gegenstandsbeschreibung fest. In Kombination mit dynamischen Eigenschaften können Sie Tokens bestimmen, die mit dynamischen Eigenschaftswerten ersetzt werden.

Beispiel:


Wenn die dynamische Eigenschaft num_times_stickered der Gegenstandsinstanz (an die der Zubehörartikel „Sticker“ angehängt ist) auf 123 festgelegt ist, geben Sie Folgendes in der Gegenstandsbeschreibung des Stickers an:

{ "accessory_description_german": "Sticker wurden %num_times_stickered% Mal angewendet." }

Hierdurch wird der folgende Text in der Webansicht ausgegeben:

Sticker wurden 123 Mal angewendet.

Zubehörartikel entfernen oder ersetzen

Ein einmal verbrauchter Zubehörartikel kann nicht durch Entfernen von dem modifizierten Gegenstand wiederhergestellt werden. Natürlich können Zubehörartikel an sich entfernt werden. Weitere Informationen hierzu finden Sie in der Dokumentation zur Entfernung von Tags bei Gegenständen.

Wir empfehlen, ggf. ein tag_tool bereitzustellen, mit dem Nutzer Zubehör zum Zwecke der Modifizierung entfernen können.

Denselben Zubehörartikel zweimal auf denselben Gegenstand anzuwenden, wird aktuell nicht unterstützt. Der Versuch schlägt im Aufruf „ExchangeItems“ fehl und verbraucht den Zubehörartikel nicht.