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

# GS2-Limit 트랜잭션 액션

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




## Verify Action

검증 액션

### Gs2Limit:VerifyCounterByUserId

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

지정된 사용자의 카운터 값이 지정된 조건을 충족하는지 검증합니다.<br>
less, lessEqual, greater, greaterEqual, equal, notEqual의 6가지 비교 연산자를 지원합니다.

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

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| limitName | string |  | ✓|  |  ~ 128자 | 사용 횟수 제한 모델 이름<br>이 카운터가 속한 사용 횟수 제한 모델의 이름입니다. 이 카운터 값에 적용되는 리셋 일정(매일, 매주, 매월 등)을 결정합니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 이름<br>사용 횟수 제한 모델 내에서 이 카운터를 고유하게 식별하는 이름입니다. 동일한 사용 횟수 제한 모델을 서로 다른 이름의 여러 카운터로 공유할 수 있어, 개별 사용 횟수 제한 모델을 만들지 않고도 별도의 사용 횟수 추적(예: 퀘스트별 또는 상품별로 카운터 1개)이 가능합니다. |
| verifyType | 문자열 열거형<br>enum {<br>"less",<br>"lessEqual",<br>"greater",<br>"greaterEqual",<br>"equal",<br>"notEqual"<br>}<br> |  | ✓|  |  | 검증 종류less: 카운터 값이 지정 값 미만일 것 / lessEqual: 카운터 값이 지정 값 이하일 것 / greater: 카운터 값이 지정 값을 초과할 것 / greaterEqual: 카운터 값이 지정 값 이상일 것 / equal: 카운터 값이 지정 값과 일치할 것 / notEqual: 카운터 값이 지정 값과 일치하지 않을 것 /  |
| count | int |  | | 0 | 0 ~ 2147483646 | 카운트 값<br>이 카운터의 현재 사용 횟수입니다. countUp 조작으로 증가하며, 이때 지정된 최대값과 비교됩니다. 사용 횟수 제한 모델의 리셋 시점에 도달하면 자동으로 0으로 리셋됩니다. |
| multiplyValueSpecifyingQuantity | bool |  | | true |  | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Limit:VerifyCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "limitName": "[string]사용 횟수 제한 모델 이름",
        "counterName": "[string]카운터 이름",
        "verifyType": "[string]검증 종류",
        "count": "[int]카운트 값",
        "multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Limit:VerifyCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  limitName: "[string]사용 횟수 제한 모델 이름"
  counterName: "[string]카운터 이름"
  verifyType: "[string]검증 종류"
  count: "[int]카운트 값"
  multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("limit").verify.verify_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    limitName="[string]사용 횟수 제한 모델 이름",
    counterName="[string]카운터 이름",
    verifyType="[string]검증 종류",
    count="[int]카운트 값",
    multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Consume Action

소비 액션

### Gs2Limit:CountUpByUserId

사용자 ID를 지정하여 카운트업<br>

지정된 사용자의 카운터를 지정된 카운트업 값만큼 증가시킵니다.<br>
maxValue가 지정된 경우, 카운터는 해당 상한을 초과하지 않습니다. 작업이 최대값을 초과하는 경우 Overflow 오류가 반환됩니다.<br>
카운터가 아직 존재하지 않는 경우, 자동으로 생성됩니다.

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

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

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| limitName | string |  | ✓|  |  ~ 128자 | 사용 횟수 제한 모델 이름<br>이 카운터가 속한 사용 횟수 제한 모델의 이름입니다. 이 카운터 값에 적용되는 리셋 일정(매일, 매주, 매월 등)을 결정합니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 이름<br>사용 횟수 제한 모델 내에서 이 카운터를 고유하게 식별하는 이름입니다. 동일한 사용 횟수 제한 모델을 서로 다른 이름의 여러 카운터로 공유할 수 있어, 개별 사용 횟수 제한 모델을 만들지 않고도 별도의 사용 횟수 추적(예: 퀘스트별 또는 상품별로 카운터 1개)이 가능합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| countUpValue | int |  | | 1 | 1 ~ 2147483646 | 카운트업할 양 |
| maxValue | int |  | |  | 1 ~ 2147483646 | 카운트업을 허용하는 최댓값 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Limit:CountUpByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "limitName": "[string]사용 횟수 제한 모델 이름",
        "counterName": "[string]카운터 이름",
        "userId": "[string]사용자ID",
        "countUpValue": "[int]카운트업할 양",
        "maxValue": "[int]카운트업을 허용하는 최댓값",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Limit:CountUpByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  limitName: "[string]사용 횟수 제한 모델 이름"
  counterName: "[string]카운터 이름"
  userId: "[string]사용자ID"
  countUpValue: "[int]카운트업할 양"
  maxValue: "[int]카운트업을 허용하는 최댓값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("limit").consume.count_up_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    limitName="[string]사용 횟수 제한 모델 이름",
    counterName="[string]카운터 이름",
    userId="[string]사용자ID",
    countUpValue="[int]카운트업할 양",
    maxValue="[int]카운트업을 허용하는 최댓값",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Acquire Action

