Diğer öğelerde yer alan
Steam Envanteri Öğe Etiketleri değiştirmek için kullanabileceğiniz "araç" öğelerini tanımlayabilirsiniz.
ISteamInventory::ExchangeItems çağrısı kullandıktan sonra hem araç hem de hedef öğe etiketlerini göndererek, transfer edilen veya oluşturulan yeni bir öğe (hedef öğeden kopyalanan) yaratılacaktır.
Bu etiketler diğer öğe özellikleri ile birlikte Steam İstemcisine gönderilir. Ve öğe ismi "tags" ile birlikte ISteamInventory::GetResultItemProperty() çağrısı yapılarak getirilebilir. Etiketler sağlanan dize alanında getirilecektir ve
;
karakteri ile sınırlanır.
Basit Örnek
Aşağıda başka bir öğeye bir "boya" rengi uygulayabilen bir aracın örneğini bulabilirsiniz.
İlk olarak, araç için bir öğe tanımına ihtiyacınız olacak.
tags_to_remove_on_tool_use
özelliğini kullanarak etiketleri kaldırmak isteyebileceğinizi unutmayın. Öbür türlü, eğer öğeniz üzerinde birden fazla araç uygulanmış ise öğenizde kopya etiketler veya etiket kategorileri alabilirsiniz. Yenileri uygulanmadan önce eşleşen etiketler ilk olarak kaldırılacaktır.
itemdefid: 100
type: tag_tool
name: Kırmızı Boya Kutusu
tags: paint_color:red
tags_to_remove_on_tool_use: paint_color
Hedef öğe üzerinde, "paint_color" etiketini alabileceğini belirtmeniz gerekmektedir:
itemdefid: 200
type: item
name: Şapka
allowed_tags_from_tools: paint_color
Daha sonra
ISteamInventory::ExchangeItems çağrısı kullanılarak bir kullanıcı "Kırmızı Boya Kutusu" aracını "Şapka" öğelerine uygulayabilir. Ve böylece öğe "paint_color:red" etiketine sahip olmalı. Beklenen öğe tanım kimliği ile hedef öğenin öğe tanım kimliğinin eşleşmesi gerektiğini unutmayın.
SteamItemInstanceID_t inputItems[2] = { unPaintCanItemDefID, unHatItemDefID };
uint32 inputQuantities[2] = { 1, 1 };
SteamItemDef_t outputItems[1] = { unHatItemDefID };
uint32 outputQuantity[1] = { 1 };
SteamInventoryResult_t resultHandle;
SteamInventory()->ExchangeItems( &resultHandle, outputItems, outputQuantity, 1, inputItems, inputQuantities, 2 );
Sadece bir etiketi kaldıran bir araç istiyor iseniz, şuna benzer bir tanımlama yapabilirsiniz. "Boya Çıkarıcı." Yukarıda belirtilen şekilde
ISteamInventory::ExchangeItems çağrısını uygulamalısınız. Öğe tanımınızın sadece
tags_to_remove_on_tool_use
özelliği ile ayarlanmış olması gerekli.
itemdefid: 300
type: tag_tool
name: Paint Çıkarıcı
tags_to_remove_on_tool_use: paint_color
Etiket Oluşturucu Örneği
Belirli bir boya rengi yerine, bir
tag_generator
öğe tanımından etiketler uygulanmasını sağlayan bir araç kullanabilirsiniz.
itemdefid: 500
type: tag_generator
name: Etiket Oluşturucu Boya
tag_generator_name: paint_color
tag_generator_values: red:33;blue:33;green:33;gold:1
itemdefid: 100
type: tag_tool
name: Rastgele Boya Kutusu
tag_generators: 500
tags_to_remove_on_tool_use: paint_color
Bu aşamadan sonra ne zaman bir kullanıcı
ISteamInventory::ExchangeItems çağrısını kullanarak "Şapka" öğelerine "Rastgele Boya Kutusu" aracını uyguladığında %33'lük bir şans ile "kırmızı", "yeşil", veya "mavi" ve %1 şans ile "altın" renkleri alabilirler.
Dinamik Özellikleri Kısıtlama Örneği
Etiketler kullanarak bir öğe üzerindeki belirli
dinamik özelliklerin değişikliklerini kısıtlayabilirsiniz. Bir
tag_tool
aracı ile artık bu özellikleri, daha önceden gerekli etiketlere sahip olmadığı zaman izin verilmeyen öğelere uygulanması için bu özelliklere izin verebilirsiniz. Aşağıda bir roketatarın aldığı leşlerin sayısını tutan bir öğe örneğini bulabilirsiniz.
itemdefid: 100
type: item
name: Roketatar
itemdefid: 200
type: tag_tool
name: Leş İstatistik İzleyicisi
tags: stat_tracker:kills
tags_to_remove_on_tool_use: stat_tracker:kills
Steamworks API kullanarak istemcinin Roketatarın dinamik özelliği "leşler" üzerindeki güncellemeleri yapmasını sağlayabilirsiniz. Fakat, o dinamik özellik ayarı için "stat_tracker" etiketinin ya öğe üzerinde ya da ilişkili öğe tanımı üzerinde olmasını kısıtlayabilirsiniz. "Leş İstatistik İzleyicisi" Roketatar üzerinde uygulandığı zaman, dinamik özellik "leşler", Roketatar üzerinde de uygulanabilir.