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

# GS2-Lottery スクリプト トリガー リファレンス

拡張スクリプトを呼び出すイベントトリガーのリファレンス



## トリガー

### lottery

抽選
**関連するメソッド:**
drawByUserId - ユーザーIDを指定して抽選を実行
drawWithRandomSeedByUserId - ユーザーIDを指定して乱数シード付きで抽選を実行


#### 同期実行スクリプト

抽選処理の前に、スクリプトが同期実行されます。

##### Request

| | 型 | 説明 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | ネームスペース |
| lotteryModel | [LotteryModel](../sdk/#lotterymodel) | 抽選モデル |
| drawnPrizes | [DrawnPrize[]](../sdk/#drawnprize) | 抽選結果の景品リスト |
| boxItems | [BoxItems](../sdk/#boxitems) | ボックスの状態（景品と残数・初期数量の情報） |

##### Result

|  | 型 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- |
| permit | bool | ✓ |  |  | 抽選 を許可するか |
| overrideDrawnPrizes | DrawnPrize[] |  |  | 0 ~ 1000 items | 上書きする抽選結果の景品リスト |

##### 実装例


**Lua**
```lua

-- Request
local namespace = args.namespace
local lotteryModel = args.lotteryModel
local drawnPrizes = args.drawnPrizes
local boxItems = args.boxItems

-- Business logic:
local permit = true
local overrideDrawnPrizes = {}

-- Result
result = {
  permit=permit,
  overrideDrawnPrizes=overrideDrawnPrizes
}
```


---
  
### choicePrizeTable

排出確率テーブルを動的に変化させる
**関連するメソッド:**
drawByUserId - ユーザーIDを指定して抽選を実行


#### 同期実行スクリプト

排出確率テーブルを動的に変化させる処理の前に、スクリプトが同期実行されます。

##### Request

| | 型 | 説明 |
| --- | --- | --- |
| namespace | [Namespace](../sdk/#namespace) | ネームスペース |
| lotteryModel | [LotteryModel](../sdk/#lotterymodel) | 排出確率テーブルを動的に選択する対象の抽選モデル |
| userId | string | ユーザーID |
| count | int | 抽選回数 |

##### Result

|  | 型 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- |
| prizeTableNames | string[] | ✓ |  | 1 ~ 1000 items | 抽選に使用する排出確率テーブルの名前のリスト<br>応答値が10個で抽選回数が10未満の場合は、先頭から順番に使用されます。<br>抽選回数が10回で、10未満の排出確率テーブルを応答した場合、応答した排出確率テーブルを順番に使用し、残りは最後に応答した排出確率テーブルで抽選します。<br>例えば、3個の排出確率テーブルを応答した場合、1回目は1個目の排出確率テーブル、2回目は2個目の排出確率テーブル、3回目以降は3個目の排出確率テーブルで抽選します。 |

##### 実装例


**Lua**
```lua

-- Request
local namespace = args.namespace
local lotteryModel = args.lotteryModel
local userId = args.userId
local count = args.count

-- Business logic:
local prizeTableNames = {}

-- Result
result = {
  prizeTableNames=prizeTableNames
}
```


---
  