입수 액션

### Gs2Limit:CountDownByUserId

사용자 ID를 지정하여 카운트다운<br>

지정된 사용자의 카운터를 지정된 카운트다운 값만큼 감소시킵니다.<br>
카운터 값은 0 미만으로 내려가지 않습니다.

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

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

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| limitName | string |  | ✓|  |  ~ 128자 | 사용 횟수 제한 모델 이름<br>이 카운터가 속한 사용 횟수 제한 모델의 이름입니다. 이 카운터 값에 적용되는 리셋 일정(매일, 매주, 매월 등)을 결정합니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 이름<br>사용 횟수 제한 모델 내에서 이 카운터를 고유하게 식별하는 이름입니다. 동일한 사용 횟수 제한 모델을 서로 다른 이름의 여러 카운터로 공유할 수 있어, 개별 사용 횟수 제한 모델을 만들지 않고도 별도의 사용 횟수 추적(예: 퀘스트별 또는 상품별로 카운터 1개)이 가능합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| countDownValue | int |  | | 1 | 1 ~ 2147483646 | 카운트다운할 양 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Limit:CountDownByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "limitName": "[string]사용 횟수 제한 모델 이름",
        "counterName": "[string]카운터 이름",
        "userId": "[string]사용자ID",
        "countDownValue": "[int]카운트다운할 양",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Limit:CountDownByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  limitName: "[string]사용 횟수 제한 모델 이름"
  counterName: "[string]카운터 이름"
  userId: "[string]사용자ID"
  countDownValue: "[int]카운트다운할 양"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("limit").acquire.count_down_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    limitName="[string]사용 횟수 제한 모델 이름",
    counterName="[string]카운터 이름",
    userId="[string]사용자ID",
    countDownValue="[int]카운트다운할 양",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

### Gs2Limit:DeleteCounterByUserId

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

지정된 사용자의 카운터를 삭제하고 사용 횟수를 리셋합니다.<br>
이를 통해 이 카운터에 대한 횟수 제한이 실질적으로 해제되어, 사용자는 다시 0부터 카운트를 시작할 수 있습니다.

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

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

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| limitName | string |  | ✓|  |  ~ 128자 | 사용 횟수 제한 모델 이름<br>이 카운터가 속한 사용 횟수 제한 모델의 이름입니다. 이 카운터 값에 적용되는 리셋 일정(매일, 매주, 매월 등)을 결정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| counterName | string |  | ✓|  |  ~ 128자 | 카운터 이름<br>사용 횟수 제한 모델 내에서 이 카운터를 고유하게 식별하는 이름입니다. 동일한 사용 횟수 제한 모델을 서로 다른 이름의 여러 카운터로 공유할 수 있어, 개별 사용 횟수 제한 모델을 만들지 않고도 별도의 사용 횟수 추적(예: 퀘스트별 또는 상품별로 카운터 1개)이 가능합니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Limit:DeleteCounterByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "limitName": "[string]사용 횟수 제한 모델 이름",
        "userId": "[string]사용자ID",
        "counterName": "[string]카운터 이름",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Limit:DeleteCounterByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  limitName: "[string]사용 횟수 제한 모델 이름"
  userId: "[string]사용자ID"
  counterName: "[string]카운터 이름"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("limit").acquire.delete_counter_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    limitName="[string]사용 횟수 제한 모델 이름",
    userId="[string]사용자ID",
    counterName="[string]카운터 이름",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---



