> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 事件型排行榜概觀

> XBOX Live 事件型排行榜如何透過涵蓋全體 XBOX 玩家的全域排名，或玩家好友之間的社交排名來比較玩家。

本主題說明排行榜如何透過顯示遊戲的所選統計資料來比較玩家。

排行榜是吸引玩家參與並推動玩家之間競爭的有趣方式。XBOX 服務提供的功能既適合您的硬派玩家 (與全體 XBOX 玩家進行*全域*排名)，也適合您的休閒玩家 (與玩家好友進行*社交*排名)。

您可以使用兩種類型的排行榜：全域與社交。
兩者的概念非常相似，但在設定與用途方面有根本上的差異。

## 全域排行榜與社交排行榜

### 全域排行榜

* 全域排行榜會為整個 XBOX 使用者群排名，而且必須經過設定。

* 全域排行榜是您在擷取時 (在遊戲發行之前，或發行之後的任何時間) 於服務中設定的預先定義檢視。

### 社交排行榜

* 社交排行榜是動態產生的，會為玩家的好友排名。

* 社交排行榜只包含位於玩家社交圖中的玩家。

* 社交排行榜不需要在擷取時預先定義，因為服務會在執行階段根據現有的使用者統計資料動態產生排行榜。

## 了解排行榜

排行榜有兩個主要元件。

