

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 適用於 Amazon GameLift Servers 4.x 的 C\$1\$1 伺服器 SDK -- 資料類型
<a name="integration-server-sdk-cpp-ref-datatypes"></a>

使用伺服器 SDK 參考來整合多玩家遊戲，以便與 進行託管Amazon GameLift Servers。如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。

**注意**  
此參考適用於 的舊版伺服器 SDKAmazon GameLift Servers。如需最新版本，請參閱[適用於 -- 資料類型的 C\$1\$1 伺服器 SDK Amazon GameLift Servers 5.x](integration-server-sdk5-cpp-datatypes.md)。

此 API 定義於 `GameLiftServerAPI.h`、`LogParameters.h`、`ProcessParameters.h`。

[適用於 Amazon GameLift Servers 4.x 的 C\$1\$1 伺服器 SDK -- 動作](integration-server-sdk-cpp-ref-actions.md)

## DescribePlayerSessionsRequest
<a name="integration-server-sdk-cpp-ref-dataypes-playersessions"></a>

此資料類型用於指定要擷取的玩家工作階段，您可利用下列方式使用：
+ 提供 PlayerSessionId 以要求特定玩家工作階段。
+ 提供 GameSessionId 以要求特定遊戲工作階段之中的所有玩家工作階段。
+ 提供 PlayerId 以要求特定玩家的所有玩家工作階段。

對於大量的玩家工作階段，可使用分頁參數於循序區塊擷取結果。

### 目錄
<a name="integration-server-sdk-cpp-ref-dataypes-playersessions-contents"></a>

**GameSessionId**  
獨一無二的遊戲工作階段識別項。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。遊戲工作階段 ID 格式如下：`arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`。<ID string> 的值可能是自訂 ID 字串 (若在建立遊戲工作階段時有指定 ID)，或是產生的字串。  
類型：字串  
必要：否

**限制**  
回傳結果的數量上限。使用此參數搭配 *NextToken* 取得結果做為一組循序頁面。若指定玩家工作階段 ID，此參數將遭到忽略。  
類型：整數  
必要：否

**NextToken**  
字符顯示下一個結果循序頁面的開始處。使用前一個呼叫此動作傳回的字符。指定結果集的開始處時，請勿指定值。若指定玩家工作階段 ID，此參數將遭到忽略。  
類型：字串  
必要：否

**PlayerId**  
玩家的唯一識別項。玩家 ID 是由開發人員定義。請參閱 [產生玩家 IDs](player-sessions-player-identifiers.md)。  
類型：字串  
必要：否

**PlayerSessionId**  
玩家工作階段的唯一識別項。  
類型：字串  
必要：否

**PlayerSessionStatusFilter**  
用於篩選結果的玩家工作階段狀態。可能的玩家工作階段狀態包括下列項目：  
+ RESERVED – 玩家工作階段要求已收到，但玩家尚未連線至伺服器程序及/或通過驗證。
+ ACTIVE – 玩家已由伺服器程序驗證，目前已連線。
+ COMPLETED – 玩家連線已中斷。
+ TIMEDOUT – 玩家工作階段要求已收到，但玩家並未在逾時限制 (60 秒) 內連線及/或通過驗證。
類型：字串  
必要：否

## LogParameters
<a name="integration-server-sdk-cpp-ref-dataypes-log"></a>

此資料類型用於識別遊戲工作階段期間產生的哪些檔案要由 Amazon GameLift Servers 上傳，並在遊戲工作階段結束時存放。系統會在進行 [ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processready) 呼叫時，將此資訊傳送至 Amazon GameLift Servers 服務。

### 目錄
<a name="integration-server-sdk-cpp-ref-dataypes-log-contents"></a>

