GS2-Inventory トランザクションアクション

検証/消費/入手の各トランザクションアクションの仕様

アクションの組み合わせと同時実行

すべてのサービスに共通する前提は トランザクションアクションの組み合わせ にまとめています。先にそちらを読んでください。この節の残りは GS2-Inventory 固有の内容です。

GS2-Inventory のトランザクションアクションは 4 種類の対象を扱います。

  • アイテム : ネームスペース・ユーザー・インベントリ・アイテムモデルの組で決まります。そのアイテムのスタックと、スタックに付いた参照をまとめて保持します。スタックはアイテムセット名で区別されるひとまとまりで、有効期限を分けたい場合などに 1 つのアイテムが複数のスタックを持てます。
  • ビッグアイテム : 同じ組で決まります。通常のアイテムより大きな数を扱える所持数を 1 つ保持します。アイテムとは名前が同じでも別の対象です。
  • シンプルインベントリ : ネームスペース・ユーザー・インベントリの組で決まります。1 つの中にすべてのシンプルアイテムの所持数を保持しますが、書き込みはアイテム名ごとに分かれます。
  • インベントリの容量 : ネームスペース・ユーザー・インベントリの組で決まります。最大容量と使用量を別々に保持します。
操作同じ行を重ねたとき入れ子越し別の対象になる境界
アイテムの入手
AcquireItemSetByUserId
同じスタックなら統合され、個数が合算される。違うスタックへの入手を並べると失敗する失敗するインベントリ・アイテムモデル (アイテム)
アイテムの入手 (グレード指定)
AcquireItemSetWithGradeByUserId
スタックを 1 つ作る。同じアイテムへの 2 件目は黙って捨てられる失敗するインベントリ・アイテムモデル (アイテム)
アイテムの消費
ConsumeItemSetByUserId
統合され、個数が合算される失敗するインベントリ・アイテムモデル (アイテム)
参照の追加
AddReferenceOfByUserId
スタックと参照先がどちらも同じなら統合される。片方でも違うと失敗する失敗するインベントリ・アイテムモデル (アイテム)
参照の削除
DeleteReferenceOfByUserId
スタックと参照先がどちらも同じなら統合される。片方でも違うと失敗する失敗するインベントリ・アイテムモデル (アイテム)
ビッグアイテムの入手
AcquireBigItemByUserId
統合され、個数が合算される失敗するインベントリ・アイテムモデル (ビッグアイテム)
ビッグアイテムの消費
ConsumeBigItemByUserId
統合され、個数が合算される失敗するインベントリ・アイテムモデル (ビッグアイテム)
ビッグアイテムの設定
SetBigItemByUserId
同値なら統合。値が違えば発行時にエラー失敗するインベントリ・アイテムモデル (ビッグアイテム)
シンプルアイテムの入手・消費
AcquireSimpleItemsByUserId ConsumeSimpleItemsByUserId
混在してよい。アイテムごとに統合され、個数が合算される合算されるインベントリ・アイテム名
シンプルアイテムの設定
SetSimpleItemsByUserId
同値なら統合。値が違えば発行時にエラー失敗するインベントリ・アイテム名
容量の加算
AddCapacityByUserId
統合され、合算される合算されるインベントリ・最大容量
容量の設定
SetCapacityByUserId
同値なら統合。値が違えば発行時にエラー失敗するインベントリ・最大容量
所持数の検証
VerifyItemSetByUserId VerifySimpleItemByUserId VerifyBigItemByUserId
multiplyValueSpecifyingQuantity 未指定なら、検証タイプが greater greaterEqual のときしきい値が合算され、less lessEqual equal notEqual はまったく同じ検証が 1 件にまとめられる。明示的に指定した場合は検証タイプによらずその指定に従う読み取りだけなので衝突しないインベントリ・アイテムモデル・アイテムセット (指定できるアクションの場合)・検証タイプ
容量の検証
VerifyInventoryCurrentMaxCapacityByUserId
まったく同じ検証は 1 件にまとめられる読み取りだけなので衝突しないインベントリ・検証タイプ・しきい値
参照の検証
VerifyReferenceOfByUserId
まったく同じ検証は 1 件にまとめられる。しきい値を持たないため常にこの扱い読み取りだけなので衝突しないアイテム・検証タイプ・参照先

グレードを指定した入手は、同じアイテムに対して 1 トランザクションにつき 1 件までにしてください。 このアクションは個数を持たず、同じアイテムへの 2 件目はエラーにならないまま捨てられます。アイテムが違えばそれぞれ実行されます。

在庫数の検証 (VerifyItemSetByUserId VerifySimpleItemByUserId VerifyBigItemByUserId) は、しきい値が 1 個あたりの量なので既定で合算されます。最大容量の検証 (VerifyInventoryCurrentMaxCapacityByUserId) はインベントリの状態を見るものなので既定では合算されません。 最大容量でも合算したい場合は multiplyValueSpecifyingQuantity を明示的に true にしてください。

参照の追加・削除は、1 つのアクションで複数の参照先を指定する API がありません。同じアイテムに 2 つの参照を付けたい場合はトランザクションを分けてください。

