Steamworks Belgeleri
Steam Envanteri Öğe Araçları
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.