配置丰富状态字符串
本主题介绍如何配置丰富状态字符串。
字符串
对于丰富状态字符串,必须定义字符串集。 建议为每个字符串集提供一个易记名称以用作标识符。
创建的每个字符串集都必须包含一组字符串,这些字符串针对游戏将在其中发布的区域设置进行适当本地化。
除了本地化字符串,还必须提供非特定区域性的字符串。 当针对未给定区域设置发出请求时,则使用此字符串。
每个字符串集还可以通过参数化字符串来使用游戏内数据来进一步增强它们。 只要生成的字符串不超过字符限制,字符串集就可以具有所需的任意数量的参数。 有关详细信息,请参阅 丰富状态字符串的策略和限制。
枚举
如下所述的枚举是通过玩家数据Xbox Live事件定义的。
统计信息
您可以在丰富状态字符串中使用数字统计值。 例如,在射击游戏中,你可能希望丰富状态字符串显示玩家当前有多少次击杀。
此配置只需要显示参数应该由“杀人数”统计信息替换。 它是通过通用架构事件系统创建的,正在传递或转发到Xbox Live玩家统计信息服务,以转换为玩家数据。 统计信息必须使用统计信息配置进行定义。
当其他玩家读取字符串时,Rich Presence 服务检索 " 的最新值终止计数>统计。 因此,字符串始终是最新的。
状态
您还可以选择使用在丰富状态字符串中表示实际状态值的统计信息。 例如,在赛车游戏中,您可以使用丰富状态字符串来显示玩家目前正在驾驶的汽车,或玩家所在的比赛地图或赛道。
可以使用以下两个步骤配置状态信息。
定义任何游戏内字符串的枚举。 例如,如果你的游戏中有五个地图,并且你希望这些地图是丰富状态字符串的一部分,则还需要将这五个地图枚举到本地化字符串中。
将枚举链接到统计信息。 Rich Presence 服务通过查找统计信息的值,再次从玩家数据中检索最新的值。 然后,它确定统计信息转换为哪个枚举值。
游戏示例
对于该示例的其余部分,假设你正在使用最新的桶启动游戏。 你希望使用丰富状态字符串为每种类型的 Bucket 启动并显示统计信息创建统计信息。
假定游戏规则如下所示:
桶类型为木、银和黄金。
位置包括:山脉、沙漠和沙滩。
当一个桶被启动时,它会崩溃。 必须始终搜索更多存储桶。
某些桶需要特殊齿轮才能成功启动它们。 例如,你需要一个足够强的启动来承受启动。
游戏具有多人游戏模式。 如果有足够的玩家尝试同时启动存储桶,则不需要特定的启动。
该游戏的丰富状态字符串配置如下所示。
为丰富状态配置统计信息
若要在丰富状态字符串中使用由Xbox Live玩家数据生成的统计信息,丰富状态服务需要知道统计信息的名称。
枚举配置示例
下面是定义几个枚举的示例。
为游戏中的地图创建枚举。 游戏有三个地图。 它们各自都有一个友好名称,以便可以轻松地引用它们。
对于每个区域设置,为该映射名称创建一个本地化字符串。 请注意,有一个整体默认本地化,一个非区域性本地化。
请考虑游戏中的三个武器。 它们具有友好名称和本地化字符串。 这适用于所有枚举。
枚举 | 相关统计信息 | 友好名称 | 区域设置 | 字符串 |
---|---|---|---|---|
地图 | CurrentMap | Map_Mountains | 默认值 | 山脉 |
en | 山脉 | |||
en-US | 山脉 | |||
en-GB | 山脉 | |||
de-DE | Gebirge | |||
其他区域设置 | ||||
Map_Desert | 默认值 | 沙漠 | ||
en | 沙漠 | |||
en-US | 沙漠 | |||
en-GB | 沙漠 | |||
de-DE | Wuste | |||
其他区域设置 | ||||
Map_Beach | 默认值 | 沙滩 | ||
en | 沙滩 | |||
en-US | 沙滩 | |||
en-GB | 沙滩 | |||
de-DE | Strand | |||
其他区域设置 | ||||
靴子 | CurrentWeapon | Boot_Light | 默认值 | 轻便 |
en | 轻便 | |||
en-US | 轻便 | |||
en-GB | 轻便 | |||
de-DE | Leicht | |||
其他区域设置 | ||||
Boot_Medium | 默认值 | 中等 | ||
en | 中等 | |||
en-US | 中等 | |||
en-GB | 中等 | |||
de-DE | Mittel | |||
其他区域设置 | ||||
Boot_Strong | 默认值 | 结实 | ||
en | 结实 | |||
en-US | 结实 | |||
en-GB | 结实 | |||
de-DE | Stark | |||
其他区域设置 |
字符串配置示例
既然已经定义了枚举和统计信息,您就可以创建字符串了。
在下面的示例表中,第一列是一个友好名称,有助于引用一个字符串集与另一个字符串集。 在此示例中,字符串"playingMap"用于第一个字符串集,第二个字符串集使用"totalKicked",第三个字符串用于"多人游戏"。
区域设置-字符串对
接下来的两列结合在一起。 它们是丰富状态字符串的区域设置字符串对。
在第一个示例中,使用英文字符串"在 {0}上播放"。 {0}标记替换为值。
然后为其他区域设置本地化字符串。
与枚举中一样,必须有默认字符串和中性区域性字符串。 当玩家使用尚未为其指定区域设置字符串对的区域设置时,将使用它们。 用于枚举的区域设置必须与字符串的区域设置匹配。
用于构造字符串的参数
最后一列用于用于填充丰富状态字符串中的空白的参数。
如果您希望状态服务查找统计信息服务中的参数值,则必须使用统计信息名称来引用此处的参数。 在字符串中使用统计信息可以设置它们一次。 无需重写它们。
如果字符串中包含地图名称,并且你正在使用 CurrentMap
统计信息填充空白,则当玩家从地图传输到游戏中的地图时,丰富状态服务会相应地更新字符串。
如果您不在丰富状态字符串中使用统计信息,则无法指定任何参数。
在下面的示例表中,使用由第一个字符串中的统计信息生成的当前映射。 在第二个字符串中使用 BucketsKicked
统计信息。
第三个示例不包括参数。 字符串是自行定义的;它不引用统计信息。
友好名称 | 区域设置 | 字符串 | 参数 |
---|---|---|---|
playingMap | 默认值 | 在地图上玩游戏:{0} | CurrentMap |
en | 在地图上玩游戏:{0} | ||
en-US | 在地图上玩游戏:{0} | ||
en-GB | 在地图上玩游戏:{0} | ||
de-DE | auf Kartelen: {0} | ||
其他区域设置 | |||
totalKicked | 默认值 | 踢了 {0} 个桶! | BucketsKicked |
en | 踢了 {0} 个桶! | ||
en-US | 踢了 {0} 个桶! | ||
en-GB | 踢了 {0} 个桶! | ||
de-DE | {0} Eimer getreten! | ||
其他区域设置 | |||
multiplayer | 默认值 | 玩多人游戏 | |
en | 玩多人游戏 | ||
en-US | 玩多人游戏 | ||
en-GB | 玩多人游戏 | ||
de-DE | Mehrspielerlen | ||
其他区域设置 |
可以创建的字符串数量没有限制,但游戏必须至少有一个字符串。
BucketsKicked
只是字符串中替换的数字。
CurrentMap
是一个统计信息示例,其中字符串来自枚举。
当游戏将丰富状态设置为这些字符串之一时,请使用配置来了解需要哪些参数。