เอกสาร Steamworks
เครื่องมือของไอเท็มสำหรับช่องเก็บของ Steam
คุณสามารถกำหนดรายการ "เครื่องมือ" ที่ใช้เพื่อแก้ไข แท็กของไอเท็มสำหรับช่องเก็บของ 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" ทั้งในรายการหรือคำนิยามรายการที่เกี่ยวข้อง เมื่อ "บันทึกสถิติการสังหาร" ถูกใช้กับฐานปล่อยจรวด คุณสมบัติแบบไดนามิก "สังหาร" จะสามารถตั้งค่าบนฐานปล่อยจรวดด้วยเช่นกัน