Documentation index for AI agents

GS2-Matchmaking トランザクションアクション

検証/消費/入手の各トランザクションアクションの仕様

アクションの組み合わせと同時実行

すべてのサービスに共通する前提は トランザクションアクションの組み合わせ にまとめています。先にそちらを読んでください。この節の残りは GS2-Matchmaking 固有の内容です。

GS2-Matchmaking がトランザクションに指定できるアクションは 1 つで、読み取りしか行いません。

操作同じ行を重ねたとき入れ子越し別の対象になる境界
参加していることの検証
VerifyIncludeParticipantByUserId
先勝ち読み取りだけなので衝突しないシーズンギャザリング・検証タイプ・対象ユーザー

他の検証アクションと同じく、このアクションもトランザクション開始時点のシーズンギャザリングを見ます。同じトランザクションの中でギャザリングに参加したユーザーは、この判定においてはまだ参加者ではありません。そのため、参加させてからその参加を検証する、という流れを 1 つのトランザクションで行うことはできません。

参加が内側のトランザクション、たとえば抽選の景品や交換の結果として行われる場合も同じです。GS2-Matchmaking 自身には参加を行うトランザクションアクションがないため、参加は必ず API か、他サービスのアクションが呼び出す処理として起こります。そのトランザクションが成立させたものを検証したい場合は、トランザクションを分けてください。

違うユーザーを検証する場合は別の対象なので、どちらも判定されます。

入れ子になったトランザクションに注意

このアクションは何も書き込まないので、内側のトランザクションから届く更新と衝突することはありません。できないのは、経路にかかわらず、同じトランザクションが行った変更を見ることです。

同時実行とリトライ

このアクションがコンフリクトを返すことはありません。失敗するのは検証そのものが成立しなかった場合だけで、これは結果であってリトライすべきエラーではありません。


Verify Action

検証アクション

Gs2Matchmaking:VerifyIncludeParticipantByUserId

ユーザーIDを指定して永続ギャザリングにユーザーIDが含まれているかを検証

指定されたユーザーがシーズンギャザリングに参加しているかどうかを検証します。

数量指定可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
seasonNamestring
~ 128文字シーズンモデル名
シーズンモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
seasonlong
0 ~ 9223372036854775805シーズン
tierlong
0 ~ 9223372036854775805ティアー
同程度のランクのプレイヤーをグルーピングするためのティアーレベル。
SeasonModel で指定された GS2-Experience モデルにおけるプレイヤーのランクによって決定されます。
プレイヤーは同じティアーのプレイヤーとのみマッチングされ、公平な対戦が保証されます。
seasonGatheringNamestring
UUID~ 128文字シーズンギャザリング名
シーズンギャザリング固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
verifyType文字列列挙型
enum {
  “include”,
  “notInclude”
}
検証の種類
定義説明
includeシーズンギャザリングに指定したユーザーが含まれていること
notIncludeシーズンギャザリングに指定したユーザーが含まれないこと
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Matchmaking:VerifyIncludeParticipantByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "seasonName": "[string]シーズンモデル名",
        "season": "[long]シーズン",
        "tier": "[long]ティアー",
        "seasonGatheringName": "[string]シーズンギャザリング名",
        "userId": "[string]ユーザーID",
        "verifyType": "[string]検証の種類",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Matchmaking:VerifyIncludeParticipantByUserId
request:
  namespaceName: "[string]ネームスペース名"
  seasonName: "[string]シーズンモデル名"
  season: "[long]シーズン"
  tier: "[long]ティアー"
  seasonGatheringName: "[string]シーズンギャザリング名"
  userId: "[string]ユーザーID"
  verifyType: "[string]検証の種類"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("matchmaking").verify.verify_include_participant_by_user_id({
    namespaceName="[string]ネームスペース名",
    seasonName="[string]シーズンモデル名",
    season="[long]シーズン",
    tier="[long]ティアー",
    seasonGatheringName="[string]シーズンギャザリング名",
    userId="[string]ユーザーID",
    verifyType="[string]検証の種類",
    timeOffsetToken="[string]タイムオフセットトークン",
})