> For the complete documentation index, see [llms.txt](/llms.txt)

# GS2-Mission 트랜잭션 액션

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




## Verify Action

검증 액션

### Gs2Mission:VerifyCompleteByUserId

사용자 ID를 지정하여 미션 달성 상황 검증<br>

지정된 사용자의 미션 태스크의 달성 상황 또는 수령 상황을 검증합니다.

**수량 지정 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| missionGroupName | string |  | ✓|  |  ~ 128자 | 미션 그룹명<br>이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| verifyType | 문자열 열거형<br>enum {<br>"completed",<br>"notCompleted",<br>"received",<br>"notReceived",<br>"completedAndNotReceived"<br>}<br> |  | ✓|  |  | 검증 종류completed: 조건이 달성 완료 상태임 / notCompleted: 조건이 미달성 상태임 / received: 보상이 수령 완료 상태임 / notReceived: 보상이 미수령 상태임 / completedAndNotReceived: 조건이 달성 완료 상태이고 보상이 미수령 상태임 /  |
| missionTaskName | string |  | ✓|  |  ~ 128자 | 미션 태스크 모델 이름<br>미션 태스크 모델 고유의 이름. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| multiplyValueSpecifyingQuantity | bool |  | | false |  | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:VerifyCompleteByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "userId": "[string]사용자ID",
        "verifyType": "[string]검증 종류",
        "missionTaskName": "[string]미션 태스크 모델 이름",
        "multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:VerifyCompleteByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  userId: "[string]사용자ID"
  verifyType: "[string]검증 종류"
  missionTaskName: "[string]미션 태스크 모델 이름"
  multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").verify.verify_complete_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    userId="[string]사용자ID",
    verifyType="[string]검증 종류",
    missionTaskName="[string]미션 태스크 모델 이름",
    multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Mission:VerifyCounterValueByUserId

사용자 ID를 지정하여 카운터 값 검증<br>

지정된 사용자의 카운터의 스코프별 값이 지정된 조건을 충족하는지 검증합니다.

**수량 지정 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 모델 이름<br>이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다. |
| verifyType | 문자열 열거형<br>enum {<br>"less",<br>"lessEqual",<br>"greater",<br>"greaterEqual",<br>"equal",<br>"notEqual"<br>}<br> |  | ✓|  |  | 검증 종류less: 카운터 값이 지정 값 미만임 / lessEqual: 카운터 값이 지정 값 이하임 / greater: 카운터 값이 지정 값 초과임 / greaterEqual: 카운터 값이 지정 값 이상임 / equal: 카운터 값이 지정 값과 일치함 / notEqual: 카운터 값이 지정 값과 일치하지 않음 /  |
| scopeType | 문자열 열거형<br>enum {<br>"resetTiming",<br>"verifyAction"<br>}<br> |  | | "resetTiming" |  | 스코프 종류<br>이 스코프 값이 리셋 타이밍 스케줄에 기반한 것인지, 검증 액션 조건에 기반한 것인지를 나타냅니다.resetTiming: 리셋 타이밍 / verifyAction: 검증 액션 /  |
| resetType | 문자열 열거형<br>enum {<br>"notReset",<br>"daily",<br>"weekly",<br>"monthly",<br>"days"<br>}<br> | {scopeType} == "resetTiming" | ✓※|  |  | 리셋 타이밍<br>이 스코프 값의 리셋 타이밍입니다. 카운터 값이 리셋될 때까지의 누적 기간을 결정합니다. scopeType이 "resetTiming"인 경우에만 적용됩니다.notReset: 리셋 안 함 / daily: 매일 / weekly: 매주 / monthly: 매월 / days: 일정 일수마다 / <br>※ scopeType이(가) "resetTiming" 이면 필수 |
| conditionName | string | {scopeType} == "verifyAction" | ✓※|  |  ~ 128자 | 조건 이름<br>이 스코프 값이 대응하는 검증 액션 조건의 이름입니다. 이 값이 어느 조건 스코프에 속하는지 식별하는 데 사용됩니다. scopeType이 "verifyAction"인 경우에만 적용됩니다.<br>※ scopeType이(가) "verifyAction" 이면 필수 |
| value | long |  | | 0 | 0 ~ 9223372036854775805 | 카운트<br>이 스코프의 누적 카운터 값입니다. 카운터가 증가하면 늘어나고 감소하면 줄어듭니다. 값은 최댓값으로 상한이 설정되며, 0 미만으로 내려가지 않습니다. |
| multiplyValueSpecifyingQuantity | bool |  | | false |  | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:VerifyCounterValueByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "counterName": "[string]카운터 모델 이름",
        "verifyType": "[string]검증 종류",
        "scopeType": "[string]스코프 종류",
        "resetType": "[string]리셋 타이밍",
        "conditionName": "[string]조건 이름",
        "value": "[long]카운트",
        "multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:VerifyCounterValueByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  counterName: "[string]카운터 모델 이름"
  verifyType: "[string]검증 종류"
  scopeType: "[string]스코프 종류"
  resetType: "[string]리셋 타이밍"
  conditionName: "[string]조건 이름"
  value: "[long]카운트"
  multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").verify.verify_counter_value_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    counterName="[string]카운터 모델 이름",
    verifyType="[string]검증 종류",
    scopeType="[string]스코프 종류",
    resetType="[string]리셋 타이밍",
    conditionName="[string]조건 이름",
    value="[long]카운트",
    multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Consume Action