同じ個数の入手が内側と外側から届いた場合は失敗せず、1 件にまとめられます。 抽選 2 本がどちらも同じアイテムを 1 個配ると、入るのは 1 個だけでエラーは出ません。個数が違えば失敗するので、静かに合わないのは個数が一致したときだけです。消費も同様です。

アイテムとビッグアイテムは、行が分かれていても境界が同じです。同じアイテムを触る 2 つの行を 1 つのトランザクションに入れると失敗します。入手と消費、入手と参照の追加、といった組み合わせがこれに当たります。

アイテムの入手・消費は容量の使用量も更新しますが、こちらは最大容量とは別の属性なので、容量の加算・設定と衝突することはありません。

スタック上限や容量を超えた入手はエラーになりません。 収まらなかったぶんはオーバーフローとして扱われ、ネームスペースに設定があれば GS2-Inbox などへ転送されます。設定がなければ失われます。統合されて個数が合算されると、単独なら収まっていた入手が上限に触れることがあるので、オーバーフローの受け皿を用意していない場合は注意してください。

打ち切られる条件は 3 つです。スタック上限まで詰めたうえで新しいスタックを作れないとき、つまり複数スタックが許可されていないか、インベントリの容量に空きがないときと、1 つのアイテムのスタック数が上限に達したときです。アイテムセット名を明示した入手は、そのスタックに収まらなかったぶんがそのままオーバーフローになります。

シンプルアイテムはアイテム名ごとに書き込みが分かれるので、違うアイテムであればいくつ並べても衝突しません。統合後の合計が所持数を超える消費はコンフリクト (409) として拒否され、何も消費されません。

検証アクションはトランザクション開始時点の状態を見ます。同じトランザクションで到達する所持数や容量を検証することはできません。

入れ子になったトランザクションに注意

シンプルアイテムと容量は入れ子越しでも安全です。値ごとに書き込むので、どちらの経路から届いても 1 回の更新にまとまります。

アイテムとビッグアイテムは違います。同じアイテムを内側と外側の両方から更新すると、行が同じでもトランザクションが失敗します。報酬や抽選が配るアイテムを外側でも触っていないか確認してください。

制限を回避したい場合

アイテムの入手、参照の追加・削除、容量とシンプルアイテムとビッグアイテムの設定は入手アクション、アイテムの消費は消費アクションです。入手アクションどうしの衝突は acquireActionUseJobQueue を有効にすれば解消できますが、入手と消費の同居は enableAtomicCommit を無効にしないと解消しません。

同時実行とリトライ

シンプルアイテムの入手・消費と、容量の加算は、同時実行のリクエストが何本重なってもコンフリクトしません。シンプルアイテムの例外は、同時に走った消費の合計が所持数を超えた場合で、このときはコンフリクト (409) になります。リトライすればその時点で所持数が足りていれば成功します。

アイテム、ビッグアイテム、容量の設定、管理コンソールやサーバー API からの変更は、リビジョンの照合を伴う書き込みなので、同じ対象への別の更新と重なるとコンフリクト (409) が返ることがあります。とくに容量の設定はインベントリ全体のリビジョンを見るため、同じインベントリへのアイテムの出し入れと重なっただけでも起こります。リクエストの内容に問題があるわけではないので、リトライすれば成功します。


Verify Action

検証アクション

Gs2Inventory:VerifyInventoryCurrentMaxCapacityByUserId

ユーザーIDを指定してインベントリの最大容量を検証

指定されたユーザーの現在の最大インベントリ容量が指定された条件を満たすことを検証します。
6つの比較演算子をサポートします:less、lessEqual、greater、greaterEqual、equal、notEqual。
検証にはバフ適用後の容量値(GS2-Buff からのアクティブなバフ効果を反映)が使用されます。

数量指定可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
inventoryNamestring
~ 128文字インベントリモデル名
このインベントリの構造と容量設定を定義するインベントリモデルの名前です。ユーザーのインベントリインスタンスをモデル定義にリンクし、使用可能なアイテムの種類と容量制限を決定します。
verifyType文字列列挙型
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
検証の種類
定義説明
less現在のインベントリの最大容量が指定値未満であること
lessEqual現在のインベントリの最大容量が指定値以下であること
greater現在のインベントリの最大容量が指定値超過であること
greaterEqual現在のインベントリの最大容量が指定値以上であること
equal現在のインベントリの最大容量が指定値と一致すること
notEqual現在のインベントリの最大容量が指定値と一致しないこと
currentInventoryMaxCapacityint
0 ~ 2147483646現在のインベントリの最大容量
multiplyValueSpecifyingQuantitybooltrue数量指定した際に、検証に使用する値も乗算するか
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:VerifyInventoryCurrentMaxCapacityByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "inventoryName": "[string]インベントリモデル名",
        "verifyType": "[string]検証の種類",
        "currentInventoryMaxCapacity": "[int]現在のインベントリの最大容量",
        "multiplyValueSpecifyingQuantity": "[bool]数量指定した際に、検証に使用する値も乗算するか",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:VerifyInventoryCurrentMaxCapacityByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  inventoryName: "[string]インベントリモデル名"
  verifyType: "[string]検証の種類"
  currentInventoryMaxCapacity: "[int]現在のインベントリの最大容量"
  multiplyValueSpecifyingQuantity: "[bool]数量指定した際に、検証に使用する値も乗算するか"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").verify.verify_inventory_current_max_capacity_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    inventoryName="[string]インベントリモデル名",
    verifyType="[string]検証の種類",
    currentInventoryMaxCapacity="[int]現在のインベントリの最大容量",
    multiplyValueSpecifyingQuantity="[bool]数量指定した際に、検証に使用する値も乗算するか",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:VerifyItemSetByUserId

