NAV
GS2-Deploy

GS2-Showcase

GS2-Deploy のテンプレートで使用できるリソース定義のリファレンス

GS2-Deploy リファレンス

エンティティ

Namespace

Namespace

Type: GS2::Showcase::Namespace
Properties:
  Name: namespace1
  Description: null
  TransactionSetting: 
    EnableAutoRun: false
    QueueNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001
    KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001
  BuyScript: null
  QueueNamespaceId: null
  KeyId: null
  LogSetting: 
    LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1

ネームスペース

ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。
GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。

そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。

必須 デフォルト 値の制限 説明
name string ~ 32文字 ネームスペース名
description string ~ 1024文字 説明文
transactionSetting TransactionSetting トランザクション設定
buyScript ScriptSetting 購入を実行しようとした時に実行するスクリプト
queueNamespaceId string ~ 1024文字 スタンプシートの実行に使用する GS2-JobQueue のネームスペース
keyId string ~ 1024文字 スタンプシートの発行に使用する GS2-Key のネームスペース
logSetting LogSetting ログの出力設定

SalesItemMaster

SalesItemMaster

Type: GS2::Showcase::SalesItemMaster
Properties:
  NamespaceName: namespace1
  Name: sales-item-0001
  Description: null
  Metadata: null
  ConsumeActions: 
    - 
      Action: Gs2Money:WithdrawByUserId
      Request: {"moneyName": "money-0001", "userId": "user-0001", "slot": 0, "count": 100, "paidOnly": false}
  AcquireActions: 
    - 
      Action: Gs2Stamina:RecoverStaminaByUserId
      Request: {"moneyName": "money-0001", "userId": "user-0001", "slot": 0, "count": 100, "paidOnly": false}

商品

商品を購入するために必要となる対価と商品を購入したときに得られる報酬を設定します。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 商品名
description string ~ 1024文字 説明文
metadata string ~ 2048文字 メタデータ
consumeActions ConsumeAction[] 消費アクションリスト
acquireActions AcquireAction[] 入手アクションリスト

SalesItemGroupMaster

SalesItemGroupMaster

Type: GS2::Showcase::SalesItemGroupMaster
Properties:
  NamespaceName: namespace1
  Name: sales-item-group-0001
  Description: null
  Metadata: null
  SalesItemNames: 
    - $salesItem1.name
    - $salesItem2.name

商品グループマスター

商品グループは陳列棚に陳列するためのエンティティです。
商品グループには複数の商品を所属させることができ、所属している商品の先頭から順番に購入可能かを判定し、一番最初に購入可能だと判定された商品が実際に陳列されます。
初回のみ割引する商品や、ステップアップガチャのように購入回数によって商品の内容が変化する仕組みに使用できます。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 商品名
description string ~ 1024文字 説明文
metadata string ~ 2048文字 メタデータ
salesItemNames string[] 商品グループに含める商品リスト

ShowcaseMaster

ShowcaseMaster

Type: GS2::Showcase::ShowcaseMaster
Properties:
  NamespaceName: namespace1
  Name: showcase-0001
  Description: null
  Metadata: null
  DisplayItems: 
    - 
      Type: salesItem
      SalesItemName: $salesItem1.name
    - 
      Type: salesItemGroup
      SalesItemGroupName: $salesItemGroup1.name
      SalesPeriodEventId: grn:gs2:ap-northeast-1:YourOwnerId:schedule:schedule-0001:event:event-0001
  SalesPeriodEventId: grn:gs2:ap-northeast-1:YourOwnerId:schedule:schedule-0001:event:event-0001

陳列棚マスター

陳列棚には販売期間を設定できます。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 商品名
description string ~ 1024文字 説明文
metadata string ~ 2048文字 メタデータ
displayItems DisplayItemMaster[] 陳列された商品リスト
salesPeriodEventId string ~ 1024文字 陳列棚の販売期間を設定した GS2-Schedule のイベント

CurrentShowcaseMaster

CurrentShowcaseMaster

