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

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

VerifyAction

検証アクション

Gs2Grade:VerifyGradeByUserId

ユーザーIDを指定してグレードを検証

指定されたユーザーのグレード値が指定された条件を満たすことを検証します(サーバーサイド操作)。
6つの比較演算子をサポートします:less(未満)、lessEqual(以下)、greater(超過)、greaterEqual(以上)、equal(一致)、notEqual(不一致)。
条件が満たされない場合、期待値と実際の値を含む説明的なエラーメッセージが返されます。
multiplyValueSpecifyingQuantity が true の場合、検証の閾値は指定された数量で乗算されます。

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

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
gradeNamestring
~ 128文字グレードモデル名
このステータスが属するグレードモデルの名前です。グレードエントリのマッピング、連動する経験値モデル、報酬加算テーブルを含むグレードモデル定義を参照します。
verifyType文字列列挙型
enum {
  “less”,
  “lessEqual”,
  “greater”,
  “greaterEqual”,
  “equal”,
  “notEqual”
}
検証の種類
定義説明
“less”グレードが指定値未満であること
“lessEqual”グレードが指定値以下であること
“greater”グレードが指定値超過であること
“greaterEqual”グレードが指定値以上であること
“equal”グレードが指定値と一致すること
“notEqual”グレードが指定値と一致しないこと
propertyIdstring
~ 1024文字プロパティID
このグレードステータスの開発者定義の識別子で、ユーザーとグレードモデル内で一意です。連動する GS2-Experience ステータスのプロパティIDと同じ値を使用することを強く推奨します。これにより、グレード値とランクキャップの正しい同期が保証されます。
gradeValuelong11 ~ 9223372036854775805現在のグレード
このステータスの現在のグレード値です。連動する GS2-Experience モデルのランクキャップを決定するために、グレードモデルのグレードエントリ配列のインデックスとして使用されます。この値が変更されると、関連する経験値ステータスのランクキャップが対応するグレードエントリで定義された値に自動更新されます。
multiplyValueSpecifyingQuantityboolfalse数量指定した際に、検証に使用する値も乗算するか
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Grade:VerifyGradeByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "gradeName": "[string]グレードモデル名",
        "verifyType": "[string]検証の種類",
        "propertyId": "[string]プロパティID",
        "gradeValue": "[long]現在のグレード",
        "multiplyValueSpecifyingQuantity": "[bool]数量指定した際に、検証に使用する値も乗算するか",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Grade:VerifyGradeByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  gradeName: "[string]グレードモデル名"
  verifyType: "[string]検証の種類"
  propertyId: "[string]プロパティID"
  gradeValue: "[long]現在のグレード"
  multiplyValueSpecifyingQuantity: "[bool]数量指定した際に、検証に使用する値も乗算するか"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("grade").verify.verify_grade_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    gradeName="[string]グレードモデル名",
    verifyType="[string]検証の種類",
    propertyId="[string]プロパティID",
    gradeValue="[long]現在のグレード",
    multiplyValueSpecifyingQuantity="[bool]数量指定した際に、検証に使用する値も乗算するか",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Grade:VerifyGradeUpMaterialByUserId

ユーザーIDを指定してグレードアップに使用する素材を検証

指定されたユーザーの指定されたプロパティのグレードアップに素材のプロパティIDが有効かどうかを検証します(サーバーサイド操作)。
検証はグレードエントリの PropertyIdRegex と GradeUpPropertyIdRegex から正規表現パターンを構築し、素材のプロパティIDがマッチするかを確認します。
2つの検証タイプをサポートします:‘match’(素材がパターンにマッチすること)と ’notMatch’(素材がパターンにマッチしないこと)。

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

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
gradeNamestring
~ 128文字グレードモデル名
このステータスが属するグレードモデルの名前です。グレードエントリのマッピング、連動する経験値モデル、報酬加算テーブルを含むグレードモデル定義を参照します。
verifyType文字列列挙型
enum {
  “match”,
  “notMatch”
}
検証の種類
定義説明
“match”条件に一致していること
“notMatch”条件に一致していないこと
propertyIdstring
~ 1024文字プロパティID
このグレードステータスの開発者定義の識別子で、ユーザーとグレードモデル内で一意です。連動する GS2-Experience ステータスのプロパティIDと同じ値を使用することを強く推奨します。これにより、グレード値とランクキャップの正しい同期が保証されます。
materialPropertyIdstring
~ 1024文字プロパティID
このグレードステータスの開発者定義の識別子で、ユーザーとグレードモデル内で一意です。連動する GS2-Experience ステータスのプロパティIDと同じ値を使用することを強く推奨します。これにより、グレード値とランクキャップの正しい同期が保証されます。
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Grade:VerifyGradeUpMaterialByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "gradeName": "[string]グレードモデル名",
        "verifyType": "[string]検証の種類",
        "propertyId": "[string]プロパティID",
        "materialPropertyId": "[string]プロパティID",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Grade:VerifyGradeUpMaterialByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  gradeName: "[string]グレードモデル名"
  verifyType: "[string]検証の種類"
  propertyId: "[string]プロパティID"
  materialPropertyId: "[string]プロパティID"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("grade").verify.verify_grade_up_material_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    gradeName="[string]グレードモデル名",
    verifyType="[string]検証の種類",
    propertyId="[string]プロパティID",
    materialPropertyId="[string]プロパティID",
    timeOffsetToken="[string]タイムオフセットトークン",
})

