GS2-Buff マスターデータリファレンス

マスターデータのフォーマットと インポートする各種モデルのリファレンス

マスターデータのフォーマット

{
  "version": "2024-04-15",
  "buffEntryModels": [
    {
      "name": "[string]バフエントリーモデル名",
      "metadata": "[string?]メタデータ",
      "expression": "[string enum]バフの適用タイプ",
      "targetType": "[string enum]バフを適用する対象の種類",
      "targetModel": {
        "targetModelName": "[string]バフを適用するモデルの種類",
        "targetFieldName": "[string]バフの適用対象フィールド名",
        "conditionGrns": [
          {
            "targetModelName": "[string]バフの適用条件のモデル名",
            "targetGrn": "[string]バフの適用条件GRN"
          }
        ],
        "rate": "[float]補正レート"
      },
      "targetAction": {
        "targetActionName": "[string]バフを適用するアクションの種類",
        "targetFieldName": "[string]バフの適用対象フィールド名",
        "conditionGrns": [
          {
            "targetModelName": "[string]バフの適用条件のモデル名",
            "targetGrn": "[string]バフの適用条件GRN"
          }
        ],
        "rate": "[float]レート"
      },
      "priority": "[int]バフの適用優先度",
      "applyPeriodScheduleEventId": "[string?]バフを適用するイベントの開催期間GRN"
    }
  ]
}
有効化条件必須デフォルト値の制限説明
versionstring
2024-04-15マスターデータのフォーマットバージョン
buffEntryModelsList<BuffEntryModel>~ 100 itemsバフエントリーモデル
バフの適用量はバフエントリーモデルで管理し、特定のエントリーに対して複数のバフエントリーモデルを関連づけることが可能です。
バフエントリーモデルの適用順番はバフエントリーモデルの priority で管理し、priority の値が小さいほど優先度が高くなります。

バフの適用方式は3種類存在し「Rate Add」、「Mul」と「Value Add」があります。
Rate Add はバフの適用レートに加算する命令、Mul はバフの適用レートに乗算する命令です。
Value Add はバフの補正計算後の値に加算を行う命令です。
たとえば、デフォルトのレートが 1.0 で、Add 0.2 と設定するとバフの適用レートは 1.2 になります。
Mul 0.5 と設定するとバフの適用レートは 0.5 倍になります。

バフエントリーモデルには GS2-Schedule のイベントを関連づけることができ、イベントの開催期間中のみバフを適用するような設定も可能です。

モデル

BuffEntryModel

バフエントリーモデル

バフの適用量はバフエントリーモデルで管理し、特定のエントリーに対して複数のバフエントリーモデルを関連づけることが可能です。
バフエントリーモデルの適用順番はバフエントリーモデルの priority で管理し、priority の値が小さいほど優先度が高くなります。

バフの適用方式は3種類存在し「Rate Add」、「Mul」と「Value Add」があります。
Rate Add はバフの適用レートに加算する命令、Mul はバフの適用レートに乗算する命令です。
Value Add はバフの補正計算後の値に加算を行う命令です。
たとえば、デフォルトのレートが 1.0 で、Add 0.2 と設定するとバフの適用レートは 1.2 になります。
Mul 0.5 と設定するとバフの適用レートは 0.5 倍になります。

バフエントリーモデルには GS2-Schedule のイベントを関連づけることができ、イベントの開催期間中のみバフを適用するような設定も可能です。

有効化条件必須デフォルト値の制限説明
buffEntryModelIdstring
~ 1024文字バフエントリーモデル GRN
※ サーバーが自動で設定
namestring
~ 128文字バフエントリーモデル名
バフエントリーモデル固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
metadatastring~ 2048文字メタデータ
メタデータには任意の値を設定できます。
これらの値は GS2 の動作には影響しないため、ゲーム内で利用する情報の保存先として使用できます。
expression文字列列挙型
enum {
  “rate_add”,
  “mul”,
  “value_add”
}
バフの適用タイプ
バフ値を対象にどのように適用するかを指定します。「Rate Add」は補正レートに加算(例: 1.0 + 0.2 = 1.2)、「Mul」は補正レートに乗算(例: レート * 0.5)、「Value Add」はレートベースの補正計算後の値に直接加算します。
定義説明
“rate_add”補正レートに加算
“mul”補正レートに乗算
“value_add”値を直接加算(モデルやアクションの数値のみ)
targetType文字列列挙型
enum {
  “model”,
  “action”
}
バフを適用する対象の種類
バフをモデルのフィールド値に適用するか、アクションのパラメータに適用するかを指定します。「Model」は GS2 リソースモデルのフィールドを対象とし、「Action」は GS2 アクション(例:入手量や消費量)のパラメータを対象とします。
定義説明
“model”モデル
“action”アクション
targetModelBuffTargetModel{targetType} == “model”
✓※
バフを適用する対象のモデル
バフを適用する GS2 リソースモデルとフィールドを指定します。モデル名、フィールド名、対象リソースを特定する条件GRN、およびレート値が含まれます。
※ targetType が “model” であれば 必須
targetActionBuffTargetAction{targetType} == “action”
✓※
バフを適用する対象のアクション
バフを適用する GS2 アクションとパラメータを指定します。アクション名、フィールド名、対象リソースを特定する条件GRN、およびレート値が含まれます。
※ targetType が “action” であれば 必須
priorityint
0 ~ 2147483646バフの適用優先度
バフエントリーが評価される順序を決定します。値が小さいほど先に評価されます。同じフィールドを対象とする複数のバフがある場合、Rate Add と Mul 演算の相互作用により、適用順序が最終結果に影響します。
applyPeriodScheduleEventIdstring~ 1024文字バフを適用するイベントの開催期間 GRN
このバフの有効期間を制御する GS2-Schedule イベントの GRN です。指定した場合、イベントの開催期間中のみバフが適用されます。未指定の場合、バフは常に有効です。

