NAV
GS2-Deploy

GS2-Lottery

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

GS2-Deploy リファレンス

エンティティ

Namespace

Namespace

Type: GS2::Lottery::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
  LotteryTriggerScriptId: null
  ChoicePrizeTableScriptId: null
  LogSetting: 
    LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1
  QueueNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:queue:namespace1
  KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001

ネームスペース

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

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

必須 デフォルト 値の制限 説明
name string ~ 32文字 ネームスペース名
description string ~ 1024文字 説明文
transactionSetting TransactionSetting トランザクション設定
lotteryTriggerScriptId string ~ 1024文字 抽選を実行した際に呼び出される GS2-Script のスクリプト
choicePrizeTableScriptId string ~ 1024文字 抽選確率テーブルを動的に決定するための GS2-Script のスクリプト
logSetting LogSetting ログの出力設定
queueNamespaceId string ~ 1024文字 スタンプシートの実行に使用する GS2-JobQueue のネームスペース
keyId string ~ 1024文字 スタンプシートの発行に使用する GS2-Key のネームスペース

LotteryModelMaster

LotteryModelMaster

Type: GS2::Lottery::LotteryModelMaster
Properties:
  NamespaceName: namespace1
  Name: lotteryModel-0001
  Description: null
  Metadata: null
  Mode: normal
  Method: prize_table
  PrizeTableName: prizeTable-0001
  ChoicePrizeTableScriptId: null

抽選モデルマスター
抽選モデルマスターはLotteryで排出方式や排出レートを定義するエンティティです。

排出方式は2種類用意されており、通常抽選は毎回一定の確率で抽選をする方式
Box抽選は箱の中にあらかじめ定義された数量の景品が入っており、抽選するたびに箱から景品を取り出していく抽選方式です。

抽選処理を行うにあたって、排出確率テーブルを利用しますが、
GS2-Script を使用すれば複数回抽選を実行した際に排出確率テーブルを一部だけ異なるテーブルに差し替えることができます。
この仕組みを利用することで、10連ガチャで1回だけ異なる抽選確率テーブルを適用することが可能となります。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 抽選モデルの種類名
description string ~ 1024文字 説明文
metadata string ~ 128文字 メタデータ
mode string ~ 128文字 抽選モード
method string ~ 128文字 抽選方法
prizeTableName string {method} == "prize_table" ~ 128文字 排出確率テーブルの名前
choicePrizeTableScriptId string {method} == "script" ~ 1024文字 排出確率テーブルを決定する GS2-Script のスクリプト

PrizeTableMaster

PrizeTableMaster

Type: GS2::Lottery::PrizeTableMaster
Properties:
  NamespaceName: namespace1
  Name: prizeTable-0001
  Description: null
  Metadata: null
  Prizes: 
    - 
      PrizeId: 1
      Type: action
      AcquireActions: 
      - 
        Action: Gs2Money:DepositByUserId
        Request: Gs2Money:DepositByUserId:request:ssr-0001
      Weight: 1
    - 
      PrizeId: 2
      Type: action
      AcquireActions: 
      - 
        Action: Gs2Money:DepositByUserId
        Request: Gs2Money:DepositByUserId:request:ssr-0002
      Weight: 2
    - 
      PrizeId: 3
      Type: action
      AcquireActions: 
      - 
        Action: Gs2Money:DepositByUserId
        Request: Gs2Money:DepositByUserId:request:ssr-0003
      Weight: 3

排出確率テーブルマスター

景品にはスタンプシートの報酬または更に排出確率テーブルを指定することができます。
排出確率テーブルを入れ子にすることで、SSR/SR/R といったレアリティを抽選するテーブルを通し、
2段目で具体的なコンテンツを抽選するような設定が可能です。
こうすることで、全体におけるレアリティの排出確率の調整が容易となります。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 排出確率テーブル名
description string ~ 1024文字 説明文
metadata string ~ 128文字 メタデータ
prizes Prize[] 景品リスト

CurrentLotteryMaster

CurrentLotteryMaster

Type: GS2::Lottery::CurrentLotteryMaster
Properties:
  NamespaceName: namespace1
  Settings: {
    "version": "2019-02-21",
    "lotteryModels": [
      {
        "name": "gacha",
        "metadata": "GACHA",
        "mode": "normal",
        "method": "prize_table",
        "prizeTableName": "gacha"
      },
      {
        "name": "gacha_ssr",
        "metadata": "SSR",
        "mode": "normal",
        "method": "prize_table",
        "prizeTableName": "gacha-ssr"
      },
      {
        "name": "gacha_sr",
        "metadata": "SR",
        "mode": "normal",
        "method": "prize_table",
        "prizeTableName": "gacha-sr"
      },
      {
        "name": "gacha_r",
        "metadata": "R",
        "mode": "normal",
        "method": "prize_table",
        "prizeTableName": "gacha-r"
      },
      {
        "name": "box",
        "metadata": "BOX",
        "mode": "box",
        "method": "prize_table",
        "prizeTableName": "box"
      }
    ],
    "prizeTables": [
      {
        "name": "gacha",
        "metadata": "SSR",
        "prizes": [
          {
            "prizeId": "prize-1",
            "type": "prize_table",
            "prizeTableName": "gacha-ssr",
            "weight": 5
          },
          {
            "prizeId": "prize-2",
            "type": "prize_table",
            "prizeTableName": "gacha-sr",
            "weight": 15
          },
          {
            "prizeId": "prize-3",
            "type": "prize_table",
            "prizeTableName": "gacha-r",
            "weight": 80
          }
        ]
      },
      {
        "name": "gacha-ssr",
        "metadata": "SSR",
        "prizes": [
          {
            "prizeId": "prize-4",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 1
          },
          {
            "prizeId": "prize-5",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 2
          },
          {
            "prizeId": "prize-6",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 3
          }
        ]
      },
      {
        "name": "gacha-sr",
        "metadata": "SR",
        "prizes": [
          {
            "prizeId": "prize-7",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 10
          },
          {
            "prizeId": "prize-8",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 20
          },
          {
            "prizeId": "prize-9",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 30
          }
        ]
      },
      {
        "name": "gacha-r",
        "metadata": "R",
        "prizes": [
          {
            "prizeId": "prize-10",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 100
          },
          {
            "prizeId": "prize-11",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 200
          },
          {
            "prizeId": "prize-12",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 300
          }
        ]
      },
      {
        "name": "box",
        "metadata": "BOX",
        "prizes": [
          {
            "prizeId": "prize-13",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 30
          },
          {
            "prizeId": "prize-14",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 20
          },
          {
            "prizeId": "prize-15",
            "type": "action",
            "acquireActions": [
              {
                "action": "Gs2Money:DepositByUserId",
                "request": "{\\"count\\": 1}"
              }
            ],
            "weight": 10
          }
        ]
      }
    ]
  }

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

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

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

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

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