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

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

트리거

acquire

아이템 입수

동기 실행 스크립트

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

Request
타입 설명
namespace Namespace 네임스페이스
inventory Inventory 인벤토리
itemSets ItemSet[] 아이템 세트 리스트
acquireItemName string 입수한 아이템 모델 이름
userId string 사용자ID
acquireCount long 입수 수량
expiresAt long 유효기간
UNIX 시간·밀리초
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
아이템 입수를 허용할지 여부
overrideAcquireCount int 0 ~ 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
타입 설명
namespace Namespace 네임스페이스
oldInventory Inventory 갱신 전 인벤토리
oldItemSets ItemSet[] 갱신 전 아이템 세트 리스트
newInventory Inventory 갱신 후 인벤토리
newItemSets ItemSet[] 갱신 후 아이템 세트 리스트
acquireItemName string 입수한 아이템 모델 이름
userId string 사용자ID
acquireCount long 입수 수량
overflowValue long 넘친 양
expiresAt long 유효기간
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
타입 설명
namespace Namespace 네임스페이스
inventory Inventory 인벤토리
itemModel ItemModel 아이템 모델
userId string 사용자ID
overflowValue long 넘친 양
구현 예제
-- 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
타입 설명
namespace Namespace 네임스페이스
inventory Inventory 인벤토리
itemSets ItemSet[] 아이템 세트 리스트
consumeItemName string 소비한 아이템 모델 이름
userId string 사용자ID
consumeCount long 소비 수량
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
아이템 소비를 허용할지 여부
overrideConsumeCount int 0 ~ 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
타입 설명
namespace Namespace 네임스페이스
oldInventory Inventory 소비 전 인벤토리
oldItemSets ItemSet[] 소비 전 아이템 세트 리스트
newInventory Inventory 소비 후 인벤토리
newItemSets ItemSet[] 소비 후 아이템 세트 리스트
consumeItemName string 소비한 아이템 모델 이름
userId string 사용자ID
consumeCount long 소비 수량
구현 예제
-- 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
simpleItems SimpleItem[] 심플 아이템 리스트
userId string 사용자ID
acquireCounts AcquireCount[] 심플 아이템의 입수 수량 리스트
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
심플 아이템 입수를 허용할지 여부
overrideAcquireCounts AcquireCount[] 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
oldSimpleItems SimpleItem[] 갱신 전 심플 아이템 리스트
newSimpleItems SimpleItem[] 갱신 후 심플 아이템 리스트
userId string 사용자ID
acquireCounts AcquireCount[] 심플 아이템 리스트
구현 예제
-- 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
simpleItems SimpleItem[] 심플 아이템 리스트
userId string 사용자ID
consumeCounts ConsumeCount[] 심플 아이템의 소비 수량 리스트
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
심플 아이템 소비를 허용할지 여부
overrideConsumeCounts ConsumeCount[] 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 심플 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 심플 인벤토리 모델의 이름입니다. 사용자의 심플 인벤토리 인스턴스를 모델 정의에 연결합니다.
oldSimpleItems SimpleItem[] 갱신 전 심플 아이템 리스트
newSimpleItems SimpleItem[] 갱신 후 심플 아이템 리스트
userId string 사용자ID
consumeCounts ConsumeCount[] 심플 아이템의 소비 수량 리스트
구현 예제
-- 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemName string 거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
item BigItem 거대 아이템
userId string 사용자ID
acquireCount string 거대 아이템의 입수 수량
최대 1024자리까지의 정수값 문자열
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
거대 아이템 입수를 허용할지 여부
rate float 1.0 0 ~ 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemName string 거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
oldItem BigItem 갱신 전 거대 아이템
newItem BigItem 갱신 후 거대 아이템
userId string 사용자ID
acquireCount string 거대 아이템의 입수 수량
최대 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemName string 거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
item BigItem 거대 아이템
userId string 사용자ID
consumeCount string 거대 아이템의 소비 수량
최대 1024자리까지의 정수값 문자열
Result
타입 필수 기본값 값 제한 설명
permit bool
✓
거대 아이템 소비를 허용할지 여부
rate float 1.0 0 ~ 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
타입 설명
namespace Namespace 네임스페이스
inventoryName string 거대 인벤토리 모델명
이 인벤토리의 아이템 종류를 정의하는 거대 인벤토리 모델의 이름입니다. 사용자의 거대 인벤토리 인스턴스를 모델 정의에 연결합니다.
itemName string 거대 아이템 모델 이름
이 레코드에 저장된 아이템의 종류를 정의하는 거대 아이템 모델의 이름입니다. 이 거대 아이템 소지품이 어떤 아이템 정의에 대응하는지 식별하는 데 사용됩니다.
oldItem BigItem 갱신 전 거대 아이템
newItem BigItem 갱신 후 거대 아이템
userId string 사용자ID
consumeCount string 거대 아이템의 소비 수량
최대 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 = {
}