BuffTargetModel

バフを適用する対象のモデル

バフ適用の対象となる GS2 リソースモデルとフィールドを定義します。どのモデルのどのフィールド値をバフで変更するかを指定し、対象リソースインスタンスを特定する条件GRNと適用するレート値を含みます。

有効化条件必須デフォルト値の制限説明
targetModelName文字列列挙型
enum {
"Gs2Exchange:RateModel",
"Gs2Exchange:IncrementalRateModel",
"Gs2Experience:Status",
"Gs2Formation:Mold",
"Gs2Idle:Status",
"Gs2Idle:CategoryModel",
"Gs2Inventory:Inventory",
"Gs2LoginReward:BonusModel",
"Gs2Mission:MissionTaskModel",
"Gs2Quest:QuestModel",
"Gs2Showcase:DisplayItem",
"Gs2Showcase:RandomDisplayItemModel",
"Gs2SkillTree:NodeModel",
"Gs2Stamina:Stamina",
}
バフを適用するモデルの種類
targetFieldNamestring
~ 64文字バフの適用対象フィールド名
バフによって値が変更される対象モデル上の数値フィールド名です。例えば、経験値や攻撃力などの数値属性を表すフィールドが対象となります。
conditionGrnsList<BuffTargetGrn>
1 ~ 10 itemsバフの適用条件GRNのリスト
バフ適用の対象リソースインスタンスを特定する GRN パターンのリストです。複数の GRN を組み合わせて、リソースを正確に特定する複合条件を形成します。
ratefloat
0 ~ 1000000補正レート
適用されるバフ値です。適用タイプにより意味が異なります。「Rate Add」の場合は基本レートに加算、「Mul」の場合は現在のレートに乗算、「Value Add」の場合はレート計算後のフィールド値に直接加算されます。

BuffTargetAction

バフを適用する対象のアクション

バフ適用の対象となる GS2 アクションとパラメータを定義します。どのアクションのどのパラメータをバフで変更するかを指定し、対象リソースインスタンスを特定する条件GRNと適用するレート値を含みます。

有効化条件必須デフォルト値の制限説明
targetActionName文字列列挙型
enum {
"Gs2Experience:AddExperienceByUserId",
"Gs2Experience:SubExperience",
"Gs2Experience:SubExperienceByUserId",
"Gs2Inventory:AcquireItemSetByUserId",
"Gs2Inventory:ConsumeItemSet",
"Gs2Inventory:ConsumeItemSetByUserId",
"Gs2Inventory:AcquireSimpleItemsByUserId",
"Gs2Inventory:ConsumeSimpleItems",
"Gs2Inventory:ConsumeSimpleItemsByUserId",
"Gs2Inventory:AcquireBigItemByUserId",
"Gs2Inventory:ConsumeBigItem",
"Gs2Inventory:ConsumeBigItemByUserId",
"Gs2Limit:CountUp",
"Gs2Limit:CountUpByUserId",
"Gs2Money:DepositByUserId",
"Gs2Money:Withdraw",
"Gs2Money:WithdrawByUserId",
"Gs2Money2:DepositByUserId",
"Gs2Money2:Withdraw",
"Gs2Money2:WithdrawByUserId",
"Gs2Stamina:ConsumeStamina",
"Gs2Stamina:ConsumeStaminaByUserId",
"Gs2Stamina:RecoverStaminaByUserId",
}
バフを適用するアクションの種類
targetFieldNamestring
~ 64文字バフの適用対象フィールド名
バフによって値が変更される対象アクション上の数値パラメータ名です。例えば、入手数、消費量、報酬数量などを表すパラメータが対象となります。
conditionGrnsList<BuffTargetGrn>
1 ~ 10 itemsバフの適用条件GRNのリスト
バフ適用の対象リソースインスタンスを特定する GRN パターンのリストです。複数の GRN を組み合わせて、リソースを正確に特定する複合条件を形成します。
ratefloat
0 ~ 1000000レート
適用されるバフ値です。適用タイプにより意味が異なります。「Rate Add」の場合は基本レートに加算、「Mul」の場合は現在のレートに乗算、「Value Add」の場合はレート計算後のパラメータ値に直接加算されます。

BuffTargetGrn

バフを適用するリソースのGRNパターン

バフを適用する対象のリソースインスタンスを特定するための、プレースホルダーを含む GRN テンプレートです。モデル名で GS2 サービスモデルを特定し、GRN パターンにはランタイムで解決されるコンテキスト変数(例:region、ownerId、namespaceName)が含まれます。

有効化条件必須デフォルト値の制限説明
targetModelNamestring
~ 64文字バフの適用条件のモデル名
条件GRNを解決するために使用される GS2 サービスモデルの名前です。GRN パターンがどのサービスのリソースモデルを参照するかを特定します。
targetGrnstring
~ 1024文字バフの適用条件GRN
ランタイムで解決されるコンテキストプレースホルダー(例:{region}、{ownerId})を含む GRN テンプレートです。バフの対象となる特定のリソースインスタンスを特定するために使用されます。