ユーザーIDを指定してアイテムセットの所持数量の検証

指定されたユーザーの合計アイテム数量が指定された条件を満たすことを検証します。
数量は指定されたアイテムタイプのすべてのアイテムセットを合算して計算されます。
6つの比較演算子をサポートします:less、lessEqual、greater、greaterEqual、equal、notEqual。

数量指定可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
inventoryNamestring
~ 128文字インベントリモデル名
インベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
itemNamestring
~ 128文字アイテムモデル名
このセットに格納されているアイテムの種類を定義するアイテムモデルの名前です。inventoryNameと組み合わせて、このアイテムセットのスタック上限と複数スタック動作を決定します。
verifyType文字列列挙型
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
検証の種類
定義説明
less所持数量が指定値未満であること
lessEqual所持数量が指定値以下であること
greater所持数量が指定値超過であること
greaterEqual所持数量が指定値以上であること
equal所持数量が指定値と一致すること
notEqual所持数量が指定値と一致しないこと
itemSetNamestring~ 36文字アイテムセットを識別する名前
countlong
0 ~ 9223372036854775805所持数量
multiplyValueSpecifyingQuantitybooltrue数量指定した際に、検証に使用する値も乗算するか
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:VerifyItemSetByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "inventoryName": "[string]インベントリモデル名",
        "itemName": "[string]アイテムモデル名",
        "verifyType": "[string]検証の種類",
        "itemSetName": "[string]アイテムセットを識別する名前",
        "count": "[long]所持数量",
        "multiplyValueSpecifyingQuantity": "[bool]数量指定した際に、検証に使用する値も乗算するか",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:VerifyItemSetByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  inventoryName: "[string]インベントリモデル名"
  itemName: "[string]アイテムモデル名"
  verifyType: "[string]検証の種類"
  itemSetName: "[string]アイテムセットを識別する名前"
  count: "[long]所持数量"
  multiplyValueSpecifyingQuantity: "[bool]数量指定した際に、検証に使用する値も乗算するか"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").verify.verify_item_set_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    inventoryName="[string]インベントリモデル名",
    itemName="[string]アイテムモデル名",
    verifyType="[string]検証の種類",
    itemSetName="[string]アイテムセットを識別する名前",
    count="[long]所持数量",
    multiplyValueSpecifyingQuantity="[bool]数量指定した際に、検証に使用する値も乗算するか",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:VerifyReferenceOfByUserId

ユーザーIDを指定してアイテムの参照元を検証

指定ユーザーのアイテムセット上の参照元の状態を検証します。
4つの検証タイプをサポート: not_entry(参照元が未登録)、already_entry(参照元が登録済み)、empty(参照元がゼロ)、not_empty(参照元が1つ以上存在)。
条件が満たされない場合はエラーが返されます。

数量指定可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
このアイテムセットを含むインベントリモデルの名前です。itemNameと組み合わせて、この所持品がどのインベントリとアイテムの種類に属するかを識別するために使用されます。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
itemNamestring
~ 128文字アイテムモデル名
このセットに格納されているアイテムの種類を定義するアイテムモデルの名前です。inventoryNameと組み合わせて、このアイテムセットのスタック上限と複数スタック動作を決定します。
itemSetNamestring
UUID~ 36文字アイテムセットを識別する名前
アイテムセットの一意な名前を保持します。
名前は UUID(Universally Unique Identifier)フォーマットで自動的に生成され、各アイテムセットを識別するために使用されます。
referenceOfstring
~ 1024文字参照元
装備スロットや編成バインドなど、このアイテムセットへの外部参照を表す文字列識別子です。インベントリモデルでprotectReferencedItemが有効な場合、参照元を持つアイテムセットは消費または削除できません。
verifyType文字列列挙型
enum {
  “not_entry”,
  “already_entry”,
  “empty”,
  “not_empty”
}
検証の種類
定義説明
not_entry指定した参照元がまだ登録されていないこと
already_entry指定した参照元が既に登録されていること
empty参照元として登録されている要素がゼロであること
not_empty参照元として登録されている要素が1以上であること
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:VerifyReferenceOfByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "userId": "[string]ユーザーID",
        "itemName": "[string]アイテムモデル名",
        "itemSetName": "[string]アイテムセットを識別する名前",
        "referenceOf": "[string]参照元",
        "verifyType": "[string]検証の種類",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:VerifyReferenceOfByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  userId: "[string]ユーザーID"
  itemName: "[string]アイテムモデル名"
  itemSetName: "[string]アイテムセットを識別する名前"
  referenceOf: "[string]参照元"
  verifyType: "[string]検証の種類"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").verify.verify_reference_of_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    userId="[string]ユーザーID",
    itemName="[string]アイテムモデル名",
    itemSetName="[string]アイテムセットを識別する名前",
    referenceOf="[string]参照元",
    verifyType="[string]検証の種類",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:VerifySimpleItemByUserId

