GS2-Inventory 스크립트 트리거 레퍼런스

확장 스크립트를 호출하는 이벤트 트리거의 레퍼런스

트리거

acquire

아이템 입수

동기 실행 스크립트

아이템 입수 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryInventory인벤토리
itemSetsItemSet[]아이템 세트 리스트
acquireItemNamestring입수한 아이템 모델 이름
userIdstring사용자ID
acquireCountlong입수 수량
expiresAtlong유효기간
UNIX 시간·밀리초
Result
타입필수기본값값 제한설명
permitbool
아이템 입수를 허용할지 여부
overrideAcquireCountint0 ~ 2147483645실제로 적용할 입수량
구현 예제
-- Request
local namespace = args.namespace
local inventory = args.inventory
local itemSets = args.itemSets
local acquireItemName = args.acquireItemName
local userId = args.userId
local acquireCount = args.acquireCount
local expiresAt = args.expiresAt

-- Business logic:
local permit = true
local overrideAcquireCount = 0

-- Result
result = {
  permit=permit,
  overrideAcquireCount=overrideAcquireCount
}

비동기 실행 스크립트

아이템 입수 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
oldInventoryInventory갱신 전 인벤토리
oldItemSetsItemSet[]갱신 전 아이템 세트 리스트
newInventoryInventory갱신 후 인벤토리
newItemSetsItemSet[]갱신 후 아이템 세트 리스트
acquireItemNamestring입수한 아이템 모델 이름
userIdstring사용자ID
acquireCountlong입수 수량
overflowValuelong넘친 양
expiresAtlong유효기간
UNIX 시간·밀리초
구현 예제
-- Request
local namespace = args.namespace
local oldInventory = args.oldInventory
local oldItemSets = args.oldItemSets
local newInventory = args.newInventory
local newItemSets = args.newItemSets
local acquireItemName = args.acquireItemName
local userId = args.userId
local acquireCount = args.acquireCount
local overflowValue = args.overflowValue
local expiresAt = args.expiresAt

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}

overflowDone

아이템 수가 입수 상한에 도달하여 입수하지 못한 수량의 통지 완료

동기 실행 스크립트

아이템 수가 입수 상한에 도달하여 입수하지 못한 수량의 통지 완료 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryInventory인벤토리
itemModelItemModel아이템 모델
userIdstring사용자ID
overflowValuelong넘친 양
구현 예제
-- Request
local namespace = args.namespace
local inventory = args.inventory
local itemModel = args.itemModel
local userId = args.userId
local overflowValue = args.overflowValue

-- Business logic:

-- Result
result = {
}

consume

아이템 소비

동기 실행 스크립트

아이템 소비 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryInventory인벤토리
itemSetsItemSet[]아이템 세트 리스트
consumeItemNamestring소비한 아이템 모델 이름
userIdstring사용자ID
consumeCountlong소비 수량
Result
타입필수기본값값 제한설명
permitbool
아이템 소비를 허용할지 여부
overrideConsumeCountint0 ~ 2147483645실제로 적용할 소비량
구현 예제
-- Request
local namespace = args.namespace
local inventory = args.inventory
local itemSets = args.itemSets
local consumeItemName = args.consumeItemName
local userId = args.userId
local consumeCount = args.consumeCount

-- Business logic:
local permit = true
local overrideConsumeCount = 0

-- Result
result = {
  permit=permit,
  overrideConsumeCount=overrideConsumeCount
}

비동기 실행 스크립트

아이템 소비 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
oldInventoryInventory소비 전 인벤토리
oldItemSetsItemSet[]소비 전 아이템 세트 리스트
newInventoryInventory소비 후 인벤토리
newItemSetsItemSet[]소비 후 아이템 세트 리스트
consumeItemNamestring소비한 아이템 모델 이름
userIdstring사용자ID
consumeCountlong소비 수량
구현 예제
-- Request
local namespace = args.namespace
local oldInventory = args.oldInventory
local oldItemSets = args.oldItemSets
local newInventory = args.newInventory
local newItemSets = args.newItemSets
local consumeItemName = args.consumeItemName
local userId = args.userId
local consumeCount = args.consumeCount

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}

simpleItemAcquire

심플 아이템 입수

동기 실행 스크립트

심플 아이템 입수 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
simpleItemsSimpleItem[]심플 아이템 리스트
userIdstring사용자ID
acquireCountsAcquireCount[]심플 아이템의 입수 수량 리스트
Result
타입필수기본값값 제한설명
permitbool
심플 아이템 입수를 허용할지 여부
overrideAcquireCountsAcquireCount[]0 ~ 100 items심플 아이템의 입수 수량 리스트
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local simpleItems = args.simpleItems
local userId = args.userId
local acquireCounts = args.acquireCounts

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