ConsumeAction

消費アクション

Gs2Grade:SubGradeByUserId

ユーザーIDを指定してグレードを減算

指定されたグレードモデルとプロパティに対して、指定されたユーザーの現在のグレードから指定値を減算します(サーバーサイド操作)。
グレード値の更新後、リンクされた GS2-Experience ステータスにランクキャップが自動的に適用されます。
ランクキャップ値は新しいグレードレベルに一致するグレードエントリから決定され。
更新されたグレードステータスとともに、Experience ネームスペース名と更新された Experience ステータスを返します。

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

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

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
gradeNamestring
~ 128文字グレードモデル名
このステータスが属するグレードモデルの名前です。グレードエントリのマッピング、連動する経験値モデル、報酬加算テーブルを含むグレードモデル定義を参照します。
propertyIdstring
~ 1024文字プロパティID
このグレードステータスの開発者定義の識別子で、ユーザーとグレードモデル内で一意です。連動する GS2-Experience ステータスのプロパティIDと同じ値を使用することを強く推奨します。これにより、グレード値とランクキャップの正しい同期が保証されます。
gradeValuelong00 ~ 9223372036854775805失うグレード
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Grade:SubGradeByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "gradeName": "[string]グレードモデル名",
        "propertyId": "[string]プロパティID",
        "gradeValue": "[long]失うグレード",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Grade:SubGradeByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  gradeName: "[string]グレードモデル名"
  propertyId: "[string]プロパティID"
  gradeValue: "[long]失うグレード"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("grade").consume.sub_grade_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    gradeName="[string]グレードモデル名",
    propertyId="[string]プロパティID",
    gradeValue="[long]失うグレード",
    timeOffsetToken="[string]タイムオフセットトークン",
})

AcquireAction

入手アクション

Gs2Grade:AddGradeByUserId

ユーザーIDを指定してグレードを加算

指定されたグレードモデルとプロパティに対して、ユーザーの現在のグレードに指定値を加算します。
グレード値の更新後、リンクされた GS2-Experience ステータスにランクキャップが自動的に適用されます。
ランクキャップ値は新しいグレードレベルに一致するグレードエントリから決定され。
更新されたグレードステータスとともに、Experience ネームスペース名と更新された Experience ステータスを返します。

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

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

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
gradeNamestring
~ 128文字グレードモデル名
このステータスが属するグレードモデルの名前です。グレードエントリのマッピング、連動する経験値モデル、報酬加算テーブルを含むグレードモデル定義を参照します。
propertyIdstring
~ 1024文字プロパティID
このグレードステータスの開発者定義の識別子で、ユーザーとグレードモデル内で一意です。連動する GS2-Experience ステータスのプロパティIDと同じ値を使用することを強く推奨します。これにより、グレード値とランクキャップの正しい同期が保証されます。
gradeValuelong00 ~ 9223372036854775805獲得グレード
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Grade:AddGradeByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "gradeName": "[string]グレードモデル名",
        "propertyId": "[string]プロパティID",
        "gradeValue": "[long]獲得グレード",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Grade:AddGradeByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  gradeName: "[string]グレードモデル名"
  propertyId: "[string]プロパティID"
  gradeValue: "[long]獲得グレード"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("grade").acquire.add_grade_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    gradeName="[string]グレードモデル名",
    propertyId="[string]プロパティID",
    gradeValue="[long]獲得グレード",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Grade:ApplyRankCapByUserId

ユーザーIDを指定して GS2-Experienceステータスにランクキャップを適用

