> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 配置丰富在线状态字符串

> 如何定义包含本地化值、枚举以及基于事件的统计参数的 XBOX Live 丰富在线状态字符串集，实现动态活动文本。

本文介绍如何配置丰富在线状态字符串。

## 字符串

对于丰富在线状态字符串，你必须定义字符串集。
建议为每个字符串集提供一个友好名称作为标识符。

你创建的每个字符串集必须包含一组针对游戏将要发布的区域设置进行相应本地化的字符串。

除了本地化字符串外，还必须提供一个区域性无关字符串。
如果请求的区域设置不存在，就会使用此字符串。

每个字符串集还可以通过参数化字符串来使用游戏内数据以进一步增强效果。
只要生成的字符串不超过字符数限制，字符串集可以有任意多的参数。有关详细信息，请参见[丰富在线状态字符串的策略和限制](/services/xbox-services/community/presence/concepts/live-presence-limits)。

## 枚举

下面描述的枚举通过来自 XBOX 玩家数据的事件进行定义。

## 统计信息

你可以在丰富在线状态字符串中使用基于事件的数值型统计信息值。
例如，在射击游戏中，你可能希望丰富在线状态字符串显示玩家当前的击杀数。

配置需要显示该参数被"击杀数"统计信息替换。
它通过通用架构事件系统创建，并传递或转发到 XBOX 玩家统计信息服务，以转换为玩家数据。该统计信息必须使用统计信息配置来定义。

当另一位玩家读取该字符串时，丰富在线状态服务会检索"击杀数"统计信息的最新值。因此，字符串始终保持最新。

带有变量的丰富在线状态字符串仅与基于事件的数值统计信息兼容，不与游戏管理的统计信息兼容。

## 状态

你还可以选择在丰富在线状态字符串中使用表示实际状态值的统计信息。
例如，在赛车游戏中，可以使用丰富在线状态字符串显示玩家当前驾驶的车辆，或玩家正在哪张地图或赛道上比赛。

**配置状态信息**

1. 为任何游戏内字符串定义枚举。例如，如果游戏中有五张地图，并且你希望这五张地图成为丰富在线状态字符串的一部分，那么这五张地图也需要枚举为本地化字符串。

2. 将枚举链接到统计信息。丰富在线状态服务会再次通过查找统计信息的值从玩家数据中检索最新值。然后，服务确定该统计信息转换为哪个枚举值。

## 示例游戏

在示例的其余部分中，假设你正在开发最新的"踢桶"游戏。你希望为每种被踢的桶创建一个统计信息，然后使用丰富在线状态字符串显示这些统计信息。

假设游戏规则如下：

* 桶的类型有木桶、银桶和金桶。

* 位置为山地、沙漠和海滩。

* 桶被踢中时会破裂。玩家必须持续寻找更多的桶。

* 有些桶需要特殊装备才能成功踢碎。例如，靴子必须足够坚固才能承受一次踢击。

* 游戏具有多人模式。如果同时有足够多的玩家试图踢一只桶，则不需要特定的靴子。

此游戏的丰富在线状态字符串配置如下所示。

## 为丰富在线状态配置统计信息

要在丰富在线状态字符串中使用由 XBOX 玩家数据生成的统计信息，请提供丰富在线状态服务的名称。

## 枚举配置示例

以下是定义几个枚举的示例。

1. 为游戏中的地图创建一个枚举。游戏有三张地图。它们各自获得一个友好名称，以便可以轻松引用。

2. 为每个区域设置为该地图名称创建一个本地化字符串。请注意，存在一个总体默认本地化和一个区域性无关的本地化。

3. 考虑游戏中的三种武器。它们有友好名称和本地化字符串。这适用于所有枚举。

| 枚举   | 相关统计信息        | 友好名称           | 区域设置    | 字符串       |
| ---- | ------------- | -------------- | ------- | --------- |
| Map  | CurrentMap    | Map\_Mountains | Default | Mountains |
|      |               |                | en      | Mountains |
|      |               |                | en-US   | Mountains |
|      |               |                | en-GB   | Mountains |
|      |               |                | de-DE   | Gebirge   |
|      |               |                | 其他区域设置  |           |
|      |               | Map\_Desert    | Default | Desert    |
|      |               |                | en      | Desert    |
|      |               |                | en-US   | Desert    |
|      |               |                | en-GB   | Desert    |
|      |               |                | de-DE   | Wuste     |
|      |               |                | 其他区域设置  |           |
|      |               | Map\_Beach     | default | Beach     |
|      |               |                | en      | Beach     |
|      |               |                | en-US   | Beach     |
|      |               |                | en-GB   | Beach     |
|      |               |                | de-DE   | Strand    |
|      |               |                | 其他区域设置  |           |
| Boot | CurrentWeapon | Boot\_Light    | Default | Light     |
|      |               |                | en      | Light     |
|      |               |                | en-US   | Light     |
|      |               |                | en-GB   | Light     |
|      |               |                | de-DE   | Leicht    |
|      |               |                | 其他区域设置  |           |
|      |               | Boot\_Medium   | Default | Medium    |
|      |               |                | en      | Medium    |
|      |               |                | en-US   | Medium    |
|      |               |                | en-GB   | Medium    |
|      |               |                | de-DE   | Mittel    |
|      |               |                | 其他区域设置  |           |
|      |               | Boot\_Strong   | Default | Strong    |
|      |               |                | en      | Strong    |
|      |               |                | en-US   | Strong    |
|      |               |                | en-GB   | Strong    |
|      |               |                | de-DE   | Stark     |
|      |               |                | 其他区域设置  |           |