ユーザーIDを指定してシンプルアイテムの所持数量を検証

指定されたユーザーのシンプルアイテムの数量が指定された条件を満たすことを検証します。
6つの比較演算子をサポートします:less、lessEqual、greater、greaterEqual、equal、notEqual。

数量指定可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
inventoryNamestring
~ 128文字シンプルインベントリモデル名
シンプルインベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
itemNamestring
~ 128文字シンプルアイテムモデル名
このレコードに格納されているアイテムの種類を定義するシンプルアイテムモデルの名前です。この所持品がどのアイテム定義に対応するかを識別するために使用されます。
verifyType文字列列挙型
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
検証の種類
定義説明
less所持数量が指定値未満であること
lessEqual所持数量が指定値以下であること
greater所持数量が指定値超過であること
greaterEqual所持数量が指定値以上であること
equal所持数量が指定値と一致すること
notEqual所持数量が指定値と一致しないこと
countlong
0 ~ 9223372036854775805所持数量
multiplyValueSpecifyingQuantitybooltrue数量指定した際に、検証に使用する値も乗算するか
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:VerifySimpleItemByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "inventoryName": "[string]シンプルインベントリモデル名",
        "itemName": "[string]シンプルアイテムモデル名",
        "verifyType": "[string]検証の種類",
        "count": "[long]所持数量",
        "multiplyValueSpecifyingQuantity": "[bool]数量指定した際に、検証に使用する値も乗算するか",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:VerifySimpleItemByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  inventoryName: "[string]シンプルインベントリモデル名"
  itemName: "[string]シンプルアイテムモデル名"
  verifyType: "[string]検証の種類"
  count: "[long]所持数量"
  multiplyValueSpecifyingQuantity: "[bool]数量指定した際に、検証に使用する値も乗算するか"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").verify.verify_simple_item_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    inventoryName="[string]シンプルインベントリモデル名",
    itemName="[string]シンプルアイテムモデル名",
    verifyType="[string]検証の種類",
    count="[long]所持数量",
    multiplyValueSpecifyingQuantity="[bool]数量指定した際に、検証に使用する値も乗算するか",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:VerifyBigItemByUserId

ユーザーIDを指定して巨大アイテムの所持数量を検証

指定ユーザーの巨大アイテム数量が指定された条件を満たすかどうかを検証します。
6つの比較演算子をサポート: less, lessEqual, greater, greaterEqual, equal, notEqual。
比較は文字列ベースの数量に対して任意精度演算で実行されます。
条件が満たされない場合はエラーが返され、満たされる場合はリクエストが成功します。

数量指定可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
inventoryNamestring
~ 128文字巨大インベントリモデル名
巨大インベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
itemNamestring
~ 128文字巨大アイテムモデル名
このレコードに格納されているアイテムの種類を定義する巨大アイテムモデルの名前です。この巨大アイテムの所持品がどのアイテム定義に対応するかを識別するために使用されます。
verifyType文字列列挙型
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
検証の種類
定義説明
less所持数量が指定値未満であること
lessEqual所持数量が指定値以下であること
greater所持数量が指定値超過であること
greaterEqual所持数量が指定値以上であること
equal所持数量が指定値と一致すること
notEqual所持数量が指定値と一致しないこと
countstring
~ 1024文字所持数量
最大1024桁までの整数値文字列
multiplyValueSpecifyingQuantitybooltrue数量指定した際に、検証に使用する値も乗算するか
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:VerifyBigItemByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "inventoryName": "[string]巨大インベントリモデル名",
        "itemName": "[string]巨大アイテムモデル名",
        "verifyType": "[string]検証の種類",
        "count": "[string]所持数量",
        "multiplyValueSpecifyingQuantity": "[bool]数量指定した際に、検証に使用する値も乗算するか",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:VerifyBigItemByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  inventoryName: "[string]巨大インベントリモデル名"
  itemName: "[string]巨大アイテムモデル名"
  verifyType: "[string]検証の種類"
  count: "[string]所持数量"
  multiplyValueSpecifyingQuantity: "[bool]数量指定した際に、検証に使用する値も乗算するか"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").verify.verify_big_item_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    inventoryName="[string]巨大インベントリモデル名",
    itemName="[string]巨大アイテムモデル名",
    verifyType="[string]検証の種類",
    count="[string]所持数量",
    multiplyValueSpecifyingQuantity="[bool]数量指定した際に、検証に使用する値も乗算するか",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Consume Action

消費アクション

Gs2Inventory:ConsumeItemSetByUserId

ユーザーIDを指定してアイテムセットを消費

