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

# GS2-Limit トランザクションアクション

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




## Verify Action

検証アクション

### Gs2Limit:VerifyCounterByUserId

ユーザーIDを指定してカウンター値を検証<br>

指定されたユーザーのカウンター値が指定された条件を満たすことを検証します。<br>
6つの比較演算子をサポートします：less、lessEqual、greater、greaterEqual、equal、notEqual。

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

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| 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操作でインクリメントされ、その際に指定された最大値と比較されます。回数制限モデルのリセットタイミングに達すると自動的にゼロにリセットされます。 |
| 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]タイムオフセットトークン",
})
```


---