**logPaths**  
您要 Amazon GameLift Servers 存放遊戲伺服器日誌檔案的目錄路徑，以供日後存取使用。這些檔案是在每個遊戲工作階段期間產生。檔案路徑及名稱於您的遊戲伺服器定義，並儲存於遊戲組建根目錄。日誌路徑必須是絕對的。例如若您的遊戲建構將遊戲工作階段記錄儲存於 `MyGame\sessionlogs\` 這樣的目錄，則記錄路徑就可能是 `c:\game\MyGame\sessionLogs` (在 Windows 執行個體) 或 `/local/game/MyGame/sessionLogs` (在 Linux 執行個體)。  
類型：std:vector<std::string>  
必要：否

## ProcessParameters
<a name="integration-server-sdk-cpp-ref-dataypes-process"></a>

此資料類型包含一組參數，系統會在進行 [ProcessReady()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processready) 呼叫時將該組參數傳送至 Amazon GameLift Servers 服務。

### 目錄
<a name="integration-server-sdk-cpp-ref-dataypes-process-contents"></a>

**port**  
伺服器程序接聽新玩家連線所在的連接埠編號。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中，遊戲工作階段會使用該物件來連接到伺服器程序。  
類型：整數   
必要：是

**logParameters**  
含對遊戲工作階段日誌檔之目錄路徑清單的物件。  
類型：Aws::GameLift::Server::[LogParameters](#integration-server-sdk-cpp-ref-dataypes-log)  
必要：否

**onStartGameSession**  
Amazon GameLift Servers 服務叫用以啟用新遊戲工作階段的回呼函數名稱。 會Amazon GameLift Servers呼叫此函數以回應用戶端請求 [CreateGameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_CreateGameSession.html)。該回呼函數會傳遞 [GameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession.html) 物件 (即 *Amazon GameLift Servers 服務 API 參考*中所定義的物件)。  
類型：`const std::function<void(Aws::GameLift::Model::GameSession)> onStartGameSession`  
必要：是

**onProcessTerminate**  
Amazon GameLift Servers 服務叫用以強制伺服器程序關閉的回呼函數名稱。呼叫此函數後，Amazon GameLift Servers 會等待五分鐘讓系統關閉伺服器程序，然後透過 [ProcessEnding()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-processending) 呼叫進行回應。如果沒有收到回應，就會關閉伺服器程序。  
類型：`std::function<void()> onProcessTerminate`  
必要：否

**onHealthCheck**  
Amazon GameLift Servers 服務叫用以從伺服器程序請求運作狀態報告的回呼函數名稱。 每 60 秒Amazon GameLift Servers呼叫此函數。呼叫此函數後，Amazon GameLift Servers 會等待 60 秒確認是否有回應，若未收到任何回應，系統即會將該伺服器程序記錄為運作狀態不佳。  
類型：`std::function<bool()> onHealthCheck`  
必要：否

**onUpdateGameSession**  
Amazon GameLift Servers 服務叫用以將更新的遊戲工作階段物件傳遞至伺服器程序的回呼函數名稱。 會在處理[相符回填](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-backfill.html)請求時Amazon GameLift Servers呼叫此函數，以提供更新的配對建構器資料。然後傳送 [GameSession](https://docs.aws.amazon.com/gamelift/latest/apireference/API_GameSession.html) 物件、狀態更新 (`updateReason`) 及配對回填票證 ID。  
類型：`std::function<void(Aws::GameLift::Server::Model::UpdateGameSession)> onUpdateGameSession`  
必要：否

## StartMatchBackfillRequest
<a name="integration-server-sdk-cpp-ref-dataypes-startmatchbackfillrequest"></a>

此項資料類型用於傳送配對回填要求。系統會在進行 [StartMatchBackfill()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-startmatchbackfill) 呼叫時，將此資訊傳送至 Amazon GameLift Servers 服務。

### 目錄
<a name="integration-server-sdk-cpp-ref-dataypes-startbackfill-contents"></a>

**GameSessionArn**  
 獨一無二的遊戲工作階段識別項。API 動作 [GetGameSessionId()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-getgamesessionid) 以 ARN 格式傳回識別項。  
類型：字串  
必要：是

**MatchmakingConfigurationArn**  
以 ARN 為格式的唯一識別項，讓配對建構器使用此項要求。尋找用於建立原始遊戲工作階段的配對建構器時，請查看配對建構器資料屬性之中的遊戲工作階段物件。進一步了解 [Word 中的配對建構器資料與配對建構器資料](https://docs.aws.amazon.com/gamelift/latest/flexmatchguide/match-server.html#match-server-data)。  
類型：字串  
必要：是

**Players**  
表示目前遊戲工作階段之中所有玩家的一組資料。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。如需播放器物件格式的說明，請參閱 *Amazon GameLift Servers API 參考指南*。尋找玩家屬性、ID 及團隊指派時，請查看配對建構器資料屬性之中的遊戲工作階段物件。若配對建構器使用延遲，您可收集現有區域更新後的延遲，並將其納入各個玩家資料之中。  
類型：std：vector[<player>](https://docs.aws.amazon.com/gamelift/latest/apireference/API_Player.html)  
必要：是

**TicketId**  
配對或配對回填要求票證的唯一識別項。如果此處未提供任何值， Amazon GameLift Servers會以 UUID 的形式產生一個值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。  
類型：字串  
必要：否

## StopMatchBackfillRequest
<a name="integration-server-sdk-cpp-ref-dataypes-stopmatchbackfillrequest"></a>

此項資料類型用於取消配對回填要求。系統會在進行 [StopMatchBackfill()](integration-server-sdk-cpp-ref-actions.md#integration-server-sdk-cpp-ref-stopmatchbackfill) 呼叫時，將此資訊傳送至 Amazon GameLift Servers 服務。

### 目錄
<a name="integration-server-sdk-cpp-ref-dataypes-stopbackfill-contents"></a>

**GameSessionArn**  
與遭取消要求有關的唯一遊戲工作階段識別碼。  
類型：字串  
必要：是

**MatchmakingConfigurationArn**  
做為此要求傳送目標的配對建構器唯一識別項。  
類型：字串  
必要：是

**TicketId**  
遭取消回填要求票證的唯一識別碼。  
類型：字串  
必要：是