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

# 多人遊戲管理員 API 概觀

> 最重要的 XBOX 多人遊戲管理員 API 方法和類別概觀，包括大廳工作階段、遊戲工作階段、成員和多人遊戲事件。

本主題說明多人遊戲管理員 API 中最重要的方法。

如需詳細的 API 資訊，請參閱[參考文件](https://docs.xbox.com/zh-TW/reference/live/gc-reference-live-toc.md)。

如需如何在應用程式中使用這些 API 的範例，請參閱 [NetRumble 範例 (NDA 主題)](https://learn.microsoft.com/gaming/gdk/docs/services/gdk-dev/development-downloads/gdk-samples-list)。

## 命名空間

多人遊戲管理員包含在下列命名空間中。

| 語言 | 命名空間 |
| - | - |
| C | `XblMultiplayerManager*` 前置詞 |
| C++ | `xbox::services::multiplayer::manager` |

您應該了解下列主要類別。

* [多人遊戲管理員 API 概觀]()
  * [命名空間](#namespace)
  * [Multiplayer Manager 類別 ](#multiplayer-manager-class)
  * [Multiplayer Event 類別 ](#multiplayer-event-class)
  * [Multiplayer Member 類別 ](#multiplayer-member-class)
  * [Multiplayer Lobby Session 類別 ](#multiplayer-lobby-session-class)
  * [Multiplayer Game Session 類別 ](#multiplayer-game-session-class)

## Multiplayer Manager 類別&#x20;

多人遊戲管理員是一個單一執行個體類別，包含單一大廳工作階段物件和單一遊戲工作階段物件。

為了讓多人遊戲管理員正常運作，您至少必須在此類別上呼叫 [XblMultiplayerManagerInitialize](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize.md) 和 [XblMultiplayerManagerDoWork](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) 方法。

下表說明部分 (而非全部) 較常用的方法和屬性。如需完整的成員描述清單，請參閱[參考文件](https://docs.xbox.com/zh-TW/reference/live/gc-reference-live-toc.md)。

| C | C++ | 描述 |
| - | - | - |
| **方法** | | |
| [XblMultiplayerManagerInitialize](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerinitialize.md) | `initialize()` | 初始化多人遊戲管理員。您必須先呼叫此方法，才能使用多人遊戲管理員。 |
| [XblMultiplayerManagerDoWork](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) | `do_work()` | 更新應用程式可見的工作階段狀態。您應該每個畫面格至少呼叫此方法一次。您的遊戲應處理此方法傳回的多人遊戲事件。 |
| [XblMultiplayerManagerJoinLobby](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoinlobby.md) | `join_lobby()` | 提供一種方式，透過唯一識別使用者想要加入之大廳的 `handleId` 加入好友的大廳工作階段，或在使用者接受導致遊戲被通訊協定啟用的邀請時使用。 |
| [XblMultiplayerManagerJoinGameFromLobby](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby.md) | `join_game_from_lobby()` | 如果大廳的遊戲工作階段存在且仍有空間，就加入該工作階段。如果工作階段不存在，則會以現有的大廳成員建立新的遊戲工作階段。這不會將現有的大廳工作階段屬性移轉至遊戲工作階段。加入之後，您可以透過 `*SetSynchronizedProperties` API 設定屬性或主機。遊戲必須在所有想要加入遊戲工作階段的用戶端上呼叫此 API。 |
| [XblMultiplayerManagerJoinGame](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame.md) | `join_game()` | 根據全域唯一的工作階段名稱 (通常透過協力廠商配對服務取得) 加入現有的遊戲工作階段。您可以傳入想要加入遊戲的 XBOX 使用者識別碼清單。 |
| [XblMultiplayerManagerFindMatch](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch.md) | `find_match()` | 使用 XBOX 服務配對來尋找並加入遊戲。 |
| [XblMultiplayerManagerLeaveGame](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerleavegame.md) | `leave_game()` | 離開遊戲，並將該成員及所有本機成員送回大廳。 |
| **屬性** | | |
| `LobbySession` | `lobby_session()` | 代表大廳工作階段之物件的控制代碼。 |
| `GameSession` | `game_session()` | 代表遊戲工作階段之物件的控制代碼。 |

## Multiplayer Event 類別&#x20;

| 語言 | 類別 |
| - | - |
| C | [XblMultiplayerEvent](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent.md) |
| C++ | `multiplayer_event` |

當您呼叫 [XblMultiplayerManagerDoWork](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) 時，多人遊戲管理員會傳回事件清單，代表自您上次呼叫 `XblMultiplayerManagerDoWork` 以來工作階段的變更。這些事件包括成員已加入工作階段、成員已離開工作階段、成員屬性已變更，或主機用戶端已變更等變更。

如需所有可能事件類型的清單，請參閱 [XblMultiplayerEventType](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype.md) 列舉。

每個傳回的 [XblMultiplayerEvent](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayerevent.md) 都包含一個 `EventArgsHandle`。您必須使用它來取得事件類型的適當 `args`。例如，如果 [XblMultiplayerEventType](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/enums/xblmultiplayereventtype.md) 是 `MemberJoined`，您會呼叫 [XblMultiplayerEventArgsMembersCount](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmemberscount.md) 和 [XblMultiplayerEventArgsMembers](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayereventargsmembers.md)。

在呼叫 [XblMultiplayerManagerDoWork](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerdowork.md) 之後，您的遊戲應視需要處理每個事件。

## Multiplayer Member 類別&#x20;

| 語言 | 類別 |
| - | - |
| C | [XblMultiplayerManagerMember](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/structs/xblmultiplayermanagermember.md) |
| C++ | `multiplayer_member` |

此類別代表大廳或遊戲工作階段中的玩家。它包含成員的相關屬性，例如玩家的 XBOX 使用者識別碼、玩家的網路連線位址，以及每位玩家的自訂屬性。

## Multiplayer Lobby Session 類別&#x20;

| 語言 | 類別 |
| - | - |
| C | `XblMultiplayerManagerLobbySession*` 前置詞 |
| C++ | `multiplayer_lobby_session` |

此類別會建立持續性工作階段，用於管理此裝置上的本機使用者，以及想要一起玩的受邀好友。大廳工作階段必須至少包含一位成員，多人遊戲管理員才能執行任何多人遊戲動作。您一開始可以呼叫 [XblMultiplayerManagerLobbySessionAddLocalUser](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser.md) 方法來建立新的大廳工作階段。

下表說明此類別部分 (而非全部) 較常用的方法和屬性。如需完整的類別成員描述清單，請參閱[參考文件](https://docs.xbox.com/zh-TW/reference/live/gc-reference-live-toc.md)。

| C | C++ | 描述 |
| - | - | - |
| **方法** | | |
| [XblMultiplayerManagerLobbySessionAddLocalUser](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionaddlocaluser.md) | `add_local_user()` | 將本機使用者 (已在本機裝置上登入的玩家) 新增至大廳工作階段。如果這是新增至大廳工作階段的第一位成員，此方法會建立新的大廳工作階段。 |
| [XblMultiplayerManagerLobbySessionRemoveLocalUser](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionremovelocaluser.md) | `remove_local_user()` | 從大廳和遊戲工作階段中移除指定的成員。 |
| [XblMultiplayerManagerLobbySessionInviteFriends](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninvitefriends.md) | `invite_friends()` | 開啟標準 XBOX UI，讓玩家從其好友清單中選取好友，然後邀請這些玩家加入遊戲。 |
| [XblMultiplayerManagerLobbySessionInviteUsers](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessioninviteusers.md) | `invite_users()` | 邀請指定的 XBOX 玩家加入遊戲。 |
| [XblMultiplayerManagerLobbySessionSetLocalMemberConnectionAddress](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberconnectionaddress.md) | `set_local_member_connection_address()` | 設定本機成員的網路位址。遊戲可以使用此網路位址在成員之間建立網路通訊。 |
| [XblMultiplayerManagerLobbySessionSetLocalMemberProperties](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetlocalmemberproperties.md) | `set_local_member_properties()` | 為本機成員設定自訂屬性。屬性會儲存在 JSON 字串中。 |
| [XblMultiplayerManagerLobbySessionDeleteLocalMemberProperties](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessiondeletelocalmemberproperties.md) | `delete_local_member_properties()` | 移除本機成員的自訂屬性。 |
| [XblMultiplayerManagerLobbySessionSetProperties](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties.md) / [XblMultiplayerManagerLobbySessionSetSynchronizedProperties](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetsynchronizedproperties.md) | `set_properties()` / `set_synchronized_properties()` | 為大廳工作階段設定自訂屬性。屬性會儲存在 JSON 字串中。如果屬性在裝置之間共用，且可能同時由多個裝置更新，請使用此方法的同步版本。 |
| [XblMultiplayerManagerGameSessionIsHost](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost.md) | `is_host()` | 指出目前的裝置是否擔任大廳主機。 |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost.md) | `set_synchronized_host()` | 設定大廳的主機。 |
| **屬性** | | |
| [XblMultiplayerManagerLobbySessionLocalMembers](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionlocalmembers.md) | `local_members()` | 已在本機裝置上登入的成員集合。 |
| [XblMultiplayerManagerLobbySessionMembers](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionmembers.md) | `members()` | 大廳工作階段中的成員集合。 |
| [XblMultiplayerManagerLobbySessionSetProperties](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionsetproperties.md) | `properties()` | 代表大廳工作階段屬性集合的 JSON 物件。 |
| [XblMultiplayerManagerLobbySessionHost](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerlobbysessionhost.md) | `host()` | 大廳的主機成員。 |

## Multiplayer Game Session 類別&#x20;

| 語言 | 類別 |
| - | - |
| C | `XblMultiplayerManagerGameSession*` 前置詞 |
| C++ | `multiplayer_game_session` |

遊戲工作階段代表參與實際遊戲執行個體的 XBOX 服務成員群組。這可能包括透過配對服務配對的玩家。

若要開始包含大廳工作階段成員的新遊戲工作階段，請呼叫 [XblMultiplayerManagerJoinGameFromLobby](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingamefromlobby.md)。如果您想要使用 XBOX 服務配對，請呼叫 [XblMultiplayerManagerFindMatch](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerfindmatch.md)。如果您使用的是協力廠商配對服務，請呼叫 [XblMultiplayerManagerJoinGame](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagerjoingame.md)。

下表說明多人遊戲管理員部分 (而非全部) 較常用的方法和屬性。如需完整的類別成員描述清單，請參閱此類別的 API 參考資料。

| C | C++ | 描述 |
| - | - | - |
| **方法** | | |
| [XblMultiplayerManagerGameSessionSetProperties](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetproperties.md) / [XblMultiplayerManagerGameSessionSetSynchronizedProperties](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedproperties.md) | `set_properties()` / `set_synchronized_properties()` | 為遊戲工作階段設定自訂屬性。屬性會儲存在 JSON 字串中。如果屬性在裝置之間共用，且可能同時由多個裝置更新，請使用此方法的同步版本。 |
| [XblMultiplayerManagerGameSessionIsHost](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionishost.md) | `is_host()` | 指出目前的裝置是否擔任遊戲主機。 |
| [XblMultiplayerManagerGameSessionSetSynchronizedHost](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionsetsynchronizedhost.md) | `set_synchronized_host()` | 設定遊戲的主機。 |
| **屬性** | | |
| [XblMultiplayerManagerGameSessionMembers](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionmembers.md) | `members()` | 遊戲工作階段中的成員集合。 |
| [XblMultiplayerManagerGameSessionPropertiesJson](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionpropertiesjson.md) | `properties()` | 代表遊戲工作階段屬性集合的 JSON 物件。 |
| [XblMultiplayerManagerGameSessionHost](https://docs.xbox.com/zh-TW/reference/live/xsapi-c/multiplayer_manager_c/functions/xblmultiplayermanagergamesessionhost.md) | `host()` | 遊戲的主機成員。 |


## Related topics

- [多人遊戲管理員概觀](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/live-multiplayer-manager-overview.md)
- [多人遊戲管理員概念](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/concepts/live-mm-concepts-nav.md)
- [多人遊戲管理員 (MPM)](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/live-multiplayer-manager-nav.md)
- [XBOX 服務多人遊戲概觀](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/overviews/live-multiplayer-intro.md)
- [多人遊戲管理員範例程式碼](https://docs.xbox.com/zh-TW/services/xbox-services/multiplayer/mpm/how-to/live-mm-howto-nav.md)
