建立多欄排行榜定義
要開始此範例,我們需要建立比先前更複雜的排行榜定義。 我們將定義多個欄來對應遊戲的關鍵面向:擊殺、助攻和死亡。 下列範例示範如何使用 C# SDK 建立排行榜定義。SizeLimit:此參數用於限制排行榜可擁有的列數。此處的值僅為範例。VersionConfiguration:此參數可讓我們為排行榜進行版本控制。如需詳細資訊, 請參閱此頁面:季節性排行榜Columns:此參數可讓我們定義多個欄,每個定義最多 5 個。如您所見,我們設定了 Eliminations、Assists 和 Deaths。 這裡的一個重要元素是SortDirection參數,可讓我們決定排行榜的排序方式。 在此範例中,擊殺和助攻次數較多 (SortDirection = Descending) 且 死亡次數較少 (SortDirection = Ascending) 的玩家,排名會較高。
使用外部實體
排行榜服務可作為獨立元件使用,支援使用僅在遊戲情境中才有意義的外部實體。如果您的玩家身分識別未與 PlayFab 登入繫結,您仍然可以使用排行榜服務。PlayFab 系統之外的排行榜項目,其實體類型必須是 external。entityId 則是玩家在您系統中的身分識別。在這些情況下,排行榜上的所有項目都必須是 external 實體。將資料新增至排行榜
現在我們已經建立了排行榜,接下來要新增資料。與先前此主題的教學課程主要的差異在於, 現在我們需要在同一列中新增三個不同的分數。下列範例示範如何使用 C# SDK 將資料新增至排行榜。從排行榜擷取資料
現在我們將了解查詢排行榜的不同方式。每種方式都有其特定用途,目的是 協助開發人員取得他們需要在遊戲中顯示的玩家。取得實體周圍的排行榜
這種查詢排行榜的特定方式,可讓我們取得接近特定實體的排行榜區段。這種情境的實際 應用是,當我們有一個龐大的排行榜,而只想向遊戲中的活躍玩家 顯示相關資訊時。如果玩家位於第 1000 名,我們可以顯示其附近的玩家,而非排名最前面的玩家。 下列範例示範如何使用 C# SDK 查詢實體周圍的排行榜。MaxSurroundingEntries,可讓我們從排行榜中擷取排名在特定實體
周圍的實體。例如,如果我們有一位位於第 100 名的玩家,而我們使用
MaxSurroundingEntries = 20,則會擷取第 90 名到第 110 名的玩家。如果玩家位於排行榜的
頂端,則會擷取前 20 名的結果。如果玩家位於底部,則會擷取最後 20 名的結果。除了排行榜頂端和底部的位置之外,API 會盡量確保所要求排名的中心實體,位於擷取位置的中央。
取得實體的排行榜
此 API 提供了另一種查詢排行榜的方式。它適用於我們想要在排行榜中搜尋多個實體 並加以排序的情況。下列範例示範如何使用 C# SDK 查詢實體清單的排行榜。取得好友排行榜
在某些情況下,有些休閒玩家可能會來玩遊戲。他們可能離排行榜頂端很遠,但在他們的好友之間,正在進行一場競賽。透過此 API,我們可以查詢排行榜並找出玩家的好友。增強的平手決勝
以我們高度競爭的射擊遊戲為例,在某些情況下,可能會有多位玩家擁有相同的 擊殺次數。在這些情境中,我們需要用不同的方式來為這些情況決勝。這就是增強的平手決勝 功能派上用場的情境。 建立排行榜定義時,您可以擁有多個欄。新增欄的方式將決定我們如何 排序以及在某些情境中決勝。這裡有一個優先順序,第一個新增的欄最重要,接著是第二個, 依此類推。套用到我們的範例,就是每當擊殺次數平手時,第二個準則是助攻次數, 而最後的準則是死亡次數。在仍然平手的極端情況下,則預設會使用時間戳記, 也就是最先達成分數的人。 | 排名 | 實體識別碼 | 擊殺| 助攻 | 死亡 | LastUpdated|----------------------|------------------------------------|-------------------|-------------------------- |1 | “player 3” | 103 |24 | 15|“2024-08-27T20:24:36.738Z” |2 | “player 2” | 102 | 30| 20 |“2024-08-27T20:24:29.251Z” |3 | “player 1” | 100 | 25 |18 |“2024-08-27T19:52:26.642Z”
|4 | “player 4” | 100 | 25 | 18 |“2024-08-27T20:24:44.552Z” |4 | “player 5” | 100 | 25 | 19 |“2024-08-27T20:25:47.552Z” 在此範例中,有三位玩家平手:
- “player 5”:儘管擊殺和助攻次數相同,但其死亡次數較多,這表示其位於 排行榜的底部。
- “player 4”:此玩家的死亡次數比 “player 5” 少,且與 “player 1” 相同,但 player 1 較早達到這些數字。
- “player 1”:儘管與 “player 4” 的數字相同,但此玩家是遊戲中第一個達成此分數的人,因此在此平手決勝情境中排名較高。
結論
在本教學課程中,我們學到了如何執行下列作業:- 建立多欄排行榜。
- 查看多種查詢方式。
- 了解增強的平手決勝機制。
另請參閱
- 建立基本排行榜。
- 季節性排行榜。
- 限制 。
- 配額 。
- 依統計資料為玩家排名。
- 群組排行榜。
- 手動層級。
- 將額外資料新增至排行榜。
- API 參考。
- 排行榜與 Cloudscript。
- 搭配 Playstream 的排行榜
