คุณสามารถกำหนดรายการ "เครื่องมือ" ที่ใช้เพื่อแก้ไข
แท็กของไอเท็มสำหรับช่องเก็บของ Steam ในรายการอื่น ๆ
ให้เรียก
ISteamInventory::ExchangeItems จากนั้นส่งผ่านทั้งเครื่องมือและรายการเป้าหมาย-- แท็กจะถูกโอนหรือสร้างขึ้น และรายการใหม่ (คัดลอกจากรายการเป้าหมาย) จะถูกสร้างขึ้น
แท็กเหล่านี้จะถูกส่งโดยอัตโนมัติพร้อมกับแอตทริบิวต์ของรายการอื่น ๆ ไปยังไคลเอนต์ Steam และสามารถเรียกคืนได้ โดยการเรียก ISteamInventory:: GetResultItemProperty () โดยใช้ชื่อคุณสมบัติ "แท็ก" แท็กจะถูกส่งกลับยังบัฟเฟอร์สตริงที่ให้มา และคั่นด้วย
;
อักขระ
ตัวอย่างง่าย ๆ
นี่คือตัวอย่างของเครื่องมือที่สามารถใช้ "ระบาย" สีไปยังรายการอื่น
ขั้นแรก คุณจำเป็นต้องมีคำนิยามรายการสำหรับเครื่องมือเสียก่อน โปรดทราบว่า คุณอาจต้องการลบแท็กออกโดยใช้คุณสมบัติ
tags_to_remove_on_tool_use
มิเช่นนั้นคุณอาจได้รับแท็กซ้ำซ้อนหรือแท็กหมวดหมู่บนรายการของคุณ หากมีการใช้เครื่องมือหลายอย่างกับแท็ก แท็กการจับคู่ใด ๆ จะถูกนำออกก่อนก่อนที่จะใช้แท็กใหม่ ๆ
itemdefid: 100
type: tag_tool
name: Red Paint Can
tags: paint_color:red
tags_to_remove_on_tool_use: paint_color
สำหรับรายการเป้าหมาย คุณจะต้องระบุว่ารายการนั้นสามารถใช้แท็ก "paint_color":
itemdefid: 200
type: item
name: Hat
allowed_tags_from_tools: paint_color
จากนั้นเรียกใช้
ISteamInventory::ExchangeItems ผู้ใช้สามารถใช้เครื่องมือ "กระป๋องสีแดง" บน "หมวก" ของพวกเขา และผลลัพธ์ของรายการนั้นควรมีแท็ก "paint_color: red " โปรดทราบว่า ไอดีคำนิยามไอเท็มที่คาดหวัง ควรตรงกับไอดีคำนิยามไอเท็มของไอเท็มเป้าหมาย
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 );
หากคุณต้องการมีเครื่องมือที่ใช้สำหรับลบแท็กออก คุณสามารถกำหนดคำนิยามของสิ่งของได้ดังนี้ "น้ำยาล้างสี" คุณควรเรียกใช้
ISteamInventory::ExchangeItems ในลักษณะเดียวกับที่อธิบายไว้ข้างต้น คำนิยามรายการของคุณควรจะมีชุดคุณสมบัติ
tags_to_remove_on_tool_use
itemdefid: 300
type: tag_tool
name: Paint Stripper
tags_to_remove_on_tool_use: paint_color
ตัวอย่างตัวสร้างแท็ก
คุณสามารถตั้งค่าเครื่องมือที่สามารถใช้แท็กจากคำนิยามรายการ
tag_generator
แทนการใช้สีแบบเฉพาะเจาะจง
itemdefid: 500
type: tag_generator
name: Tag Generator Paint
tag_generator_name: paint_color
tag_generator_values: red:33;blue:33;green:33;gold:1
itemdefid: 100
type: tag_tool
name: Random Paint Can
tag_generators: 500
tags_to_remove_on_tool_use: paint_color
จากนั้นเมื่อผู้ใช้ใช้เครื่องมือ "กระป๋องสีแบบสุ่ม" บน "หมวก" ของพวกเขา ให้เรียกใช้
ISteamInventory::ExchangeItems พวกเขาจะมีโอกาส 33% ที่จะได้รับ "สีแดง" "สีเขียว" หรือ "สีน้ำเงิน" และมีโอกาส 1% ที่จะได้รับ "สีทอง"
ตัวอย่างข้อจำกัดของคุณสมบัติแบบไดนามิก
คุณสามารถจำกัดการแก้ไขของ
คุณสมบัติแบบไดนามิก บางคุณสมบัติได้บนรายการที่ใช้แท็ก ด้วยเครื่องมือ
tag_tool
ตอนนี้คุณสามารถอนุญาตให้มีการตั้งค่าคุณสมบัติเหล่านั้นในรายการที่ก่อนหน้านี้จะไม่ได้รับอนุญาตหากรายการนั้นไม่มีแท็กที่กำหนดไว้ นี่คือตัวอย่างของรายการที่บันทึกการสังหารบนฐานปล่อยจรวด
itemdefid: 100
type: item
name: Rocket Launcher
itemdefid: 200
type: tag_tool
name: Kill Stat Tracker
tags: stat_tracker:kills
tags_to_remove_on_tool_use: stat_tracker:kills
การใช้ Steamworks API คุณสามารถให้ไคลเอ็นต์อัปเดตคุณสมบัติของฐานปล่อยจรวดสำหรับคุณสมบัติแบบไดนามิกได้ "สังหาร" อย่างไรก็ตามในการกำหนดค่าสำหรับคุณสมบัติแบบไดนามิก คุณสามารถจำกัด รายการที่มีแท็ก "stat_tracker" ทั้งในรายการหรือคำนิยามรายการที่เกี่ยวข้อง เมื่อ "บันทึกสถิติการสังหาร" ถูกใช้กับฐานปล่อยจรวด คุณสมบัติแบบไดนามิก "สังหาร" จะสามารถตั้งค่าบนฐานปล่อยจรวดด้วยเช่นกัน