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

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

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





## Consume Action

消費アクション

### Gs2SkillTree:MarkRestrainByUserId

ユーザーIDを指定してノードの解放状態を未解放化<br>

指定されたノードが拘束可能であることを検証し（依存するノードが解放状態でないことが必要です）、未解放としてマークします。

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

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

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | プロパティID<br>ユーザーごとに複数の独立したスキルツリーインスタンスを持つための識別子。<br/>同一ネームスペース内で、プレイヤーが異なるキャラクターやコンテキストに対して別々のスキルツリーを持つシナリオを実現します。<br/>最大1024文字。 |
| nodeModelNames | List&lt;string&gt; |  | ✓|  | 1 ~ 1000 items | ノードモデル名のリスト |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2SkillTree:MarkRestrainByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "propertyId": "[string]プロパティID",
        "nodeModelNames": [
            "[string]ノードモデル名"
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2SkillTree:MarkRestrainByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  propertyId: "[string]プロパティID"
  nodeModelNames: 
    - "[string]ノードモデル名"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("skillTree").consume.mark_restrain_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    propertyId="[string]プロパティID",
    nodeModelNames={
        "[string]ノードモデル名"
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

## Acquire Action

入手アクション

### Gs2SkillTree:MarkReleaseByUserId

ユーザーIDを指定して解放済みノードを記録<br>

指定されたノードが解放可能であることを検証し（前提ノードが既に解放済みである必要があります）、解放済みとしてマークします。

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

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

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| propertyId | string |  | ✓|  |  ~ 1024文字 | プロパティID<br>ユーザーごとに複数の独立したスキルツリーインスタンスを持つための識別子。<br/>同一ネームスペース内で、プレイヤーが異なるキャラクターやコンテキストに対して別々のスキルツリーを持つシナリオを実現します。<br/>最大1024文字。 |
| nodeModelNames | List&lt;string&gt; |  | ✓|  | 1 ~ 1000 items | ノードモデル名のリスト |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2SkillTree:MarkReleaseByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "propertyId": "[string]プロパティID",
        "nodeModelNames": [
            "[string]ノードモデル名"
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2SkillTree:MarkReleaseByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  propertyId: "[string]プロパティID"
  nodeModelNames: 
    - "[string]ノードモデル名"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("skillTree").acquire.mark_release_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    propertyId="[string]プロパティID",
    nodeModelNames={
        "[string]ノードモデル名"
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---



