次の方法で共有


統計ルールへのフィールド値の追加

このトピックでは通常、統計ルールにフィールド値よりもむしろフィールド名を必ず追加する、その方法を説明します。

統計名にはイベント値が追加されます

統計テンプレートは強力で柔軟ですが、適切に構成されていないと意図しない結果を生じる可能性があります。 統計テンプレートは、可変の統計パス (統計インスタンス) を作成します。 統計テンプレートでは、ソース イベント内の選択されたフィールドの名前および値から派生した変数に基づいて統計名が生成されます。 これにより、各マップでプレイヤーが獲得したゴールドのなどの情報をキャプチャできます。

イベントの 名前 が統計名に追加されるだけでなく、イベントの も追加されます。 これにより、混乱や意図しない結果が生じることがよくあります。

1 つの統計ルールの例

ゲームが GameEnd という名前のイベントを送信すると仮定します。 Map という名前のフィールド intGold という名前のフィールド int があります。

単一の統計ルールを使用してマップごとにハイスコアを取得するには、統計に GoldByMap などの名前を付け、Map フィールドを統計ルールに追加します。 この例では、Map 値は数値 ID です。

パラメーター (統計をインクリメントする値を含むフィールド) は、GameEnd イベントの Gold フィールドになります。

ゲームが Xbox サービスに GameEnd イベントを送信すると仮定します。 イベントのフィールド Map の値は 1 です。 フィールド Gold の値は 100 です。 結果、統計は次の統計パスに書き込まれます: GoldByMap.Map.1。 この統計パスの新しい値は 100 です。

次の表に、これまで長く保持してきた内容を示します。

項目 注意
GameEnd イベント ゲームから Xbox サービスに送信
Map イベントのフィールド int
1 int Map フィールドの値。
Gold イベントのフィールド int
100 int Gold フィールドの値。

統計パスには、次の表で示された部分があります。

項目 注意
GoldByMap.Map.1 統計パス この統計パスの値は 100 です。
GoldByMap 統計名 該当なし。
Map 統計ルール 数値 ID。

次のイベントが 2 の値 Map で受信されると、そのイベントの Gold フィールドが次の新しい統計パスに追加されます: GoldByMap.Map.2

このイベントの Gold フィールドの値が 200 と仮定します。 次の表に示された内容も含みます。

項目 注意
GoldByMap.Map.2 統計パス この統計パスの値は 200 です。

このようにして、各 Map に対して統計を定義しなくても、統計値を個別に維持できます。

統計ルールにフィールド値ではなくフィールド名を誤って追加した場合の例

上記の例を使用すると、統計ルール MapGold パラメーター値だけでなく、Gold フィールド名も追加した場合に、どのような悪い結果になるかを見てみましょう。 この結果、統計名は次のようになります: GoldByMap.Map.1.Gold.100

ユーザー (100) が獲得したゴールドの値も統計名に含まれていることに注意してください。これは、マップ 1 で 100 ゴールドを獲得したユーザーが、この統計で値 100 を取得することを意味します: GoldByMap.Map.1.Gold.100

ユーザーがそのマップで 101 ゴールドを獲得した場合、この構成の結果は次のようになり、異なる統計名になります: GoldByMap.Map.1.Gold.101。 その結果、これらの統計はプレイヤーが統計名内で定義された特定の量のゴールドを獲得したときにのみインクリメントされ、それはおそらく意図した結果ではありません。