指定されたユーザーの現在のグレードに対応するランクキャップを、リンクされた GS2-Experience ステータスに適用します(サーバーサイド操作)。
現在のグレード値に一致するグレードエントリを参照してランクキャップ値を決定し。
グレードが外部で変更され、Experience のランクキャップを同期する必要がある場合に有用です。
更新されたグレードステータスとともに、Experience ネームスペース名と更新された Experience ステータスを返します。

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

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

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
gradeNamestring
~ 128文字グレードモデル名
このステータスが属するグレードモデルの名前です。グレードエントリのマッピング、連動する経験値モデル、報酬加算テーブルを含むグレードモデル定義を参照します。
propertyIdstring
~ 1024文字プロパティID
このグレードステータスの開発者定義の識別子で、ユーザーとグレードモデル内で一意です。連動する GS2-Experience ステータスのプロパティIDと同じ値を使用することを強く推奨します。これにより、グレード値とランクキャップの正しい同期が保証されます。
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Grade:ApplyRankCapByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "gradeName": "[string]グレードモデル名",
        "propertyId": "[string]プロパティID",
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Grade:ApplyRankCapByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  gradeName: "[string]グレードモデル名"
  propertyId: "[string]プロパティID"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("grade").acquire.apply_rank_cap_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    gradeName="[string]グレードモデル名",
    propertyId="[string]プロパティID",
    timeOffsetToken="[string]タイムオフセットトークン",
})

Gs2Grade:MultiplyAcquireActionsByUserId

グレードに基づくレートで入手アクションを乗算

指定された入手アクションの数量を、ユーザーの現在のグレードに基づくレート乗数で乗算します。
レート乗数は指定された rateName と現在のグレード値を使用して、グレードモデルの acquireActionRates から参照されます。
乗算された入手アクションはトランザクションとして実行され、グレードに基づく報酬スケーリング(例:高グレードほど多くのリソースを獲得)を実現します。

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

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

有効化条件必須デフォルト値の制限説明
namespaceNamestring
~ 128文字ネームスペース名
ネームスペース固有の名前。英数字および -(ハイフン) _(アンダースコア) .(ピリオド)で指定します。
userIdstring
~ 128文字ユーザーID
#{userId} と設定することでログイン中のユーザーIDに置換されます。
gradeNamestring
~ 128文字グレードモデル名
このステータスが属するグレードモデルの名前です。グレードエントリのマッピング、連動する経験値モデル、報酬加算テーブルを含むグレードモデル定義を参照します。
propertyIdstring
~ 1024文字プロパティID
このグレードステータスの開発者定義の識別子で、ユーザーとグレードモデル内で一意です。連動する GS2-Experience ステータスのプロパティIDと同じ値を使用することを強く推奨します。これにより、グレード値とランクキャップの正しい同期が保証されます。
rateNamestring
~ 128文字報酬加算テーブル名
グレードモデル内でこの倍率テーブルを一意に識別する名前です。トランザクションの特定の入手アクションにグレードベースの報酬スケーリングを適用する際に参照されます。
acquireActionsList<AcquireAction>[]0 ~ 100 items入手アクションリスト
timeOffsetTokenstring~ 1024文字タイムオフセットトークン
{
    "action": "Gs2Grade:MultiplyAcquireActionsByUserId",
    "request": {
        "namespaceName": "[string]ネームスペース名",
        "userId": "[string]ユーザーID",
        "gradeName": "[string]グレードモデル名",
        "propertyId": "[string]プロパティID",
        "rateName": "[string]報酬加算テーブル名",
        "acquireActions": [
            {
                "action": "[string]入手アクションで実行するアクションの種類",
                "request": "[string]アクション実行時に使用されるリクエストのJSON文字列"
            }
        ],
        "timeOffsetToken": "[string]タイムオフセットトークン"
    }
}
action: Gs2Grade:MultiplyAcquireActionsByUserId
request:
  namespaceName: "[string]ネームスペース名"
  userId: "[string]ユーザーID"
  gradeName: "[string]グレードモデル名"
  propertyId: "[string]プロパティID"
  rateName: "[string]報酬加算テーブル名"
  acquireActions: 
    - action: "[string]入手アクションで実行するアクションの種類"
      request: "[string]アクション実行時に使用されるリクエストのJSON文字列"
  timeOffsetToken: "[string]タイムオフセットトークン"
transaction.service("grade").acquire.multiply_acquire_actions_by_user_id({
    namespaceName="[string]ネームスペース名",
    userId="[string]ユーザーID",
    gradeName="[string]グレードモデル名",
    propertyId="[string]プロパティID",
    rateName="[string]報酬加算テーブル名",
    acquireActions={
        {
            action="[string]入手アクションで実行するアクションの種類",
            request="[string]アクション実行時に使用されるリクエストのJSON文字列"
        }
    },
    timeOffsetToken="[string]タイムオフセットトークン",
})