-- Result
result = {
  permit=permit,
  overrideAcquireCounts=overrideAcquireCounts
}

비동기 실행 스크립트

심플 아이템 입수 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
oldSimpleItemsSimpleItem[]갱신 전 심플 아이템 리스트
newSimpleItemsSimpleItem[]갱신 후 심플 아이템 리스트
userIdstring사용자ID
acquireCountsAcquireCount[]심플 아이템 리스트
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local oldSimpleItems = args.oldSimpleItems
local newSimpleItems = args.newSimpleItems
local userId = args.userId
local acquireCounts = args.acquireCounts

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}

simpleItemConsume

심플 아이템 소비

동기 실행 스크립트

심플 아이템 소비 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
simpleItemsSimpleItem[]심플 아이템 리스트
userIdstring사용자ID
consumeCountsConsumeCount[]심플 아이템의 소비 수량 리스트
Result
타입필수기본값값 제한설명
permitbool
심플 아이템 소비를 허용할지 여부
overrideConsumeCountsConsumeCount[]0 ~ 100 items심플 아이템 리스트
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local simpleItems = args.simpleItems
local userId = args.userId
local consumeCounts = args.consumeCounts

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

-- Result
result = {
  permit=permit,
  overrideConsumeCounts=overrideConsumeCounts
}

비동기 실행 스크립트

심플 아이템 소비 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
oldSimpleItemsSimpleItem[]갱신 전 심플 아이템 리스트
newSimpleItemsSimpleItem[]갱신 후 심플 아이템 리스트
userIdstring사용자ID
consumeCountsConsumeCount[]심플 아이템의 소비 수량 리스트
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local oldSimpleItems = args.oldSimpleItems
local newSimpleItems = args.newSimpleItems
local userId = args.userId
local consumeCounts = args.consumeCounts

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}

bigItemAcquire

거대 아이템 입수

동기 실행 스크립트

거대 아이템 입수 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemNamestring거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
itemBigItem거대 아이템
userIdstring사용자ID
acquireCountstring거대 아이템의 입수 수량
최대 1024자리까지의 정수값 문자열
Result
타입필수기본값값 제한설명
permitbool
거대 아이템 입수를 허용할지 여부
ratefloat1.00 ~ 1000획득량 배율
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local itemName = args.itemName
local item = args.item
local userId = args.userId
local acquireCount = args.acquireCount

-- Business logic:
local permit = true
local rate = 1.0

-- Result
result = {
  permit=permit,
  rate=rate
}

비동기 실행 스크립트

거대 아이템 입수 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemNamestring거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
oldItemBigItem갱신 전 거대 아이템
newItemBigItem갱신 후 거대 아이템
userIdstring사용자ID
acquireCountstring거대 아이템의 입수 수량
최대 1024자리까지의 정수값 문자열
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local itemName = args.itemName
local oldItem = args.oldItem
local newItem = args.newItem
local userId = args.userId
local acquireCount = args.acquireCount

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}

bigItemConsume

거대 아이템 소비

동기 실행 스크립트

거대 아이템 소비 처리 전에, 스크립트가 동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemNamestring거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
itemBigItem거대 아이템
userIdstring사용자ID
consumeCountstring거대 아이템의 소비 수량
최대 1024자리까지의 정수값 문자열
Result
타입필수기본값값 제한설명
permitbool
거대 아이템 소비를 허용할지 여부
ratefloat1.00 ~ 1000소비량 배율
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local itemName = args.itemName
local item = args.item
local userId = args.userId
local consumeCount = args.consumeCount

-- Business logic:
local permit = true
local rate = 1.0

-- Result
result = {
  permit=permit,
  rate=rate
}

비동기 실행 스크립트

거대 아이템 소비 처리 후에, 스크립트가 비동기 실행됩니다.

Request
타입설명
namespaceNamespace네임스페이스
inventoryNamestring거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemNamestring거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
oldItemBigItem갱신 전 거대 아이템
newItemBigItem갱신 후 거대 아이템
userIdstring사용자ID
consumeCountstring거대 아이템의 소비 수량
최대 1024자리까지의 정수값 문자열
구현 예제
-- Request
local namespace = args.namespace
local inventoryName = args.inventoryName
local itemName = args.itemName
local oldItem = args.oldItem
local newItem = args.newItem
local userId = args.userId
local consumeCount = args.consumeCount

-- 비동기 스크립트는 일반적으로 API 응답에 영향을 주지 않습니다.
-- 로그 출력이나 분석, 외부 알림 등에 사용됩니다.

result = {
}