Tài liệu Steamworks
Nhãn vật phẩm kho đồ Steam
Nhãn vật phẩm cho phép Steam hiển thị hộp thoại "Bộ lọc nâng cao" của vật phẩm đến người dùng, kể cả kho đồ
và hiển thị tìm kiếm trên chợ cộng đồng. Người chơi có thể nhanh chóng thu hẹp tìm kiếm theo độ hiếm của vật phẩm, hoặc chỉ vật phẩm mà lớp nhân vật của họ dùng được.

inventory_tag_filtering.png
Để dùng nhãn, đầu tiên cần định nghĩa thể loại và nhãn trực tiếp vào Item Definition, rồi cung cấp
các chuỗi bằng tiếng Anh hoặc bản dịch cho bất kỳ ngôn ngữ nào khác bạn định hỗ trợ. Nhãn nếu không có tối thiểu chuỗi bản địa hóa
bằng tiếng Anh thì sẽ bị tính năng kho đồ phớt lờ.

Giá trị được dùng trong định nghĩa vật phẩm phải là các token chữ đơn giản, ngắn gọn. Các token này được dùng làm key để xác định chuỗi bản địa hóa trong mỗi ngôn ngữ. Token sẽ không bao giờ hiện trực tiếp tới người dùng.

Bản địa hóa nhãn vật phẩm

Sau khi định nghĩa nhãn cho vật phẩm, để làm chúng hiển thị tới người dùng, bạn phải cung cấp bản dịch để người dùng đọc,
tối thiểu phải có tiếng Anh, nhưng nếu được hãy có cho tất cả ngôn ngữ được hỗ trợ. Đây có thể là một phần thiết lập SteamWorks của bạn, trên trang dịch vụ kho đồ cho ứng dụng.

inventory_tag_localize.png

Định dạng nhãn vật phẩm

Trường tag nên được cung cấp dưới dạng các token đã phân loại, phân tách bằng ký tự ";".
Mỗi token chứa một token thể loại và token giá trị, phân tách bởi ký tự ":".

<tag_list>: <tag_pair> { ";" <tag_pair> } <tag_pair>: <category_token> ":" <tag_token>

Ví dụ về nhãn vật phẩm

"tags":"class:elf;farms:potato;rarity:legendary;type:character;handed:ambi" ... "tags":"class:troll;farms:gold;rarity:common;type:character;handed:left"

Nhãn theo từng vật phẩm


Khi một vật phẩm được tạo từ generator, playtimegenerator, hay bundle, bạn có thể gán các nhãn mà vật phẩm sẽ giữ suốt toàn bộ vòng đời và giữ nguyên dù nhiều lần đổi chủ.

Các nhãn này được tự động gửi cùng các thuộc tính khác của vật phẩm đến phần mềm Steam và có thể lấy bằng cách gọi ISteamInventory::GetResultItemProperty() với tên property "tags". Các nhãn sẽ được trả về trong bộ nhớ đệm chuỗi được cung cấp, phân tách bởi ký tự ;.

Cách đơn giản để gán nhãn là định nghĩa chúng trong định nghĩa tạo vật phẩm--cơ bản là bất cứ thứ gì trong định nghĩa vật phẩm của trường tags cho generator hay playtimegenerator sẽ được chép qua toàn bộ lên bất kỳ vật phẩm nào được tạo.

Ví dụ


Generator A có 10% tỉ lệ tạo một vật phẩm từ Generator Legendary, và 90% tỉ lệ tạo một vật phẩm từ Generator Common. Generator A đồng thời cũng áp dụng nhãn color:red. Generator Legendary áp dụng nhãn quality:legendary và tạo vật phẩm kiếm hoặc khiên, trong khi Generator Common áp dụng nhãn quality:common và đồng thời cũng tạo vật phẩm kiếm hoặc khiên.

itemdefid: 10 type: item name: Sword itemdefid: 11 type: item name: Shield itemdefid: 100 type: generator name: Generator A bundle: 101x1;102x9 tags: color:red itemdef: 101 type: generator name: Generator Legendary bundle: 10;11 tags: quality:legendary itemdef: 102 type: generator name: Generator Common bundle: 10;11 tags: quality:common

Một cách khác để gán nhãn là dùng loại định nghĩa vật phẩm tag_generator. Trong định nghĩa vật phẩm kiểu đặc biệt này (mà không thực sự tạo vật phẩm) bạn sẽ định nghĩa một nhóm nhãn để chọn và xác suất của chúng. Trong định nghĩa vật phẩm generator, playtimegenerator, hay bundle, bạn sẽ cần đặt trường tag_generators với các id định nghĩa vật phẩm từ tất cả bộ tạo nhãn. Các bộ tạo nhãn này sẽ áp dụng lên toàn bộ các vật phẩm ở dưới.

Ví dụ về bộ tạo nhãn


Generator A tạo kiếm hoặc khiên, áp dụng nhãn color:red, và rồi áp dụng Tag Generator Quality (bộ tạo nhãn chất lượng) và Tag Generator FX (bộ tạo nhãn FX) lên vật phẩm mới. Tag Generator Quality có 10% cơ hội thêm nhãn quality:legendary và 90% tỉ lệ áp dụng nhãn quality:common. Tag Generator FX có ngang tỉ lệ tạo nhãn fx:flames, fx:sparks, hoặc fx:lasers. Cuối cùng kết quả có thể là "Legendary Red Shield with Flames" hoặc "Common Red Sword with Lasers."

itemdefid: 10 type: item name: Sword itemdefid: 11 type: item name: Shield itemdefid: 100 type: generator name: Generator A bundle: 10;11 tags: color:red tag_generators: 101;102 itemdefid: 101 type: tag_generator name: Tag Generator Quality tag_generator_name: quality tag_generator_values: legendary:1;common:9 itemdefid: 102 type: tag_generator name: Tag Generator FX tag_generator_name: fx tag_generator_values: flames;sparks;lasers

Định dạng cho trường tag_generators là danh sách toàn bộ các id định nghĩa vật phẩm của bộ tạo nhãn mà bạn muốn áp dụng, phân tách bởi ký tự ";".

Với định nghĩa vật phẩm tag_generator, bạn sẽ muốn định nghĩa cả trường tag_generator_nametag_generator_values.

Trường tag_generator_name là cùng một thứ với token thể loại được định nghĩa ở trên.

Với trường tag_generator_values, đó là một danh sách các tag_token:chance phân tách bởi ký tự ";". Nếu không có tỉ lệ thì mặc định là 1.