Type: GS2::Showcase::CurrentShowcaseMaster
Properties:
  NamespaceName: namespace1
  Settings: {
        "version": "2019-04-04",
        "showcases": [
          {
            "name": "gem",
            "metadata": "GEM",
            "displayItems": [
              {
                "type": "salesItem",
                "salesItem": {
                  "name": "gem_3000",
                  "metadata": "GEM_3000",
                  "consumeActions": [
                    {
                      "action": "Gs2Money:InAppPurchase",
                      "request": "Gs2Money:InAppPurchase:request"
                    }
                  ],
                  "acquireActions": [
                    {
                      "action": "Gs2Money:DepositByUserId",
                      "request": "Gs2Money:DepositByUserId:request"
                    }
                  ]
                }
              },
              {
                "type": "salesItemGroup",
                "salesPeriodEventId": "grn:gs2:ap-northeast-1:YourOwnerId:schedule:schedule-0001:event:event-0001",
                "salesItemGroup": {
                  "name": "step_gem",
                  "metadata": "STEP_GEM",
                  "salesItems": [
                    {
                      "name": "step1_gem_1000",
                      "metadata": "STEP1_GEM_1000",
                      "consumeActions": [
                        {
                          "action": "Gs2Money:InAppPurchase",
                          "request": "Gs2Money:InAppPurchase:request"
                        },
                        {
                          "action": "Gs2Limit:CountUpByUserId",
                          "request": "Gs2Limit:CountUpByUserId:request"
                        }
                      ],
                      "acquireActions": [
                        {
                          "action": "Gs2Money:DepositByUserId",
                          "request": "Gs2Money:DepositByUserId:request"
                        }
                      ]
                    },
                    {
                      "name": "step2_gem_2000",
                      "metadata": "STEP1_GEM_2000",
                      "consumeActions": [
                        {
                          "action": "Gs2Money:InAppPurchase",
                          "request": "Gs2Money:InAppPurchase:request"
                        },
                        {
                          "action": "Gs2Limit:CountUpByUserId",
                          "request": "Gs2Limit:CountUpByUserId:request"
                        }
                      ],
                      "acquireActions": [
                        {
                          "action": "Gs2Money:DepositByUserId",
                          "request": "Gs2Money:DepositByUserId:request"
                        }
                      ]
                    }
                  ]
                }
              }
            ]
          },
          {
            "name": "gacha",
            "metadata": "GACHA",
            "displayItems": [
              {
                "type": "salesItem",
                "salesItem": {
                  "name": "single",
                  "metadata": "SINGLE",
                  "consumeActions": [
                    {
                      "action": "Gs2Money:WithdrawByUserId",
                      "request": "{\\"moneyName\\": \\"money-0001\\", \\"userId\\": \\"{userId}\\", \\"slot\\": \\"{slot}\\", \\"count\\": 100, \\"paidOnly\\": false}"
                    }
                  ],
                  "acquireActions": [
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "{\\"categoryName\\": \\"category-0001\\", \\"inventoryModelName\\": \\"character\\", \\"itemModelName\\": \\"ssr-0001\\", \\"userId\\": \\"{userId}\\", \\"acquireCount\\": 1}"
                    }
                  ]
                }
              },
              {
                "type": "salesItem",
                "salesItem": {
                  "name": "10times",
                  "metadata": "10TIMES",
                  "consumeActions": [
                    {
                      "action": "Gs2Money:WithdrawByUserId",
                      "request": "Gs2Money:WithdrawByUserId:request"
                    }
                  ],
                  "acquireActions": [
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    },
                    {
                      "action": "Gs2Inventory:AcquireItemSetByUserId",
                      "request": "Gs2Inventory:AcquireItemSetByUserId:request"
                    }
                  ]
                }
              }
            ]
          }
        ]
      }

現在有効なマスターデータ

GS2ではマスターデータの管理にJSON形式のファイルを使用します。
ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。

JSONファイルを作成する方法として、マネージメントコンソール上でのマスターデータエディタを提供していますが
よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。

JSONファイルの形式についてはドキュメントを参照ください。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
settings string ~ 5242880文字 マスターデータ