指定されたユーザーのインベントリ内の特定アイテムの数量を減少させます。
itemSetName を指定すると、その特定のスタックのみが消費対象になります。指定しない場合、そのアイテムタイプのすべてのスタックから消費されます。
アイテムセットの数量がゼロになると、自動的に削除されます。
十分なアイテムがない場合、Insufficient エラーが返されます。

数量指定可能なアクション:はい

反転可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
このアイテムセットを含むインベントリモデルの名前です。itemNameと組み合わせて、この所持品がどのインベントリとアイテムの種類に属するかを識別するために使用されます。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
itemNamestring
~ 128文字アイテムモデル名
このセットに格納されているアイテムの種類を定義するアイテムモデルの名前です。inventoryNameと組み合わせて、このアイテムセットのスタック上限と複数スタック動作を決定します。
consumeCountlong
1 ~ 9223372036854775805消費する量
itemSetNamestring~ 36文字アイテムセットを識別する名前
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:ConsumeItemSetByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "userId": "[string]ユーザーID",
        "itemName": "[string]アイテムモデル名",
        "consumeCount": "[long]消費する量",
        "itemSetName": "[string]アイテムセットを識別する名前",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:ConsumeItemSetByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  userId: "[string]ユーザーID"
  itemName: "[string]アイテムモデル名"
  consumeCount: "[long]消費する量"
  itemSetName: "[string]アイテムセットを識別する名前"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").consume.consume_item_set_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    userId="[string]ユーザーID",
    itemName="[string]アイテムモデル名",
    consumeCount="[long]消費する量",
    itemSetName="[string]アイテムセットを識別する名前",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:ConsumeSimpleItemsByUserId

ユーザーIDを指定してシンプルアイテムを消費

消費数量のバッチを使用して、指定されたユーザーのシンプルインベントリ内のアイテム数量を減少させます。
単一のアトミック操作で複数のアイテムを消費できます。いずれかのアイテムの数量が不足している場合、操作全体が失敗します。

数量指定可能なアクション:いいえ