## 字符串配置示例

现在，枚举和统计信息已经定义，接下来创建你的字符串。

在以下示例表中，第一列是一个友好名称，可帮助引用某个字符串集与另一个字符串集。
在此示例中，字符串 "playingMap" 用于第一个字符串集，"totalKicked" 用于第二个，"multiplayer" 用于第三个。

### 区域设置-字符串对

接下来的两列合在一起。
它们是丰富在线状态字符串的区域设置-字符串对。

在第一个示例中，使用英文字符串 "Playing on {0}"。
{0} 标记会被某个值替换。

然后针对其他区域设置本地化该字符串。

正如在枚举中一样，必须有默认字符串和区域性无关字符串。当玩家使用你未指定区域设置-字符串对的区域设置时，会使用这些字符串。
用于枚举的区域设置必须与字符串的区域设置匹配。

### 用于构造字符串的参数

最后一列是用于填充丰富在线状态字符串中空白的参数。

如果你希望在线状态服务在统计信息服务中查找参数的值，则必须在此使用统计信息名称来引用参数。
在字符串中使用统计信息可让你只设置一次，无需重写。

如果字符串中包含地图名称，并且你使用 `CurrentMap` 统计信息填充空白，那么当玩家在游戏中在地图间穿行时，丰富在线状态服务会相应更新你的字符串。
如果你不在丰富在线状态字符串中使用统计信息，则无法指定任何参数。

在以下示例表中，第一个字符串使用由统计信息生成的当前地图。第二个字符串使用 `BucketsKicked` 统计信息。

第三个示例不包含参数。
该字符串是独立定义的，不引用统计信息。

| 友好名称        | 区域设置    | 字符串                 | 参数                        |
| ----------- | ------- | ------------------- | ------------------------- |
| playingMap  | Default | Playing on map:{0}  | CurrentMap                |
|             | en      |                     | Playing on map:{0}        |
|             | en-US   |                     | Playing on map:{0}        |
|             | en-GB   |                     | Playing on map:{0}        |
|             | de-DE   |                     | Auf der Karte spielen:{0} |
|             | 其他区域设置  |                     |                           |
| totalKicked | Default | Kicked {0} Buckets! | BucketsKicked             |
|             | en      |                     | Kicked {0} Buckets!       |
|             | en-US   |                     | Kicked {0} Buckets!       |
|             | en-GB   |                     | Kicked {0} Buckets!       |
|             | de-DE   |                     | {0} getretenen Eimer!     |
|             | 其他区域设置  |                     |                           |
| multiplayer | Default | Playing multiplayer |                           |
|             | en      |                     | Playing multiplayer       |
|             | en-US   |                     | Playing multiplayer       |
|             | en-GB   |                     | Playing multiplayer       |
|             | de-DE   |                     | Mehrspieler spielen       |
|             | 其他区域设置  |                     |                           |

可以创建的字符串数量没有限制，但游戏必须至少有一个字符串。

`BucketsKicked` 只是一个数字，会替换到你的字符串中。
`CurrentMap` 是一个统计信息示例，其字符串来自枚举。
当你的游戏将丰富在线状态设置为其中一个字符串时，使用该配置来了解需要哪些参数。


## Related topics

- [丰富在线状态门户配置](/zh-CN/services/xbox-services/community/presence/config/live-presence-config-nav.md)
- [在合作伙伴中心配置丰富在线状态字符串](/zh-CN/services/xbox-services/community/presence/config/live-presence-config2.md)
- [丰富在线状态字符串的策略和限制](/zh-CN/services/xbox-services/community/presence/concepts/live-presence-limits.md)
- [丰富在线状态最佳实践](/zh-CN/services/xbox-services/community/presence/concepts/live-presence-best-practices.md)
- [丰富在线状态概念](/zh-CN/services/xbox-services/community/presence/concepts/live-presence-concepts-nav.md)
