GS2-Stamina 트랜잭션 액션
액션의 조합과 동시 실행
모든 서비스에 공통되는 전제는 트랜잭션 액션의 조합에 정리되어 있습니다. 먼저 그쪽을 읽어 주십시오. 이 절의 나머지는 GS2-Stamina 고유의 내용입니다.
GS2-Stamina의 트랜잭션 액션은 네임스페이스·사용자·스태미나 모델의 조합으로 결정되는 하나의 스태미나를 대상으로 합니다. 스태미나는 스태미나 값·최대값·회복 간격·회복량·초과값을 함께 보관하지만, 각 액션은 자신이 실제로 변경하는 값만 기록하므로 변경하는 값이 다르면 다른 대상이 됩니다.
| 조작 | 같은 행을 겹쳤을 때 | 중첩 너머 | 다른 대상이 되는 경계 |
|---|---|---|---|
스태미나 값의 회복·소비RecoverStaminaByUserId ConsumeStaminaByUserId | 통합된다. 합산한 값으로 판정된다 | 합산된다. 다만 회복의 합계가 자연 회복으로 도달할 수 있는 범위를 넘으면 충돌(409)이 되며, 재시도로는 해소되지 않습니다 | 네임스페이스·사용자·스태미나 모델·스태미나 값 |
최대값의 가산·감산RaiseMaxValueByUserId DecreaseMaxValueByUserId | 통합된다. 합산한 값으로 판정된다 | 합산된다 | 네임스페이스·사용자·스태미나 모델·최대값 |
최대값의 설정SetMaxValueByUserId | 같은 값이면 통합. 값이 다르면 발행 시에 오류 | 실패한다 | 네임스페이스·사용자·스태미나 모델·최대값 |
회복 간격의 설정SetRecoverIntervalByUserId | 같은 값이면 통합. 값이 다르면 발행 시에 오류 | 실패한다 | 네임스페이스·사용자·스태미나 모델·회복 간격 |
회복량의 설정SetRecoverValueByUserId | 같은 값이면 통합. 값이 다르면 발행 시에 오류 | 실패한다 | 네임스페이스·사용자·스태미나 모델·회복량 |
| 검증 액션 전반 | 임계값이 합산된 하나의 조건이 된다. 다른 서비스와 같은 「먼저 지정한 쪽이 남음」이 아니다 | 읽기만 하므로 충돌하지 않는다 | 네임스페이스·사용자·스태미나 모델·검증 타입 |
최대값의 행은 두 개이며 경계가 같으므로 함께 둘 수 없습니다. 설정과 가산·감산을 하나의 트랜잭션에 넣으면 실패합니다.
회복과 소비는 통합 후의 합계로 판정됩니다. 스태미나 값은 0을 밑돌 수 없고, 회복은 자연 회복으로 도달할 수 있는 범위를 넘을 수 없으므로, 단독으로는 들어가는 회복이라도 다른 회복과 합쳐지면 거부될 수 있습니다.
검증 액션은 트랜잭션 시작 시점의 스태미나를 봅니다. 같은 트랜잭션에서 도달하는 값을 검증할 수는 없습니다. 임계값이 묶여 버리므로, 검증 타입별로 하나까지로 해 주십시오.
중첩된 트랜잭션에 주의
예외는 회복뿐입니다. 회복이 안쪽과 바깥쪽 양쪽에서 도착하고 그 합계가 자연 회복으로 도달할 수 있는 범위를 넘으면, 재시도해도 해소되지 않는 충돌(409)이 됩니다. 하나의 스태미나에 대한 회복은 보상이나 추첨의 내용도 포함하여 1 트랜잭션당 한 군데로 모아 주십시오. 모을 수 없는 경우에는 아래의 설정으로 회피할 수 있습니다.
제한을 회피하고 싶은 경우
스태미나 값의 회복, 최대값의 가산·설정, 회복 간격과 회복량의 설정은 획득 액션, 스태미나 값의 소비와 최대값의 감산은 소비 액션입니다. 안쪽과 바깥쪽에서 도착한 회복끼리의 충돌은 acquireActionUseJobQueue를 활성화하면 해소되지만, 최대값의 설정과 감산의 공존은 enableAtomicCommit을 비활성화하지 않으면 해소되지 않습니다.
동시 실행과 재시도
회복·소비·최대값의 증감·회복 간격이나 회복량의 변경은 각각의 결과가 허용 범위에 들어가는 한, 동시 실행 요청이 몇 개 겹쳐도 충돌하지 않습니다. 변경하는 값이 다른 요청끼리도 충돌하지 않습니다.
그래도 충돌(409)이 반환되는 것은 동시에 실행된 소비의 합계가 보유한 스태미나를 초과한 경우, 동시에 실행된 회복이 자연 회복의 범위를 넘는 경우, 관리 콘솔이나 서버 API에서의 변경과 겹친 경우입니다. 첫 번째와 세 번째는 재시도하면 최신 상태로 다시 판정되므로, 들어가면 성공합니다.
Verify Action
검증 액션
Gs2Stamina:VerifyStaminaValueByUserId
사용자 ID를 지정하여 스타미나 현재값을 검증
지정된 사용자의 현재 스타미나 값이 지정된 조건을 지정된 임계값에 대해 충족하는지, 상태를 변경하지 않고 검증합니다.
수량 지정 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||||||||||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||||||||||||||||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||||||||||||||||
| verifyType | 문자열 열거형 enum { “less”, “lessEqual”, “greater”, “greaterEqual”, “equal”, “notEqual” } | ✓ | 검증 종류
| |||||||||||||||||
| value | int | ✓ | 0 ~ 2147483646 | 현재값 | ||||||||||||||||
| multiplyValueSpecifyingQuantity | bool | true | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 | |||||||||||||||||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:VerifyStaminaValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"userId": "[string]사용자ID",
"staminaName": "[string]스태미나 모델 이름",
"verifyType": "[string]검증 종류",
"value": "[int]현재값",
"multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:VerifyStaminaValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
userId: "[string]사용자ID"
staminaName: "[string]스태미나 모델 이름"
verifyType: "[string]검증 종류"
value: "[int]현재값"
multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").verify.verify_stamina_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
userId="[string]사용자ID",
staminaName="[string]스태미나 모델 이름",
verifyType="[string]검증 종류",
value="[int]현재값",
multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:VerifyStaminaMaxValueByUserId
사용자 ID를 지정하여 스태미나 최댓값 검증
지정된 사용자의 스태미나 최대 용량(버프에 의한 변경 포함)이 지정된 조건을 지정된 임곗값에 대해 충족하는지, 상태를 변경하지 않고 검증합니다.
수량 지정 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||||||||||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||||||||||||||||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||||||||||||||||
| verifyType | 문자열 열거형 enum { “less”, “lessEqual”, “greater”, “greaterEqual”, “equal”, “notEqual” } | ✓ | 검증 종류
| |||||||||||||||||
| value | int | ✓ | 0 ~ 2147483646 | 최대값 | ||||||||||||||||
| multiplyValueSpecifyingQuantity | bool | true | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 | |||||||||||||||||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:VerifyStaminaMaxValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"userId": "[string]사용자ID",
"staminaName": "[string]스태미나 모델 이름",
"verifyType": "[string]검증 종류",
"value": "[int]최대값",
"multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:VerifyStaminaMaxValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
userId: "[string]사용자ID"
staminaName: "[string]스태미나 모델 이름"
verifyType: "[string]검증 종류"
value: "[int]최대값"
multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").verify.verify_stamina_max_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
userId="[string]사용자ID",
staminaName="[string]스태미나 모델 이름",
verifyType="[string]검증 종류",
value="[int]최대값",
multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId
사용자 ID를 지정하여 스태미나 회복 간격(분) 검증
지정된 사용자의 스태미나 회복 간격(분)이 지정된 조건을 지정된 임곗값에 대해 충족하는지, 상태를 변경하지 않고 검증합니다.
수량 지정 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||||||||||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||||||||||||||||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||||||||||||||||
| verifyType | 문자열 열거형 enum { “less”, “lessEqual”, “greater”, “greaterEqual”, “equal”, “notEqual” } | ✓ | 검증 종류
| |||||||||||||||||
| value | int | ✓ | 0 ~ 2147483646 | 회복 속도 | ||||||||||||||||
| multiplyValueSpecifyingQuantity | bool | true | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 | |||||||||||||||||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"userId": "[string]사용자ID",
"staminaName": "[string]스태미나 모델 이름",
"verifyType": "[string]검증 종류",
"value": "[int]회복 속도",
"multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:VerifyStaminaRecoverIntervalMinutesByUserId
request:
namespaceName: "[string]네임스페이스 이름"
userId: "[string]사용자ID"
staminaName: "[string]스태미나 모델 이름"
verifyType: "[string]검증 종류"
value: "[int]회복 속도"
multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").verify.verify_stamina_recover_interval_minutes_by_user_id({
namespaceName="[string]네임스페이스 이름",
userId="[string]사용자ID",
staminaName="[string]스태미나 모델 이름",
verifyType="[string]검증 종류",
value="[int]회복 속도",
multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:VerifyStaminaRecoverValueByUserId
사용자 ID를 지정하여 스태미나 회복량 검증
지정된 사용자의 스태미나 회복량(버프에 의한 변경 포함)이 지정된 조건을 지정된 임곗값에 대해 충족하는지, 상태를 변경하지 않고 검증합니다.
수량 지정 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||||||||||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||||||||||||||||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||||||||||||||||
| verifyType | 문자열 열거형 enum { “less”, “lessEqual”, “greater”, “greaterEqual”, “equal”, “notEqual” } | ✓ | 검증 종류
| |||||||||||||||||
| value | int | ✓ | 0 ~ 2147483646 | 회복량 | ||||||||||||||||
| multiplyValueSpecifyingQuantity | bool | true | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 | |||||||||||||||||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:VerifyStaminaRecoverValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"userId": "[string]사용자ID",
"staminaName": "[string]스태미나 모델 이름",
"verifyType": "[string]검증 종류",
"value": "[int]회복량",
"multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:VerifyStaminaRecoverValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
userId: "[string]사용자ID"
staminaName: "[string]스태미나 모델 이름"
verifyType: "[string]검증 종류"
value: "[int]회복량"
multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").verify.verify_stamina_recover_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
userId="[string]사용자ID",
staminaName="[string]스태미나 모델 이름",
verifyType="[string]검증 종류",
value="[int]회복량",
multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:VerifyStaminaOverflowValueByUserId
사용자 ID를 지정하여 스태미나 오버플로우량 검증
지정된 사용자의 스태미나 오버플로우량이 지정된 조건을 지정된 임곗값에 대해 충족하는지, 상태를 변경하지 않고 검증합니다.
수량 지정 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||||||||||||||||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||||||||||||||||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||||||||||||||||
| verifyType | 문자열 열거형 enum { “less”, “lessEqual”, “greater”, “greaterEqual”, “equal”, “notEqual” } | ✓ | 검증 종류
| |||||||||||||||||
| value | int | ✓ | 0 ~ 2147483646 | 오버플로우량 | ||||||||||||||||
| multiplyValueSpecifyingQuantity | bool | true | 수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부 | |||||||||||||||||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:VerifyStaminaOverflowValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"userId": "[string]사용자ID",
"staminaName": "[string]스태미나 모델 이름",
"verifyType": "[string]검증 종류",
"value": "[int]오버플로우량",
"multiplyValueSpecifyingQuantity": "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:VerifyStaminaOverflowValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
userId: "[string]사용자ID"
staminaName: "[string]스태미나 모델 이름"
verifyType: "[string]검증 종류"
value: "[int]오버플로우량"
multiplyValueSpecifyingQuantity: "[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").verify.verify_stamina_overflow_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
userId="[string]사용자ID",
staminaName="[string]스태미나 모델 이름",
verifyType="[string]검증 종류",
value="[int]오버플로우량",
multiplyValueSpecifyingQuantity="[bool]수량을 지정했을 때, 검증에 사용하는 값도 곱할지 여부",
timeOffsetToken="[string]타임 오프셋 토큰",
})Consume Action
소비 액션
Gs2Stamina:DecreaseMaxValueByUserId
사용자 ID를 지정하여 스타미나 최대값 감산
지정된 사용자의 스타미나 최대 용량을 지정된 양만큼 감소시킵니다. 스타미나 용량에 대한 디버프나 페널티 적용에 사용할 수 있습니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| decreaseValue | int | ✓ | 0 ~ 2147483646 | 감산할 최대 스타미나 양 | ||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:DecreaseMaxValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"staminaName": "[string]스태미나 모델 이름",
"userId": "[string]사용자ID",
"decreaseValue": "[int]감산할 최대 스타미나 양",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:DecreaseMaxValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
staminaName: "[string]스태미나 모델 이름"
userId: "[string]사용자ID"
decreaseValue: "[int]감산할 최대 스타미나 양"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").consume.decrease_max_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
staminaName="[string]스태미나 모델 이름",
userId="[string]사용자ID",
decreaseValue="[int]감산할 최대 스타미나 양",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:ConsumeStaminaByUserId
사용자 ID를 지정하여 스타미나 소비
지정된 사용자의 현재 스타미나 값에서 지정된 양을 차감합니다. 현재 스타미나 값이 소비량보다 적은 경우 Insufficient 오류를 반환합니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| consumeValue | int | ✓ | 1 ~ 2147483646 | 소비할 스타미나 양 | ||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:ConsumeStaminaByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"staminaName": "[string]스태미나 모델 이름",
"userId": "[string]사용자ID",
"consumeValue": "[int]소비할 스타미나 양",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:ConsumeStaminaByUserId
request:
namespaceName: "[string]네임스페이스 이름"
staminaName: "[string]스태미나 모델 이름"
userId: "[string]사용자ID"
consumeValue: "[int]소비할 스타미나 양"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").consume.consume_stamina_by_user_id({
namespaceName="[string]네임스페이스 이름",
staminaName="[string]스태미나 모델 이름",
userId="[string]사용자ID",
consumeValue="[int]소비할 스타미나 양",
timeOffsetToken="[string]타임 오프셋 토큰",
})Acquire Action
입수 액션
Gs2Stamina:RecoverStaminaByUserId
사용자 ID를 지정하여 스타미나 회복
지정된 양의 스타미나를 최대 용량까지 회복합니다. 회복으로 인해 값이 최대값을 초과하고 오버플로 모드가 활성화된 경우, 초과분은 오버플로 값으로 기록됩니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| recoverValue | int | ✓ | 1 ~ 2147483646 | 스타미나의 회복량 | ||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:RecoverStaminaByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"staminaName": "[string]스태미나 모델 이름",
"userId": "[string]사용자ID",
"recoverValue": "[int]스타미나의 회복량",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:RecoverStaminaByUserId
request:
namespaceName: "[string]네임스페이스 이름"
staminaName: "[string]스태미나 모델 이름"
userId: "[string]사용자ID"
recoverValue: "[int]스타미나의 회복량"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").acquire.recover_stamina_by_user_id({
namespaceName="[string]네임스페이스 이름",
staminaName="[string]스태미나 모델 이름",
userId="[string]사용자ID",
recoverValue="[int]스타미나의 회복량",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:RaiseMaxValueByUserId
사용자 ID를 지정하여 스타미나의 최대값을 가산
지정된 양만큼 스타미나의 최대 용량을 영구적으로 증가시킵니다. 레벨업 보상이나 아이템 효과 등 영구적인 스탯 상승에 사용됩니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 예
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| raiseValue | int | ✓ | 0 ~ 2147483646 | 증가시킬 최대 스타미나 양 | ||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:RaiseMaxValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"staminaName": "[string]스태미나 모델 이름",
"userId": "[string]사용자ID",
"raiseValue": "[int]증가시킬 최대 스타미나 양",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:RaiseMaxValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
staminaName: "[string]스태미나 모델 이름"
userId: "[string]사용자ID"
raiseValue: "[int]증가시킬 최대 스타미나 양"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").acquire.raise_max_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
staminaName="[string]스태미나 모델 이름",
userId="[string]사용자ID",
raiseValue="[int]증가시킬 최대 스타미나 양",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:SetMaxValueByUserId
사용자 ID를 지정하여 스타미나의 최대값을 갱신
스타미나의 최대 용량을 지정된 값으로 설정합니다. 감사 목적으로 변경 전 스타미나 상태가 응답에 유지됩니다. 관리자에 의한 오버라이드나 특별 이벤트에서의 조정에 사용됩니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 아니오
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| maxValue | int | ✓ | 1 ~ 2147483646 | 스태미나 최대값 StaminaModel로부터 결정되며, 옵션으로 플레이어의 GS2-Experience 랭크에 따라 MaxStaminaTable로 오버라이드되는 사용자별 스태미나 최대값입니다. 오버플로우가 비활성화된 경우 initialCapacity가 하한이 됩니다. 오버플로우가 활성화된 경우 maxCapacity가 상한이 됩니다. 자연 회복은 이 값에서 멈춥니다. | ||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:SetMaxValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"staminaName": "[string]스태미나 모델 이름",
"userId": "[string]사용자ID",
"maxValue": "[int]스태미나 최대값",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:SetMaxValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
staminaName: "[string]스태미나 모델 이름"
userId: "[string]사용자ID"
maxValue: "[int]스태미나 최대값"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").acquire.set_max_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
staminaName="[string]스태미나 모델 이름",
userId="[string]사용자ID",
maxValue="[int]스태미나 최대값",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:SetRecoverIntervalByUserId
사용자 ID를 지정하여 스타미나 회복 간격(분)을 갱신
스타미나 회복 간격을 지정된 값(분)으로 설정합니다. 감사 목적으로 변경 전 스타미나 상태가 응답에 유지됩니다. 스타미나가 자동으로 회복되는 빈도를 제어합니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 아니오
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| recoverIntervalMinutes | int | ✓ | 1 ~ 2147483646 | 스타미나 회복 간격(분) | ||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:SetRecoverIntervalByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"staminaName": "[string]스태미나 모델 이름",
"userId": "[string]사용자ID",
"recoverIntervalMinutes": "[int]스타미나 회복 간격(분)",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:SetRecoverIntervalByUserId
request:
namespaceName: "[string]네임스페이스 이름"
staminaName: "[string]스태미나 모델 이름"
userId: "[string]사용자ID"
recoverIntervalMinutes: "[int]스타미나 회복 간격(분)"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").acquire.set_recover_interval_by_user_id({
namespaceName="[string]네임스페이스 이름",
staminaName="[string]스태미나 모델 이름",
userId="[string]사용자ID",
recoverIntervalMinutes="[int]스타미나 회복 간격(분)",
timeOffsetToken="[string]타임 오프셋 토큰",
})Gs2Stamina:SetRecoverValueByUserId
사용자 ID를 지정하여 스타미나의 회복량을 설정
스타미나의 회복량을 지정된 값으로 설정합니다. 감사 목적으로 변경 전 스타미나 상태가 응답에 유지됩니다. 회복 간격마다 회복되는 스타미나 양을 제어합니다.
수량 지정 가능한 액션: 예
반전 가능한 액션: 아니오
| 타입 | 활성화 조건 | 필수 | 기본값 | 값 제한 | 설명 | |
|---|---|---|---|---|---|---|
| namespaceName | string | ✓ | ~ 128자 | 네임스페이스 이름 네임스페이스 고유의 이름입니다. 영숫자 및 -(하이픈) _(언더스코어) .(마침표)로 지정합니다. | ||
| staminaName | string | ✓ | ~ 128자 | 스태미나 모델 이름 이 스태미나 인스턴스의 회복 파라미터, 용량, 테이블 참조를 정의하는 StaminaModel의 이름입니다. 사용자별 스태미나 상태를 대응하는 모델 정의와 연결합니다. | ||
| userId | string | ✓ | ~ 128자 | 사용자ID#{userId}로 설정하면 로그인 중인 사용자ID로 치환됩니다. | ||
| recoverValue | int | ✓ | 1 ~ 2147483646 | 스타미나의 회복량 | ||
| timeOffsetToken | string | ~ 1024자 | 타임 오프셋 토큰 |
{
"action": "Gs2Stamina:SetRecoverValueByUserId",
"request": {
"namespaceName": "[string]네임스페이스 이름",
"staminaName": "[string]스태미나 모델 이름",
"userId": "[string]사용자ID",
"recoverValue": "[int]스타미나의 회복량",
"timeOffsetToken": "[string]타임 오프셋 토큰"
}
}action: Gs2Stamina:SetRecoverValueByUserId
request:
namespaceName: "[string]네임스페이스 이름"
staminaName: "[string]스태미나 모델 이름"
userId: "[string]사용자ID"
recoverValue: "[int]스타미나의 회복량"
timeOffsetToken: "[string]타임 오프셋 토큰"transaction.service("stamina").acquire.set_recover_value_by_user_id({
namespaceName="[string]네임스페이스 이름",
staminaName="[string]스태미나 모델 이름",
userId="[string]사용자ID",
recoverValue="[int]스타미나의 회복량",
timeOffsetToken="[string]타임 오프셋 토큰",
})