Skip to main content
このトピックでは、通常、ステータス ルールに追加すべきなのはフィールド値ではなくフィールド名であることを説明します。

イベント値がステータス名に追加される

ステータス テンプレートは強力かつ柔軟ですが、適切に構成されていないと意図しない結果を生む場合があります。ステータス テンプレートは、可変のステータス パス、つまりステータス インスタンスを作成します。ステータス テンプレートは、ソース イベント内の選択されたフィールドの名前 および値 から派生した変数に基づくステータス名になります。 これは、プレイヤーが各マップでどれくらいの gold を獲得したかなどをキャプチャする方法です。 イベント だけでなく、イベント もステータス名に追加されます。これはしばしば混乱と意図しない結果を生む可能性があります。

単一のステータス ルールの例

ゲームが GameEnd という名前のイベントを送信するとします。これには Map という名前の int フィールドと Gold という名前の int フィールドがあります。 単一のステータス ルールを使用してマップごとのハイ スコアをキャプチャするには、ステータスに GoldByMap のような名前を付け、ステータス ルールに Map フィールドを追加します。この例では、Map の値は数値 ID です。 パラメーター (ステータスをインクリメントする値を含むフィールド) は、GameEnd イベントの Gold フィールドです。 ゲームが GameEnd イベントを XBOX services に送信するとします。イベントの Map フィールドの値は 1 です。Gold フィールドの値は 100 です。 その結果、ステータスは次のステータス パス GoldByMap.Map.1 に書き込まれます。このステータス パスの新しい値は 100 です。 次の表は、これまでの内容を示しています。 ステータス パスは次の表に示す部分から成ります。 次のイベントが Map 値 2 で受信された場合、そのイベントの Gold フィールドはその新しいステータス パス GoldByMap.Map.2 に追加されます。 そのイベントの Gold フィールドの値が 200 だったとします。 次の表に示す内容も持つことになります。 このようにして、Map ごとにステータスを定義することなく、ステータス値を分離して保持できます。

ステータス ルールに誤ってフィールド値ではなくフィールド名を追加した例

前の例を使用して、Gold パラメーター値だけでなく、Gold フィールド名も Map ステータス ルールに追加した場合に、どのような悪い結果が生じるかを見てみましょう。これは次のようなステータス名になります。GoldByMap.Map.1.Gold.100 プレイヤーが獲得した gold の値 (100) がステータス名にも含まれていることに注目してください。 つまり、プレイヤーが Map 1 で 100 gold を獲得すると、このステータス GoldByMap.Map.1.Gold.100 に対して値 100 を得ることになります。 プレイヤーがそのマップで 101 gold を獲得した場合、この構成の結果は次のようになり、これは別のステータス名です。GoldByMap.Map.1.Gold.101。その結果、これらのステータスは、プレイヤーがステータス名で定義された特定の量の gold を獲得したときにのみインクリメントされることになり、これはおそらく意図されていなかったことです。
最終更新日 2026年8月25日