反転可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字シンプルインベントリモデル名
シンプルインベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
consumeCountsList<ConsumeCount>
1 ~ 100 itemsシンプルアイテムの消費数量のリスト
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:ConsumeSimpleItemsByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]シンプルインベントリモデル名",
        "userId": "[string]ユーザーID",
        "consumeCounts": [
            {
                "itemName": "[string]シンプルアイテムモデル名",
                "count": "[long]消費する量"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:ConsumeSimpleItemsByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]シンプルインベントリモデル名"
  userId: "[string]ユーザーID"
  consumeCounts: 
    - itemName: "[string]シンプルアイテムモデル名"
      count: "[long]消費する量"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").consume.consume_simple_items_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]シンプルインベントリモデル名",
    userId="[string]ユーザーID",
    consumeCounts={
        {
            itemName="[string]シンプルアイテムモデル名",
            count="[long]消費する量"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:ConsumeBigItemByUserId

ユーザーIDを指定して巨大アイテムを消費

任意精度演算を使用して、指定ユーザーの巨大アイテム数量から指定された数量を減算します。
consumeCount は最大1024桁の有効な整数文字列でなければなりません。
現在の数量が不足している場合、Insufficient エラーが返され、減算は行われません。
ネームスペース設定により、巨大アイテム消費時にカスタムロジックを実行する GS2-Script を設定できます。

数量指定可能なアクション:はい

反転可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字巨大インベントリモデル名
巨大インベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
itemNamestring
~ 128文字巨大アイテムモデル名
巨大アイテムモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
consumeCountstring
~ 1024文字巨大アイテムの消費数量
最大1024桁までの整数値文字列
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:ConsumeBigItemByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]巨大インベントリモデル名",
        "userId": "[string]ユーザーID",
        "itemName": "[string]巨大アイテムモデル名",
        "consumeCount": "[string]巨大アイテムの消費数量",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:ConsumeBigItemByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]巨大インベントリモデル名"
  userId: "[string]ユーザーID"
  itemName: "[string]巨大アイテムモデル名"
  consumeCount: "[string]巨大アイテムの消費数量"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").consume.consume_big_item_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]巨大インベントリモデル名",
    userId="[string]ユーザーID",
    itemName="[string]巨大アイテムモデル名",
    consumeCount="[string]巨大アイテムの消費数量",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Acquire Action

入手アクション

Gs2Inventory:AddCapacityByUserId

ユーザーIDを指定してインベントリのキャパシティサイズを加算

指定された量だけユーザーのインベントリ容量を増加させます。
結果の容量はインベントリモデルの maxCapacity を超えることはできません。
インベントリがまだ存在しない場合、initialCapacity で自動的に作成された後、指定された値が加算されます。

数量指定可能なアクション:はい

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
このインベントリの構造と容量設定を定義するインベントリモデルの名前です。ユーザーのインベントリインスタンスをモデル定義にリンクし、使用可能なアイテムの種類と容量制限を決定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
addCapacityValueint
1 ~ 2147483646加算するキャパシティサイズ
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:AddCapacityByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "userId": "[string]ユーザーID",
        "addCapacityValue": "[int]加算するキャパシティサイズ",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:AddCapacityByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  userId: "[string]ユーザーID"
  addCapacityValue: "[int]加算するキャパシティサイズ"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.add_capacity_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    userId="[string]ユーザーID",
    addCapacityValue="[int]加算するキャパシティサイズ",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:SetCapacityByUserId

ユーザーIDを指定してインベントリのキャパシティサイズを設定

ユーザーのインベントリ容量を指定された絶対値に設定します。
更新前後のインベントリ状態を両方返すため、新旧の容量値を比較できます。
新しい容量値はインベントリモデルの maxCapacity を超えることはできません。

数量指定可能なアクション:はい

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
このインベントリの構造と容量設定を定義するインベントリモデルの名前です。ユーザーのインベントリインスタンスをモデル定義にリンクし、使用可能なアイテムの種類と容量制限を決定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
newCapacityValueint
1 ~ 2147483646インベントリの新しい最大キャパシティ
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:SetCapacityByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "userId": "[string]ユーザーID",
        "newCapacityValue": "[int]インベントリの新しい最大キャパシティ",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:SetCapacityByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  userId: "[string]ユーザーID"
  newCapacityValue: "[int]インベントリの新しい最大キャパシティ"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.set_capacity_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    userId="[string]ユーザーID",
    newCapacityValue="[int]インベントリの新しい最大キャパシティ",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:AcquireItemSetByUserId

ユーザーIDを指定してアイテムセットを入手

ユーザーのインベントリにアイテムを追加します。既存のアイテムセットに空き(スタック制限未満)がある場合はそこに追加され、そうでない場合は複数スタックが許可されていれば新しいアイテムセットが作成されます。
オプションの expiresAt で、新しく作成されるアイテムセットの有効期限を設定できます。有効期限が既に過去のアイテムは空として扱われます。
createNewItemSet が true の場合、既存のセットに空きがあっても常に新しいアイテムセットが作成されます。
合計数量がインベントリ容量を超える場合、オーバーフロー数量が返され、ネームスペースの設定に応じてオーバーフロー分が GS2-Inbox に転送される場合があります。

数量指定可能なアクション:はい

反転可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
インベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
itemNamestring
~ 128文字アイテムモデル名
このセットに格納されているアイテムの種類を定義するアイテムモデルの名前です。inventoryNameと組み合わせて、このアイテムセットのスタック上限と複数スタック動作を決定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
acquireCountlong
1 ~ 9223372036854775805入手する量
expiresAtlong0有効期限
UNIX 時間・ミリ秒
createNewItemSetboolfalse既存のアイテムセットに空きがあったとしても、新しいアイテムセットを作成するか
itemSetNamestring~ 36文字アイテムセットを識別する名前
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:AcquireItemSetByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "itemName": "[string]アイテムモデル名",
        "userId": "[string]ユーザーID",
        "acquireCount": "[long]入手する量",
        "expiresAt": "[long]有効期限",
        "createNewItemSet": "[bool]既存のアイテムセットに空きがあったとしても、新しいアイテムセットを作成するか",
        "itemSetName": "[string]アイテムセットを識別する名前",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:AcquireItemSetByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  itemName: "[string]アイテムモデル名"
  userId: "[string]ユーザーID"
  acquireCount: "[long]入手する量"
  expiresAt: "[long]有効期限"
  createNewItemSet: "[bool]既存のアイテムセットに空きがあったとしても、新しいアイテムセットを作成するか"
  itemSetName: "[string]アイテムセットを識別する名前"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.acquire_item_set_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    itemName="[string]アイテムモデル名",
    userId="[string]ユーザーID",
    acquireCount="[long]入手する量",
    expiresAt="[long]有効期限",
    createNewItemSet="[bool]既存のアイテムセットに空きがあったとしても、新しいアイテムセットを作成するか",
    itemSetName="[string]アイテムセットを識別する名前",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:AcquireItemSetWithGradeByUserId

ユーザーIDを指定して GS2-Grade にグレードを設定しつつ、アイテムセットを1つ入手

アイテムを1つ入手すると同時に、GS2-Grade を通じてグレード値を設定します。
各アイテムが異なるグレード値を持つ品質/ランクシステム(例:異なるステータスの装備)を持つアイテムに使用されます。
常に新しいアイテムセットが作成され(createNewItemSet の動作)、アイテム入手後に GS2-Grade の SetGradeByUserId を通じてグレードが設定されます。

数量指定可能なアクション:いいえ

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
インベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
itemNamestring
~ 128文字アイテムモデル名
このセットに格納されているアイテムの種類を定義するアイテムモデルの名前です。inventoryNameと組み合わせて、このアイテムセットのスタック上限と複数スタック動作を決定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
gradeModelIdstring
~ 1024文字グレードモデル GRN
gradeValuelong
1 ~ 9223372036854775805設定するグレード値
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:AcquireItemSetWithGradeByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "itemName": "[string]アイテムモデル名",
        "userId": "[string]ユーザーID",
        "gradeModelId": "[string]グレードモデルGRN",
        "gradeValue": "[long]設定するグレード値",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:AcquireItemSetWithGradeByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  itemName: "[string]アイテムモデル名"
  userId: "[string]ユーザーID"
  gradeModelId: "[string]グレードモデルGRN"
  gradeValue: "[long]設定するグレード値"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.acquire_item_set_with_grade_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    itemName="[string]アイテムモデル名",
    userId="[string]ユーザーID",
    gradeModelId="[string]グレードモデルGRN",
    gradeValue="[long]設定するグレード値",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:AddReferenceOfByUserId

ユーザーIDを指定してアイテムに参照元を追加

指定ユーザーの指定されたアイテムセットに参照元文字列を登録します。
参照元はアイテムセットを外部エンティティ(装備スロットやキャラクターなど)に関連付けます。
インベントリモデルで protectReferencedItem が有効な場合、参照元を持つアイテムは消費・削除できなくなり、装備中のアイテムの誤消費を防止できます。

数量指定可能なアクション:いいえ

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
このアイテムセットを含むインベントリモデルの名前です。itemNameと組み合わせて、この所持品がどのインベントリとアイテムの種類に属するかを識別するために使用されます。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
itemNamestring
~ 128文字アイテムモデル名
このセットに格納されているアイテムの種類を定義するアイテムモデルの名前です。inventoryNameと組み合わせて、このアイテムセットのスタック上限と複数スタック動作を決定します。
itemSetNamestring
UUID~ 36文字アイテムセットを識別する名前
アイテムセットの一意な名前を保持します。
名前は UUID(Universally Unique Identifier)フォーマットで自動的に生成され、各アイテムセットを識別するために使用されます。
referenceOfstring
~ 1024文字参照元
装備スロットや編成バインドなど、このアイテムセットへの外部参照を表す文字列識別子です。インベントリモデルでprotectReferencedItemが有効な場合、参照元を持つアイテムセットは消費または削除できません。
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:AddReferenceOfByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "userId": "[string]ユーザーID",
        "itemName": "[string]アイテムモデル名",
        "itemSetName": "[string]アイテムセットを識別する名前",
        "referenceOf": "[string]参照元",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:AddReferenceOfByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  userId: "[string]ユーザーID"
  itemName: "[string]アイテムモデル名"
  itemSetName: "[string]アイテムセットを識別する名前"
  referenceOf: "[string]参照元"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.add_reference_of_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    userId="[string]ユーザーID",
    itemName="[string]アイテムモデル名",
    itemSetName="[string]アイテムセットを識別する名前",
    referenceOf="[string]参照元",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:DeleteReferenceOfByUserId

ユーザーIDを指定してアイテムの参照元を削除

指定ユーザーの指定されたアイテムセットから特定の参照元文字列を削除します。
削除後、protectReferencedItem が有効で他の参照元が残っていない場合、アイテムは再び消費・削除が可能になります。

数量指定可能なアクション:いいえ

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字インベントリモデル名
このアイテムセットを含むインベントリモデルの名前です。itemNameと組み合わせて、この所持品がどのインベントリとアイテムの種類に属するかを識別するために使用されます。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
itemNamestring
~ 128文字アイテムモデル名
このセットに格納されているアイテムの種類を定義するアイテムモデルの名前です。inventoryNameと組み合わせて、このアイテムセットのスタック上限と複数スタック動作を決定します。
itemSetNamestring
UUID~ 36文字アイテムセットを識別する名前
アイテムセットの一意な名前を保持します。
名前は UUID(Universally Unique Identifier)フォーマットで自動的に生成され、各アイテムセットを識別するために使用されます。
referenceOfstring
~ 1024文字参照元
装備スロットや編成バインドなど、このアイテムセットへの外部参照を表す文字列識別子です。インベントリモデルでprotectReferencedItemが有効な場合、参照元を持つアイテムセットは消費または削除できません。
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:DeleteReferenceOfByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]インベントリモデル名",
        "userId": "[string]ユーザーID",
        "itemName": "[string]アイテムモデル名",
        "itemSetName": "[string]アイテムセットを識別する名前",
        "referenceOf": "[string]参照元",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:DeleteReferenceOfByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]インベントリモデル名"
  userId: "[string]ユーザーID"
  itemName: "[string]アイテムモデル名"
  itemSetName: "[string]アイテムセットを識別する名前"
  referenceOf: "[string]参照元"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.delete_reference_of_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]インベントリモデル名",
    userId="[string]ユーザーID",
    itemName="[string]アイテムモデル名",
    itemSetName="[string]アイテムセットを識別する名前",
    referenceOf="[string]参照元",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:AcquireSimpleItemsByUserId

