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

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

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






## Acquire Action

入手アクション

### Gs2Lottery:DrawByUserId

ユーザーIDを指定して抽選を実行<br>

抽選モデルの設定に基づいて、指定されたユーザーの抽選を実行します。<br>
抽選は2つの方式をサポートします：排出確率テーブルモード（事前定義された確率テーブルを使用）とスクリプトモード（GS2-Script で景品を決定）。<br>
ボックス抽選モードでは、排出された景品はボックスから削除され再度排出されません。ボックスが空の場合は Empty エラーが返されます。<br>
排出された景品はトランザクションとして発行されます。

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

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

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名 |
| lotteryName | string |  | ✓|  |  ~ 128文字 | 抽選モデル名<br>抽選モデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| count | int |  | ✓|  | 1 ~ 1000 | 抽選回数 |
| config | List&lt;Config&gt; |  | | [] | 0 ~ 1000 items | トランザクションのプレースホルダに適用する設定値 |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Lottery:DrawByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "lotteryName": "[string]抽選モデル名",
        "userId": "[string]ユーザーID",
        "count": "[int]抽選回数",
        "config": [
            {
                "key": "[string]名前",
                "value": "[string]値"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Lottery:DrawByUserId
request:
  namespaceName: "[string]ネームスペース名"
  lotteryName: "[string]抽選モデル名"
  userId: "[string]ユーザーID"
  count: "[int]抽選回数"
  config: 
    - key: "[string]名前"
      value: "[string]値"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("lottery").acquire.draw_by_user_id({
    namespaceName="[string]ネームスペース名",
    lotteryName="[string]抽選モデル名",
    userId="[string]ユーザーID",
    count="[int]抽選回数",
    config={
        {
            key="[string]名前",
            value="[string]値"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---

### Gs2Lottery:ResetBoxByUserId

ユーザーIDを指定してボックスをリセット<br>

指定されたユーザーのボックスを初期状態にリセットし、排出済みのすべての景品をボックスに戻します。

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

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

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128文字 | ネームスペース名<br>ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。 |
| prizeTableName | string |  | ✓|  |  ~ 128文字 | 排出確率テーブル名 |
| userId | string |  | ✓|  |  ~ 128文字 | ユーザーID<br>`#{userId}` と設定することでログイン中のユーザーIDに置換されます。 |
| timeOffsetToken | string |  | |  |  ~ 1024文字 | タイムオフセットトークン |




**JSON**
```json
{
    "action": "Gs2Lottery:ResetBoxByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "prizeTableName": "[string]排出確率テーブル名",
        "userId": "[string]ユーザーID",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
```

**YAML**
```yaml

action: Gs2Lottery:ResetBoxByUserId
request:
  namespaceName: "[string]ネームスペース名"
  prizeTableName: "[string]排出確率テーブル名"
  userId: "[string]ユーザーID"
  timeOffsetToken: "[string]タイムオフセットトークン"
```

**GS2-Script**
```lua

transaction.service("lottery").acquire.reset_box_by_user_id({
    namespaceName="[string]ネームスペース名",
    prizeTableName="[string]排出確率テーブル名",
    userId="[string]ユーザーID",
    timeOffsetToken="[string]タイムオフセットトークン",
})
```


---



