堆疊
Economy v2 現已正式推出。如需支援與意見反應,請前往 PlayFab 論壇。
Id 的物品可以儲存為多個物品堆疊,每個堆疊都有自己的數量,並以 StackId 區分。若未指定,庫存動作通常會使用 StackId 為 default 的預設堆疊。預設堆疊可以刪除。下次在沒有 StackId (或使用預設 StackId) 的情況下進行新增/轉移時,就會重新建立預設堆疊
管理庫存與堆疊
以下詳細說明庫存 API 及其與堆疊的互動。新增庫存物品
在AddInventoryItems API 中,您可以在 Item 參數中定義 StackId。此參數定義要增加的堆疊,或要建立的新堆疊 ID。
含有 StackId 的 AddInventoryItems 要求範例:
NewStack;若 NewStack 已存在,則會在其中增加 5
減少庫存物品
在SubtractInventoryItems API 中,StackId 用於定義要從哪個堆疊減少。此外,還可以設定 DeleteEmptyStacks 布林值,若減少的數量導致堆疊數量為 0,就會刪除該堆疊。
嘗試從堆疊減少超過目前堆疊數量的數量時,會擲回錯誤。
含有 StackId 的 SubtractInventoryItems 要求範例:
NewStack 的堆疊減少 5,若該堆疊的數量剛好為 5,則會刪除該堆疊。
更新庫存物品
在UpdateInventoryItems API 中,您可以在 Item 參數中定義 StackId。此參數定義要更新的堆疊,或要建立的新堆疊 ID。
UpdateInventoryItems 要求範例:
NewStack;若 NewStack 已存在,則會將其數量設定為 5
刪除庫存物品
DeleteInventoryItems API 用於從玩家的庫存中刪除整個物品堆疊。可以提供 StackId 來定義要刪除的特定物品堆疊。
DeleteInventoryItems 要求範例:
購買庫存物品
PurchaseInventoryItems API 會使用目錄中定義的物品價格,從玩家的庫存中扣除費用,並換取所需數量的物品。您必須指定要購買的 Item 以及要購買的物品 Amount。
使用堆疊進行購買時,有幾個相關參數:
- 對於
PriceAmounts,您可以為每個價格物品 (也就是要花費的物品) 定義選用的StackId,以定義要從哪個堆疊扣除花費的物品 - 對於
Item物件,您可以定義選用的StackId,代表接收的物品要放入的堆疊 - 可以設定
DeleteEmptyStacks布林值,若減少的數量導致堆疊數量為 0,就會刪除該堆疊。
如需購買物品的詳細資訊,請參閱 PurchaseInventoryItems。
PurchaseInventoryItems 要求範例:
轉移庫存物品
搭配堆疊使用TransferInventoryItems API 時,有幾個相關參數:
- 在
GivingItem物件中,您可以定義選用的StackId,代表給出的物品要從哪個堆疊取出 - 在
ReceivingItem物件中,您可以定義選用的StackId,代表接收的物品要放入的堆疊 - 可以設定
DeleteEmptyStacks布林值,若GivingItem的數量導致堆疊數量為 0,就會刪除該堆疊
TransferInventoryItems 要求範例:
ExecuteInventoryOperations API
您可以在ExecuteInventoryOperations API 的 Operation 物件中使用 StackId 和 DeleteEmptyStacks 參數。這些參數可讓您使用堆疊批次處理多個庫存作業。
含有堆疊的 ExecuteInventoryOperations 要求範例:
使用 DisplayProperties 和 NewStackValues 新增自訂屬性
您可以使用DisplayProperties 參數為庫存物品設定自訂物品屬性。設定屬性可以在 AddInventoryItems、PurchaseInventoryItems 和 TransferInventoryItems API 中進行,但只有在建立新堆疊時才能設定。若要為新物品設定顯示屬性,必須在 API 要求中設定 NewStackValues 參數。
含有 NewStackValues 的 AddInventoryItems 要求範例:
UpdateInventoryItems API 直接修改屬性。