> ## 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.

# 季節性統計資料

> 使用 PlayFab 季節性統計資料和版本控制依排程重設玩家分數，以支援賽季、天梯和限時進度活動。

在本教學課程中，我們將說明統計資料的版本控制概念。在許多情況下，我們會想要擁有特定統計資料的不同版本。例如，如果遊戲有賽季，很可能會在新賽季開始時重設統計資料。

我們將繼續使用[建立基本統計資料](/zh-TW/services/playfab/player-progression/statistics/create-basic-statistics)中的範例。假設我們的射擊遊戲變得非常受歡迎。因此，引進了賽季的概念。每個月，遊戲都會為所有玩家群推出新的主題賽季。所以我們想要為每個賽季保留獨立的統計資料。

## 建立用於版本控制的統計資料定義

在上一個範例中，建立統計資料定義時，有提示到 `VersionConfiguration` 參數對版本控制的重要性。在這裡，我們將詳細說明如何使用它以及它的運作方式。

```C# theme={null}
public static async Task CreateStatisticDefinitionAsync(PlayFabAuthenticationContext context, string statName)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    CreateStatisticDefinitionRequest statDefinitionRequest = new CreateStatisticDefinitionRequest()
    {
        Name = statName,
        AuthenticationContext = context,
        EntityType = "title_player_account",
        VersionConfiguration = new VersionConfiguration()
        {
            MaxQueryableVersions = 12,
            ResetInterval = ResetInterval.Month,
        },
        Columns = new List<StatisticColumn>()
        {
            new StatisticColumn()
            {
                Name = "Longshots",
                AggregationMethod = StatisticAggregationMethod.Max,
            }
        },
    };
    
    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);
}
```

與基本統計資料相比，此範例的主要差異在於 `VersionConfiguration` 參數。此參數可讓我們定義 `MaxQueryableVersions` 設定，指定我們可以查詢同一統計資料的多少個版本。在此案例中，我們將其設定為可查詢 12 個版本。`ResetInterval` 參數定義重設程序的發生頻率。此程序涉及建立一個與先前設定相同但沒有任何值的統計資料，且版本參數會依下列方式變更：N = N + 1，在建立統計資料定義時 N = 0。

例如，假設我們有一個版本參數等於二且具有特定值的統計資料。現在我們遞增該統計資料的版本，結果將是一個版本參數等於三且沒有任何值的新統計資料。同時，先前的統計資料仍保留在系統中以供查詢。

`ResetInterval` 可以多種方式運作。在此範例中是每月一次，但可以根據開發人員的需求進行變更。在此特定案例中，這表示排行榜將從設定的那一刻起每月自動重設。我們支援下列重設策略：

* Day
* Hour
* Manual
* Month
* Week

[建立統計資料的 API 參考](https://learn.microsoft.com/en-us/rest/api/playfab/progression/statistics/create-statistic-definition)

## 遞增統計資料的版本

透過這個新設定，我們可以為不同的賽季擁有同一統計資料的多個版本。但如果因為某個問題而需要手動重設排行榜並重新開始賽季，該怎麼辦？在這種情況下，我們可以使用 API 執行手動重設。以下是使用 SDK 的範例：

```C# theme={null}
public static async Task ResetStatistic(PlayFabAuthenticationContext context, string statName)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    IncrementStatisticVersionRequest resetStatRequest = new IncrementStatisticVersionRequest()
    {
        AuthenticationContext = context,
        Name = statName,
    };

    PlayFabResult<PlayFab.LeaderboardsModels.IncrementStatisticVersionResponse> resetStatResponse = await statsAPI.IncrementStatisticVersionAsync(resetStatRequest);
}
```

現在我們已準備好處理統計資料版本控制的任何挑戰。這裡的一個重要層面是，我們決定保留為版本的統計資料定義數目將會被計量，因為它們會使用服務中的儲存空間。請在此查看更多資訊：

* [統計資料](/zh-TW/services/playfab/pricing/meters/statistics-meters)。

## 結論

在本教學課程中，我們學到了如何執行下列作業：

* 使用正確的重設策略建立統計資料
* 遞增統計資料的版本

## 另請參閱

* [統計資料的進階運用](/zh-TW/services/playfab/player-progression/statistics/doing-more-statistics)。
* [建立基本統計資料](/zh-TW/services/playfab/player-progression/statistics/create-basic-statistics)。
* [將內容資料新增至統計資料](/zh-TW/services/playfab/player-progression/statistics/metadata-statistics)。
* [交易式寫入](/zh-TW/services/playfab/player-progression/statistics/transactional-writes)
* [API 參考](/zh-TW/services/playfab/player-progression/statistics/api-reference)。
* [限制](/zh-TW/services/playfab/player-progression/statistics/limits-statistics)。
* [配額](/zh-TW/services/playfab/player-progression/statistics/quota-statistics)


## Related topics

- [中繼資料統計資料](/zh-TW/services/playfab/player-progression/statistics/metadata-statistics.md)
- [統計資料 API 參考](/zh-TW/services/playfab/player-progression/statistics/api-reference.md)
- [社群統計資料](/zh-TW/services/playfab/player-progression/statistics/community-statistics.md)
- [統計資料配額](/zh-TW/services/playfab/player-progression/statistics/quota-statistics.md)
- [建立基本統計資料](/zh-TW/services/playfab/player-progression/statistics/create-basic-statistics.md)