ユーザーIDを指定してシンプルアイテムを入手

入手数量のバッチを使用して、ユーザーのシンプルインベントリにアイテムを追加します。
単一のアトミック操作で複数のアイテムを入手できます。acquireCounts 配列で各アイテムの名前と数量を指定します。
通常のアイテムセットとは異なり、シンプルアイテムには容量制限、スタック制限、有効期限がありません。

数量指定可能なアクション:いいえ

反転可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字シンプルインベントリモデル名
シンプルインベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
acquireCountsList<AcquireCount>
1 ~ 100 itemsシンプルアイテムの入手数量リスト
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:AcquireSimpleItemsByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]シンプルインベントリモデル名",
        "userId": "[string]ユーザーID",
        "acquireCounts": [
            {
                "itemName": "[string]シンプルアイテムモデル名",
                "count": "[long]入手する量"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:AcquireSimpleItemsByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]シンプルインベントリモデル名"
  userId: "[string]ユーザーID"
  acquireCounts: 
    - itemName: "[string]シンプルアイテムモデル名"
      count: "[long]入手する量"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.acquire_simple_items_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]シンプルインベントリモデル名",
    userId="[string]ユーザーID",
    acquireCounts={
        {
            itemName="[string]シンプルアイテムモデル名",
            count="[long]入手する量"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:SetSimpleItemsByUserId

ユーザーIDを指定してシンプルアイテムを設定

単一のアトミック操作で複数のシンプルアイテムの絶対数量を設定します。
counts 配列で各アイテムの名前とターゲット数量を指定します。
入手/消費が相対的な操作であるのに対し、こちらは現在の数量を完全に上書きします。

数量指定可能なアクション:いいえ

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字シンプルインベントリモデル名
シンプルインベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
countsList<HeldCount>
1 ~ 100 itemsシンプルアイテムの所持数量リスト
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:SetSimpleItemsByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]シンプルインベントリモデル名",
        "userId": "[string]ユーザーID",
        "counts": [
            {
                "itemName": "[string]シンプルアイテムモデル名",
                "count": "[long]所持数量"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:SetSimpleItemsByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]シンプルインベントリモデル名"
  userId: "[string]ユーザーID"
  counts: 
    - itemName: "[string]シンプルアイテムモデル名"
      count: "[long]所持数量"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.set_simple_items_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]シンプルインベントリモデル名",
    userId="[string]ユーザーID",
    counts={
        {
            itemName="[string]シンプルアイテムモデル名",
            count="[long]所持数量"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:AcquireBigItemByUserId

ユーザーIDを指定して巨大アイテムを入手

任意精度演算を使用して、ユーザーの巨大アイテム数量に指定された数量を加算します。
acquireCount は最大1024桁の有効な整数文字列でなければならず、無効な形式はエラーになります。
アイテムがまだ存在しない場合は自動的に作成されます。
ネームスペース設定により、巨大アイテム入手時にカスタムロジックを実行する GS2-Script を設定できます。

数量指定可能なアクション:はい

反転可能なアクション:はい

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字巨大インベントリモデル名
巨大インベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
itemNamestring
~ 128文字巨大アイテムモデル名
巨大アイテムモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
acquireCountstring
~ 1024文字巨大アイテムの入手数量
最大1024桁までの整数値文字列
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:AcquireBigItemByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]巨大インベントリモデル名",
        "userId": "[string]ユーザーID",
        "itemName": "[string]巨大アイテムモデル名",
        "acquireCount": "[string]巨大アイテムの入手数量",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:AcquireBigItemByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]巨大インベントリモデル名"
  userId: "[string]ユーザーID"
  itemName: "[string]巨大アイテムモデル名"
  acquireCount: "[string]巨大アイテムの入手数量"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.acquire_big_item_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]巨大インベントリモデル名",
    userId="[string]ユーザーID",
    itemName="[string]巨大アイテムモデル名",
    acquireCount="[string]巨大アイテムの入手数量",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Inventory:SetBigItemByUserId

