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

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

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




## Verify Action

検証アクション

### Gs2Enchant:VerifyRarityParameterStatusByUserId

ユーザーIDを指定してレアリティパラメータを検証<br>

指定されたユーザーのレアリティパラメータの状態が指定された条件を満たすかどうかを検証します。<br>
3つの検証タイプがサポートされています：<br>
- 'have': 指定されたパラメータ値が状態に存在することを検証<br>
- 'havent': 指定されたパラメータ値が状態に存在しないことを検証<br>
- 'count': パラメータの数が指定された数と一致することを検証<br>
他のアクションを実行する前の前提条件チェックとして使用できます。

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

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| parameterName | string |  | ✓|  |  ~ 128文字 | レアリティパラメータモデル名<br>このステータスの抽選条件を定義するレアリティパラメータモデルの名前です。最大パラメータ数、付与数の抽選重み、値の抽選プールを指定するモデルを参照します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | パラメータの保有元リソースのプロパティID<br>これらのレアリティパラメータが紐付けられている特定のゲームリソース（例: 武器や装備アイテム）を識別します。通常、GS2-Inventory のアイテムなどのリソースをプロパティ ID で参照します。 |
| verifyType | 文字列列挙型<br>enum {<br>"havent",<br>"have",<br>"count"<br>}<br> |  | ✓|  |  | 検証の種類"havent": 指定したパラメータを保有していないこと / "have": 指定したパラメータを保有していること / "count": 保有しているパラメータの数が指定数であること /  |
| parameterValueName | string | {verifyType} in ["havent", "have"] | ✓※|  |  ~ 64文字 | 名前<br>この抽選エントリの識別子です。レアリティパラメータモデルの値プール内で一意である必要があります。抽選された際、この名前が結果のレアリティパラメータ値に保存されます。<br>※ verifyType が "havent","have"であれば 必須 |
| parameterCount | int | {verifyType} == "count" | ✓※|  | 0 ~ 10 | 検証するパラメータの数<br>※ verifyType が "count" であれば必須 |
| multiplyValueSpecifyingQuantity | bool |  | | false |  | 数量指定した際に、検証に使用する値も乗算するか |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Enchant:VerifyRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "parameterName": "[string]レアリティパラメータモデル名",
        "userId": "[string]ユーザーID",
        "propertyId": "[string]パラメータの保有元リソースのプロパティID",
        "verifyType": "[string]検証の種類",
        "parameterValueName": "[string]名前",
        "parameterCount": "[int]検証するパラメータの数",
        "multiplyValueSpecifyingQuantity": "[bool]数量指定した際に、検証に使用する値も乗算するか",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Enchant:VerifyRarityParameterStatusByUserId
