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

# GS2-Quest 트랜잭션 액션

검증/소비/입수 각 트랜잭션 액션의 사양





## Consume Action

소비 액션

### Gs2Quest:DeleteProgressByUserId

사용자 ID를 지정하여 퀘스트 진행 상황 삭제<br>

지정한 사용자의 현재 퀘스트 진행 상황을 삭제합니다. 진행 중인 퀘스트를 취소하고 새로운 퀘스트를 시작할 수 있게 합니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 아니오**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Quest:DeleteProgressByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Quest:DeleteProgressByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("quest").consume.delete_progress_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---

## Acquire Action

입수 액션

### Gs2Quest:CreateProgressByUserId

사용자 ID를 지정하여 퀘스트 진행 상황 생성<br>

퀘스트 모델을 참조하여 퀘스트 콘텐츠 추첨을 수행하고 퀘스트를 시작합니다. 이미 진행 중인 퀘스트가 있는 경우, force 플래그가 설정되어 있지 않으면 오류를 반환합니다.

**수량 지정 가능한 액션: 아니오**

**반전 가능한 액션: 예**

|  | 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 |
| --- | --- | --- | --- | --- | --- | --- |
| namespaceName | string |  | ✓|  |  ~ 128자 | 네임스페이스 이름<br>네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. |
| userId | string |  | ✓|  |  ~ 128자 | 사용자ID<br>`#{userId}`로 설정하면 로그인 중인 사용자ID로 치환됩니다. |
| questModelId | string |  | ✓|  |  ~ 1024자 | 시작할 퀘스트 모델 GRN |
| force | bool |  | | false |  | 이미 시작한 퀘스트가 있는 경우 이를 파기하고 시작할지 여부 |
| config | List&lt;Config&gt; |  | | [] | 0 ~ 32 items | 트랜잭션 변수에 적용할 설정값 |
| timeOffsetToken | string |  | |  |  ~ 1024자 | 타임 오프셋 토큰 |




**JSON**
```json
{
    "action": "Gs2Quest:CreateProgressByUserId",
    "request": {
        "namespaceName": "[string]네임스페이스 이름",
        "userId": "[string]사용자ID",
        "questModelId": "[string]시작할 퀘스트 모델 GRN",
        "force": "[bool]이미 시작한 퀘스트가 있는 경우 이를 파기하고 시작할지 여부",
        "config": [
            {
                "key": "[string]이름",
                "value": "[string]값"
            }
        ],
        "timeOffsetToken": "[string]타임 오프셋 토큰"
    }
}
```

**YAML**
```yaml

action: Gs2Quest:CreateProgressByUserId
request:
  namespaceName: "[string]네임스페이스 이름"
  userId: "[string]사용자ID"
  questModelId: "[string]시작할 퀘스트 모델 GRN"
  force: "[bool]이미 시작한 퀘스트가 있는 경우 이를 파기하고 시작할지 여부"
  config: 
    - key: "[string]이름"
      value: "[string]값"
  timeOffsetToken: "[string]타임 오프셋 토큰"
```

**GS2-Script**
```lua

transaction.service("quest").acquire.create_progress_by_user_id({
    namespaceName="[string]네임스페이스 이름",
    userId="[string]사용자ID",
    questModelId="[string]시작할 퀘스트 모델 GRN",
    force="[bool]이미 시작한 퀘스트가 있는 경우 이를 파기하고 시작할지 여부",
    config={
        {
            key="[string]이름",
            value="[string]값"
        }
    },
    timeOffsetToken="[string]타임 오프셋 토큰",
})
```


---