* 用來排名的值 (在 XBOX 服務中，這一律是玩家[統計資料執行個體](/zh-TW/services/xbox-services/player-data/stats-leaderboards/event-based/live-stats-eb-overview#defining-stat-instances))。

* 排序順序 (值越高越好或越低越好)。

### 以統計資料作為排名值

排行榜衍生自玩家統計資料。為您的需求定義正確的統計資料規則至關重要。設計遊戲時，請記住您希望玩家在哪些排行榜上進行排名。

## 全域排行榜

全域排行榜會追蹤 XBOX 社群中玩家所記錄的最佳分數。全域排行榜的主要差異在於，它們是在擷取時透過指定排行榜識別名稱、排名統計資料與排序順序 (遞增或遞減) 而預先定義的。

遊戲可以定義無限數量的全域排行榜，並隨時透過服務設定新增更多排行榜。每個全域排行榜的記錄數目上限目前為 10,000 筆。這表示對於「最佳」分數未排進前 10,000 名的玩家，其分數不會出現在排行榜中。

您可以一次讀取最多 100 筆排行榜項目 (玩家 XUID、玩家代號、全域排名與分數) 的「頁面」，並指定頁面的起始排名，或擷取以指定玩家代號為中心的排行榜項目。結果的範圍一律為歷來所有時間；尚不支援日、週與月檢視。

您可以透過 XBOX Services API (XSAPI) 或我們的 REST API，使用 `GET (/scids/{scid}/leaderboards/{leaderboardname})` 存取全域排行榜。

以下螢幕擷取畫面顯示如何為賽車遊戲設定範例排行榜。

<img src="https://mintcdn.com/microsoft-4404708b/ktEik-YaZoen6Rhy/images/gdk/services/leaderboard-details.png?fit=max&auto=format&n=ktEik-YaZoen6Rhy&q=85&s=f469c97316bfc9c769c7b968e0fd6f79" alt="排行榜詳細資料 UI，排行榜名稱為 FastestLap，排序順序顯示值越低越好。" width="1104" height="655" data-path="images/gdk/services/leaderboard-details.png" />

## 社交排行榜

社交排行榜非常適合激勵休閒玩家與好友比較並排名。即使他們不在社群的最高排名中，仍然可以受到激勵去擊敗他們認識的玩家。社交排行榜是根據任何現有的使用者統計資料動態建立的。因此，它們不需要在擷取時預先定義，而且只包含某位特定玩家社交圖中的玩家。

社交排行榜的主要優點是不需要預先定義。您可以為遊戲的任何統計資料建立社交排行榜。呼叫端在要求社交排行榜時可以指定兩件事：統計資料執行個體與排序順序 (預設為依評分遞減)。結果的範圍一律為歷來所有時間；不支援日、週、月檢視。

與全域排行榜一樣，呼叫端可以一次讀取最多 100 筆排行榜項目 (玩家 XUID、玩家代號、全域排名與分數) 的「頁面」，並指定頁面的起始排名。

您可以透過 XSAPI 或我們的 REST API，使用 `GET (/users/xuid({xuid})/scids/{scid}/stats/{statname)/people/{all|favorite})` 存取社交排行榜。

## 具有社交檢視的全域排行榜

由於社交排行榜是動態建立的，因此擷取社交排行榜所需的時間比擷取全域排行榜更長。如果您的遊戲經常根據一組共同條件擷取社交排行榜，您可以建立全域排行榜，並只擷取排行榜中與玩家社交圖相關的項目。

由於排行榜已存在於 XBOX 服務伺服器上，因此擷取時間會比社交排行榜更快。而且由於結果的範圍限定在使用者的社交圖，承載也會更小。此類型的排行榜是全域排行榜，因此必須在遊戲的服務設定中定義。

具有社交檢視的全域排行榜可使用一般的全域排行榜要求 `GET (/scids/{scid}/leaderboards/{leaderboardname})` 存取，並在 URL 後附加下列查詢：`&viewTarget=people&view=people`。

若要支援多欄排行榜檢視，可以使用統計資料中繼資料。遊戲可以為排行榜統計資料定義中繼資料欄位，這些欄位可在查詢排行榜排名時傳回。遊戲不應使用批次使用者統計資料 URI 來達成相同的行為，因為隱私權設定可能會阻止存取統計資料。

## 多欄排行榜

在某些情況下，您需要在排行榜中加入更多欄位，以提供統計資料更多資訊。例如，對於擊敗最多敵人的排行榜，您可能想要加入玩家使用的武器、發生的地圖、擊敗最多的敵人類型，以及擊殺/死亡比。

XBOX 排行榜內建多欄支援，您可以輕鬆取得這類排名。唯一的先決條件是排行榜所用的統計資料必須定義統計資料內容，它會作為額外的中繼資料使用。例如，對於 FastestLap 統計資料，您可能想要將這些額外屬性設定為統計資料內容。以下螢幕擷取畫面顯示其可能的樣子。

<img src="https://mintcdn.com/microsoft-4404708b/ktEik-YaZoen6Rhy/images/gdk/services/stat-context.png?fit=max&auto=format&n=ktEik-YaZoen6Rhy&q=85&s=75db3b9e9e58dfe4af99d48269be49fb" alt="統計資料內容 UI，統計資料內容名稱為 CarModel、WeatherCondition 與 TrackId。" width="1113" height="572" data-path="images/gdk/services/stat-context.png" />

現在統計資料會連同內容一起保存，如果您擷取多欄排行榜，看起來會類似下表。

| 運算子 | 值 (FastestLap) | CarModel | WeatherCondition | TrackId |
| - | - | - | - | - |
| SUM | 常數或欄位 | Model A | Rainy | 9 |
| MIN | 欄位 | Model A | Sunny | 9 |
| MAX | 欄位 | Model B | Sunny | 2 |
| REPLACE | 常數或欄位 | Model C | Cloudy | 1 |

目前全域排行榜與具有社交檢視的全域排行榜支援多欄排行榜。不過，如果您想要建立多欄\_社交\_排行榜，可以使用批次使用者統計資料呼叫取得所有統計資料及其內容，然後手動建立排行榜。

多欄排行榜只能透過我們的 REST API，使用一般的全域排行榜要求 `GET (/scids/{scid}/leaderboards/{leaderboardname})` 存取，並在 URL 後附加下列查詢：`&include=valuemetadata`。

## 含有精選統計資料的排行榜出現位置

排行榜透過顯示遊戲的所選統計資料來比較玩家。

排行榜是鼓勵玩家之間競爭的絕佳方式。排行榜能讓玩家持續投入，努力超越自己先前的最佳分數與好友的分數。

* 精選統計資料的排行榜一律會顯示在遊戲的官方社團中。

* 精選統計資料的排行榜有時會顯示在其他 XBOX 體驗中，例如玩家設定檔中的成就檢視。

* 您也可以使用已設定的精選統計資料，在遊戲內建立排行榜。

## 選擇合適的排行榜

排行榜對應於您定義的統計資料。
您應該選擇對應於玩家能夠努力改善之成就的排行榜。

例如，賽車遊戲中的最佳單圈時間就是很好的排行榜，因為玩家會想努力改善自己的最佳單圈時間。
其他範例包括射擊遊戲的擊殺/死亡比，或格鬥遊戲的最大連擊數。

## 何時顯示排行榜

您可以在遊戲中的任何時間顯示排行榜。
您應該選擇排行榜不會干擾遊戲玩法或遊戲流程的時機。
例如，回合之間與比賽結束後都是顯示排行榜的好時機。

## 程式設計指南

您可以使用數個排行榜 API 來取得排行榜的目前狀態。
所有 API 都是非同步的，不會造成封鎖。

發出取得排行榜資料的要求，並繼續進行一般的遊戲處理。
當服務傳回排行榜結果時，您就可以在適當的時機顯示結果。

請在您想要顯示排行榜資料之前稍早向服務要求資料。這可避免玩家在等待排行榜顯示時遭到封鎖。

## 另請參閱

[事件型與遊戲管理型統計資料](/zh-TW/services/xbox-services/player-data/stats-leaderboards/live-stats-eb-vs-tm#update-frequency)。


## Related topics

- [事件型統計資料與排行榜](/zh-TW/services/xbox-services/player-data/stats-leaderboards/event-based/live-statslb-eb-nav.md)
- [事件型排行榜的範例程式碼](/zh-TW/services/xbox-services/player-data/stats-leaderboards/event-based/how-to/live-leaderboards-eb-howto.md)
- [事件型排行榜的入口網站設定](/zh-TW/services/xbox-services/player-data/stats-leaderboards/event-based/config/live-eb-leaderboards-portal.md)
- [事件型統計資料與排行榜入口網站設定](/zh-TW/services/xbox-services/player-data/stats-leaderboards/event-based/config/live-statslb-eb-config-nav.md)
- [事件型統計資料與排行榜範例程式碼](/zh-TW/services/xbox-services/player-data/stats-leaderboards/event-based/how-to/live-statslb-eb-howto-nav.md)