소비 액션

### Gs2Mission:ReceiveByUserId

미션 달성 보상 수령<br>

지정된 사용자의 지정 미션 태스크를 수령 완료 상태로 표시합니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| missionGroupName | string |  | ✓|  |  ~ 128자 | 미션 그룹명<br>이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다. |
| missionTaskName | string |  | ✓|  |  ~ 128자 | 태스크 이름 |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:ReceiveByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "missionTaskName": "[string]태스크 이름",
        "userId": "[string]사용자ID",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:ReceiveByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  missionTaskName: "[string]태스크 이름"
  userId: "[string]사용자ID"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").consume.receive_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    missionTaskName="[string]태스크 이름",
    userId="[string]사용자ID",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Mission:BatchReceiveByUserId

여러 미션 태스크의 달성 보상을 일괄로 수령 상태로 변경<br>

동일한 미션 그룹 내 여러 미션 태스크를 일괄로 수령 완료 상태로 표시합니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| missionGroupName | string |  | ✓|  |  ~ 128자 | 미션 그룹명<br>이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| missionTaskNames | List&lt;string&gt; |  | ✓|  | 1 ~ 100 items | 태스크 이름 리스트 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:BatchReceiveByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "userId": "[string]사용자ID",
        "missionTaskNames": [
            "[string]태스크 이름"
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:BatchReceiveByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  userId: "[string]사용자ID"
  missionTaskNames: 
    - "[string]태스크 이름"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").consume.batch_receive_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    userId="[string]사용자ID",
    missionTaskNames={
        "[string]태스크 이름"
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Mission:DecreaseCounterByUserId

사용자 ID를 지정하여 카운터 감산<br>

지정된 사용자의 카운터에서 지정한 값을 감산합니다.

**수량 지정 가능한 액션: 예**

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 모델 이름<br>이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| value | long |  | ✓|  | 1 ~ 9223372036854775805 | 감산할 값 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:DecreaseCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "counterName": "[string]카운터 모델 이름",
        "userId": "[string]사용자ID",
        "value": "[long]감산할 값",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:DecreaseCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  counterName: "[string]카운터 모델 이름"
  userId: "[string]사용자ID"
  value: "[long]감산할 값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").consume.decrease_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    counterName="[string]카운터 모델 이름",
    userId="[string]사용자ID",
    value="[long]감산할 값",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Mission:ResetCounterByUserId

사용자 ID를 지정하여 카운터 리셋<br>

지정된 사용자의 지정된 스코프의 카운터 값을 리셋합니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 모델 이름<br>이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다. |
| scopes | List&lt;ScopedValue&gt; |  | ✓|  | 1 ~ 20 items | 스코프 리스트 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:ResetCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "counterName": "[string]카운터 모델 이름",
        "scopes": [
            {
                "scopeType": "[string]스코프 종류",
                "resetType": "[string]리셋 타이밍",
                "conditionName": "[string]조건 이름",
                "value": "[long]카운트",
                "nextResetAt": "[long]다음 리셋 타이밍",
                "updatedAt": "[long]최종 갱신일시"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:ResetCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  counterName: "[string]카운터 모델 이름"
  scopes: 
    - scopeType: "[string]스코프 종류"
      resetType: "[string]리셋 타이밍"
      conditionName: "[string]조건 이름"
      value: "[long]카운트"
      nextResetAt: "[long]다음 리셋 타이밍"
      updatedAt: "[long]최종 갱신일시"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").consume.reset_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    counterName="[string]카운터 모델 이름",
    scopes={
        {
            scopeType="[string]스코프 종류",
            resetType="[string]리셋 타이밍",
            conditionName="[string]조건 이름",
            value="[long]카운트",
            nextResetAt="[long]다음 리셋 타이밍",
            updatedAt="[long]최종 갱신일시"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Acquire Action

입수 액션

### Gs2Mission:RevertReceiveByUserId

미션 달성 보상을 미수령 상태로 되돌리기<br>

미션 태스크의 수령 상태를 미수령으로 되돌립니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| missionGroupName | string |  | ✓|  |  ~ 128자 | 미션 그룹명<br>이 달성 상황 레코드가 속한 미션 그룹의 이름입니다. 사용자별·미션 그룹별로 하나의 달성 상황 레코드가 존재합니다. |
| missionTaskName | string |  | ✓|  |  ~ 128자 | 태스크 이름 |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:RevertReceiveByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "missionGroupName": "[string]미션 그룹명",
        "missionTaskName": "[string]태스크 이름",
        "userId": "[string]사용자ID",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:RevertReceiveByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  missionGroupName: "[string]미션 그룹명"
  missionTaskName: "[string]태스크 이름"
  userId: "[string]사용자ID"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").acquire.revert_receive_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    missionGroupName="[string]미션 그룹명",
    missionTaskName="[string]태스크 이름",
    userId="[string]사용자ID",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Mission:IncreaseCounterByUserId

사용자 ID를 지정하여 카운터를 가산<br>

지정된 사용자의 카운터에 지정한 값을 가산합니다.<br>
가산 후, 이 카운터를 참조하는 모든 미션 태스크가 자동으로 재평가되며, 새롭게 달성된 미션은 changedCompletes 응답에서 반환됩니다.

**수량 지정 가능한 액션: 예**

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 모델 이름<br>이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| value | long |  | ✓|  | 1 ~ 9223372036854775805 | 가산할 값 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:IncreaseCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "counterName": "[string]카운터 모델 이름",
        "userId": "[string]사용자ID",
        "value": "[long]가산할 값",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:IncreaseCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  counterName: "[string]카운터 모델 이름"
  userId: "[string]사용자ID"
  value: "[long]가산할 값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").acquire.increase_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    counterName="[string]카운터 모델 이름",
    userId="[string]사용자ID",
    value="[long]가산할 값",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Mission:SetCounterByUserId

사용자 ID를 지정하여 카운터를 설정<br>

지정된 사용자의 카운터의 스코프 값을 직접 설정하여 기존 값을 대체합니다.<br>
변경 전과 변경 후의 카운터 상태, 그리고 새롭게 달성된 미션이 changedCompletes 응답에서 반환됩니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 모델 이름<br>이 카운터 인스턴스의 기반이 되는 카운터 모델의 이름입니다. 스코프와 리셋 타이밍을 정의하는 카운터 모델 정의에 연결됩니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| values | List&lt;ScopedValue&gt; |  | |  | 0 ~ 20 items | 설정할 값의 리스트 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Mission:SetCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "counterName": "[string]카운터 모델 이름",
        "userId": "[string]사용자ID",
        "values": [
            {
                "scopeType": "[string]스코프 종류",
                "resetType": "[string]리셋 타이밍",
                "conditionName": "[string]조건 이름",
                "value": "[long]카운트",
                "nextResetAt": "[long]다음 리셋 타이밍",
                "updatedAt": "[long]최종 갱신일시"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Mission:SetCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  counterName: "[string]카운터 모델 이름"
  userId: "[string]사용자ID"
  values: 
    - scopeType: "[string]스코프 종류"
      resetType: "[string]리셋 타이밍"
      conditionName: "[string]조건 이름"
      value: "[long]카운트"
      nextResetAt: "[long]다음 리셋 타이밍"
      updatedAt: "[long]최종 갱신일시"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("mission").acquire.set_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    counterName="[string]카운터 모델 이름",
    userId="[string]사용자ID",
    values={
        {
            scopeType="[string]스코프 종류",
            resetType="[string]리셋 타이밍",
            conditionName="[string]조건 이름",
            value="[long]카운트",
            nextResetAt="[long]다음 리셋 타이밍",
            updatedAt="[long]최종 갱신일시"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---