ユーザーIDを指定して巨大アイテムを設定

巨大アイテムの数量を指定された絶対値に設定し、現在の数量を完全に置き換えます。
数量は最大1024桁の有効な整数文字列でなければなりません。
アイテムがまだ存在しない場合は自動的に作成されます。
入手・消費のような相対操作とは異なり、正確な値を直接設定します。

数量指定可能なアクション:はい

反転可能なアクション:いいえ

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
inventoryNamestring
~ 128文字巨大インベントリモデル名
巨大インベントリモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
itemNamestring
~ 128文字巨大アイテムモデル名
巨大アイテムモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
countstring
~ 1024文字巨大アイテムの数量
最大1024桁までの整数値文字列
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Inventory:SetBigItemByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "inventoryName": "[string]巨大インベントリモデル名",
        "userId": "[string]ユーザーID",
        "itemName": "[string]巨大アイテムモデル名",
        "count": "[string]巨大アイテムの数量",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Inventory:SetBigItemByUserId
request:
  namespaceName: "[string]ネームスペース名"
  inventoryName: "[string]巨大インベントリモデル名"
  userId: "[string]ユーザーID"
  itemName: "[string]巨大アイテムモデル名"
  count: "[string]巨大アイテムの数量"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("inventory").acquire.set_big_item_by_user_id({
    namespaceName="[string]ネームスペース名",
    inventoryName="[string]巨大インベントリモデル名",
    userId="[string]ユーザーID",
    itemName="[string]巨大アイテムモデル名",
    count="[string]巨大アイテムの数量",
    timeOffsetToken="[string]タイムオフセットトークン",
})