> 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
}
```


---
  