request:
  namespaceName: "[string]ネームスペース名"
  parameterName: "[string]レアリティパラメータモデル名"
  userId: "[string]ユーザーID"
  propertyId: "[string]パラメータの保有元リソースのプロパティID"
  verifyType: "[string]検証の種類"
  parameterValueName: "[string]名前"
  parameterCount: "[int]検証するパラメータの数"
  multiplyValueSpecifyingQuantity: "[bool]数量指定した際に、検証に使用する値も乗算するか"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("enchant").verify.verify_rarity_parameter_status_by_user_id({
    namespaceName="[string]ネームスペース名",
    parameterName="[string]レアリティパラメータモデル名",
    userId="[string]ユーザーID",
    propertyId="[string]パラメータの保有元リソースのプロパティID",
    verifyType="[string]検証の種類",
    parameterValueName="[string]名前",
    parameterCount="[int]検証するパラメータの数",
    multiplyValueSpecifyingQuantity="[bool]数量指定した際に、検証に使用する値も乗算するか",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---


## Acquire Action

入手アクション

### Gs2Enchant:ReDrawBalanceParameterStatusByUserId

ユーザーIDを指定してバランスパラメータを再抽選<br>

特定のプロパティのバランスパラメータ値を再抽選し、合計値をパラメータ間で再分配します。<br>
fixedParameterNames にパラメータ名を指定することで、特定のパラメータを固定（ロック）して再抽選対象から除外できます（最大10個）。<br>
合計値の制約は維持されます：固定されたものを含むすべてのパラメータ値の合計は常にモデルの合計値と等しくなります。<br>
更新後と更新前のパラメータ状態の両方が返されます。

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

**反転可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| parameterName | string |  | ✓|  |  ~ 128文字 | バランスパラメータモデル名<br>このステータスの抽選条件を定義するバランスパラメータモデルの名前です。合計値、配分方針、利用可能なパラメータスロットを指定するモデルを参照します。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | パラメータの保有元リソースのプロパティID<br>これらのバランスパラメータが紐付けられている特定のゲームリソース（例: 武器や装備アイテム）を識別します。通常、GS2-Inventory のアイテムなどのリソースをプロパティ ID で参照します。 |
| fixedParameterNames | List&lt;string&gt; |  | | [] | 0 ~ 10 items | 再抽選しないパラメータの名前リスト |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Enchant:ReDrawBalanceParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "parameterName": "[string]バランスパラメータモデル名",
        "propertyId": "[string]パラメータの保有元リソースのプロパティID",
        "fixedParameterNames": [
            "[string]再抽選しないパラメータの名前"
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Enchant:ReDrawBalanceParameterStatusByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  parameterName: "[string]バランスパラメータモデル名"
  propertyId: "[string]パラメータの保有元リソースのプロパティID"
  fixedParameterNames: 
    - "[string]再抽選しないパラメータの名前"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("enchant").acquire.re_draw_balance_parameter_status_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    parameterName="[string]バランスパラメータモデル名",
    propertyId="[string]パラメータの保有元リソースのプロパティID",
    fixedParameterNames={
        "[string]再抽選しないパラメータの名前"
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2Enchant:SetBalanceParameterStatusByUserId

ユーザーIDを指定してバランスパラメータに任意の値を設定<br>

通常の抽選/再抽選メカニズムを経ずに、指定されたユーザーの特定のプロパティにパラメータ値を直接設定します。<br>
これは任意のパラメータ値を割り当てることができる管理操作です。<br>
更新後と更新前のパラメータ状態の両方が返されます。

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

**反転可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| parameterName | string |  | ✓|  |  ~ 128文字 | バランスパラメータモデル名<br>このステータスの抽選条件を定義するバランスパラメータモデルの名前です。合計値、配分方針、利用可能なパラメータスロットを指定するモデルを参照します。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | パラメータの保有元リソースのプロパティID<br>これらのバランスパラメータが紐付けられている特定のゲームリソース（例: 武器や装備アイテム）を識別します。通常、GS2-Inventory のアイテムなどのリソースをプロパティ ID で参照します。 |
| parameterValues | List&lt;BalanceParameterValue&gt; |  | ✓|  | 1 ~ 10 items | バランスパラメータの値リスト<br>抽選処理後に各パラメータスロットに割り当てられた具体的な値です。各エントリはモデルで定義されたパラメータスロットに対応し、割り当てられた実際の数値を保持します。すべての値の合計はモデルで指定された合計値と等しくなります。 |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Enchant:SetBalanceParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "parameterName": "[string]バランスパラメータモデル名",
        "propertyId": "[string]パラメータの保有元リソースのプロパティID",
        "parameterValues": [
            {
                "name": "[string]名前",
                "value": "[long]値"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Enchant:SetBalanceParameterStatusByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  parameterName: "[string]バランスパラメータモデル名"
  propertyId: "[string]パラメータの保有元リソースのプロパティID"
  parameterValues: 
    - name: "[string]名前"
      value: "[long]値"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("enchant").acquire.set_balance_parameter_status_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    parameterName="[string]バランスパラメータモデル名",
    propertyId="[string]パラメータの保有元リソースのプロパティID",
    parameterValues={
        {
            name="[string]名前",
            value="[long]値"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2Enchant:ReDrawRarityParameterStatusByUserId

ユーザーIDを指定してレアリティパラメータを再抽選<br>

特定のプロパティのレアリティパラメータ値を再抽選し、レアリティウェイトに基づいてランダムに新しい値を割り当てます。<br>
fixedParameterNames にパラメータ名を指定することで、特定のパラメータを固定（ロック）して再抽選対象から除外できます（最大10個）。<br>
固定されたパラメータは現在の値を保持し、固定されていないパラメータのみが再抽選されます。<br>
更新後と更新前のパラメータ状態の両方が返されます。

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

**反転可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| parameterName | string |  | ✓|  |  ~ 128文字 | レアリティパラメータモデル名<br>このステータスの抽選条件を定義するレアリティパラメータモデルの名前です。最大パラメータ数、付与数の抽選重み、値の抽選プールを指定するモデルを参照します。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | パラメータの保有元リソースのプロパティID<br>これらのレアリティパラメータが紐付けられている特定のゲームリソース（例: 武器や装備アイテム）を識別します。通常、GS2-Inventory のアイテムなどのリソースをプロパティ ID で参照します。 |
| fixedParameterNames | List&lt;string&gt; |  | |  | 0 ~ 10 items | 再抽選しないパラメータの名前リスト |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Enchant:ReDrawRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "parameterName": "[string]レアリティパラメータモデル名",
        "propertyId": "[string]パラメータの保有元リソースのプロパティID",
        "fixedParameterNames": [
            "[string]再抽選しないパラメータの名前"
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Enchant:ReDrawRarityParameterStatusByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  parameterName: "[string]レアリティパラメータモデル名"
  propertyId: "[string]パラメータの保有元リソースのプロパティID"
  fixedParameterNames: 
    - "[string]再抽選しないパラメータの名前"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("enchant").acquire.re_draw_rarity_parameter_status_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    parameterName="[string]レアリティパラメータモデル名",
    propertyId="[string]パラメータの保有元リソースのプロパティID",
    fixedParameterNames={
        "[string]再抽選しないパラメータの名前"
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2Enchant:AddRarityParameterStatusByUserId

ユーザーIDを指定してレアリティパラメータを追加<br>

レアリティウェイトに基づいてランダムに値を抽選し、既存のレアリティパラメータ状態に新しいパラメータスロットを追加します。<br>
count は追加するパラメータスロットの数（1〜10）を指定し、モデルの最大パラメータ数が上限となります。<br>
更新後と更新前のパラメータ状態の両方が返されます。

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

**反転可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| parameterName | string |  | ✓|  |  ~ 128文字 | レアリティパラメータモデル名<br>このステータスの抽選条件を定義するレアリティパラメータモデルの名前です。最大パラメータ数、付与数の抽選重み、値の抽選プールを指定するモデルを参照します。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | パラメータの保有元リソースのプロパティID<br>これらのレアリティパラメータが紐付けられている特定のゲームリソース（例: 武器や装備アイテム）を識別します。通常、GS2-Inventory のアイテムなどのリソースをプロパティ ID で参照します。 |
| count | int |  | | 1 | 1 ~ 10 | 追加するパラメータの数 |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Enchant:AddRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "parameterName": "[string]レアリティパラメータモデル名",
        "propertyId": "[string]パラメータの保有元リソースのプロパティID",
        "count": "[int]追加するパラメータの数",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Enchant:AddRarityParameterStatusByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  parameterName: "[string]レアリティパラメータモデル名"
  propertyId: "[string]パラメータの保有元リソースのプロパティID"
  count: "[int]追加するパラメータの数"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("enchant").acquire.add_rarity_parameter_status_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    parameterName="[string]レアリティパラメータモデル名",
    propertyId="[string]パラメータの保有元リソースのプロパティID",
    count="[int]追加するパラメータの数",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2Enchant:SetRarityParameterStatusByUserId

ユーザーIDを指定してレアリティパラメータに任意の値を設定<br>

通常の抽選/再抽選メカニズムを経ずに、指定されたユーザーの特定のプロパティにパラメータ値を直接設定します。<br>
これはレアリティウェイトに関係なく任意のパラメータ値を割り当てることができる管理操作です。<br>
更新後と更新前のパラメータ状態の両方が返されます。

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

**反転可能なアクション：いいえ**

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| parameterName | string |  | ✓|  |  ~ 128文字 | レアリティパラメータモデル名<br>このステータスの抽選条件を定義するレアリティパラメータモデルの名前です。最大パラメータ数、付与数の抽選重み、値の抽選プールを指定するモデルを参照します。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | パラメータの保有元リソースのプロパティID<br>これらのレアリティパラメータが紐付けられている特定のゲームリソース（例: 武器や装備アイテム）を識別します。通常、GS2-Inventory のアイテムなどのリソースをプロパティ ID で参照します。 |
| parameterValues | List&lt;RarityParameterValue&gt; |  | |  | 0 ~ 10 items | レアリティパラメータの値リスト<br>付与された各スロットに対して重み付き抽選で選択された具体的なパラメータ値です。エントリ数は付与数の抽選で決定され、各エントリの値は値モデルプールから選択されます。最大パラメータ数より少ないエントリ数になる場合があります。 |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Enchant:SetRarityParameterStatusByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "parameterName": "[string]レアリティパラメータモデル名",
        "propertyId": "[string]パラメータの保有元リソースのプロパティID",
        "parameterValues": [
            {
                "name": "[string]名前",
                "resourceName": "[string]リソースの名前",
                "resourceValue": "[long]リソースの値"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Enchant:SetRarityParameterStatusByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  parameterName: "[string]レアリティパラメータモデル名"
  propertyId: "[string]パラメータの保有元リソースのプロパティID"
  parameterValues: 
    - name: "[string]名前"
      resourceName: "[string]リソースの名前"
      resourceValue: "[long]リソースの値"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("enchant").acquire.set_rarity_parameter_status_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    parameterName="[string]レアリティパラメータモデル名",
    propertyId="[string]パラメータの保有元リソースのプロパティID",
    parameterValues={
        {
            name="[string]名前",
            resourceName="[string]リソースの名前",
            resourceValue="[long]リソースの値"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---



