Documentation index for AI agents

GS2-Matchmaking 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양

액션의 조합과 동시 실행

모든 서비스에 공통되는 전제는 트랜잭션 액션의 조합에 정리되어 있습니다. 먼저 그쪽을 읽어 주십시오. 이 절의 나머지는 GS2-Matchmaking 고유의 내용입니다.

GS2-Matchmaking이 트랜잭션에 지정할 수 있는 액션은 1가지이며, 읽기만 수행합니다.

조작같은 행을 겹쳤을 때중첩 너머다른 대상이 되는 경계
참가하고 있음의 검증
VerifyIncludeParticipantByUserId
먼저 지정한 쪽이 남음읽기만 하므로 충돌하지 않는다시즌 개더링·검증 타입·대상 사용자

다른 검증 액션과 마찬가지로, 이 액션도 트랜잭션 시작 시점의 시즌 개더링을 봅니다. 같은 트랜잭션 안에서 개더링에 참가한 사용자는 이 판정에서는 아직 참가자가 아닙니다. 그 때문에 참가시킨 뒤 그 참가를 검증하는 흐름을 하나의 트랜잭션으로 수행할 수는 없습니다.

참가가 안쪽 트랜잭션, 예를 들어 추첨의 경품이나 교환의 결과로 이루어지는 경우도 같습니다. 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]타임 오프셋 토큰",
})