---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.4
alternate:
  - https://yandex.com/dev/games/doc/en/sdk/construct-3/multiplayer.md
  - https://yandex.com/dev/games/doc/ru/sdk/construct-3/multiplayer.md
  - https://yandex.com/dev/games/doc/tr/sdk/construct-3/multiplayer.md
  - https://yandex.com/dev/games/doc/zh/sdk/construct-3/multiplayer.md
  - href: zh/sdk/construct-3/multiplayer.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/games/doc/zh/llms.txt

# 异步多人游戏

<!-- source: zh/_includes/script-common.md -->
<!-- source: zh/_includes/script/index-js.md -->

<!-- endsource: zh/_includes/script/index-js.md -->

<!-- source: zh/_includes/script/requirements-js.md -->

<!-- endsource: zh/_includes/script/requirements-js.md -->

<!-- source: zh/_includes/script/image-modal-js.md -->

<!-- endsource: zh/_includes/script/image-modal-js.md -->
<!-- endsource: zh/_includes/script-common.md -->

Construct 3 插件支持异步多人游戏功能。详情请参阅 [HTML 5](https://yandex.com/dev/games/doc/zh/sdk/sdk-multiplayer-sessions.md) 部分。

## 多人游戏初始化 {#init}

要开始使用，请使用 **Initialize multiplayer** 动作。它执行初始化并加载对手的游戏会话。

初始化参数：

#|
|| **参数** | **类型** | **描述** ||
|| **Sessions count** | `number` | 要加载的会话数量（最多10个）。 ||
|| **Turn time** | `number` | 对手回合的最大时间（毫秒）。 ||
|| **Meta** | `JSON` | 用于会话选择的数据对象。 ||
|#

有关参数的更多详情，请参阅[主要文章](https://yandex.com/dev/games/doc/zh/sdk/sdk-multiplayer-sessions.md#init)。

成功初始化多人游戏后，将激活 **On multiplayer initialization** 触发器。要处理接收到的对手会话，请在其中使用 **For each opponent** 循环。循环中可使用以下表达式：

- **Current session player data** —— 通过 `avatar` 或 `name` 键获取当前会话中的玩家数据。
- **Current session ID in sessions list**。

要获取会话元数据，请使用 **Get current session metadata** 动作。

## 记录游戏会话 {#record}

可用动作：

- **Commit transaction** —— 用于提交事务。该动作接受包含数据的 JSON 对象。

- **Push session** —— 用于保存会话。该动作接受包含会话元数据的 JSON 对象。

更多详情，请参阅[主要文章](https://yandex.com/dev/games/doc/zh/sdk/sdk-multiplayer-sessions.md#record)。

## 使用会话 {#use}

在 Construct 3 中，会话操作仅通过事件完成。为此，使用 **On multiplayer session transactions** 和 **On multiplayer session finish** 触发器。

在 **On multiplayer session transactions** 触发器中，可以使用：

- **Session ID in event** 表达式。
- **For each transaction** 循环 —— 用于处理对手传入的事务列表。循环中可使用以下表达式：

    - **Current transaction ID in transactions list**。
    - **Current transaction time in transactions list**。

    要获取事务数据，请使用 **Get current transaction data** 动作。

在 **On multiplayer session finish** 触发器中，可以使用 **Session ID in finish event** 表达式。

要启动向处理程序发送会话，请调用 **Mark gameplay start** 动作。通过调用 **Mark gameplay stop** 来暂停。

有关使用会话的更多详情，请参阅[主要文章](https://yandex.com/dev/games/doc/zh/sdk/sdk-multiplayer-sessions.md#use)。

## 使用示例 {#example}

![](../../_images/construct-3/multiplayer/example.webp)

---


<!-- source: zh/_includes/button-git.md -->
<a href="https://github.com/yandex-games-plugins/construct3">
  <span class="button">存储库</span>
</a>
<!-- endsource: zh/_includes/button-git.md -->
