用户统计信息方案

本主题介绍在使用基于事件的统计信息时用于创建用户统计信息的以下常见方案。

对条件使用布尔值

目标:跟踪是否已满足某一特定条件

当您想要标记用户是否已满足游戏逻辑中的特定条件时,请使用此模式。

用例

  • 标记用户的角色是否在某个特定关卡阵亡

  • 标记用户是否已解锁每个特定的可回收物品

  • 标记用户当前是否正在玩极限难度

  • 标记用户是否满足解锁复杂成就的所有五个条件来

示例:用户被霰弹枪击中 90 次或被狙击枪击中 10 次时标记

字段
事件名称 AchievementUnlocked
事件字段 UnlockId(数据类型:Int32)
统计信息模板名称 AchievementUnlocked.UnlockId
运算符 REPLACE
参数 1
访问 Open

规则

如果标志必须显示为 TRUE,请将 REPLACE 运算符与文本值“1”一起应用。

如果标志必须等于或大于1,请将 SUM 运算符与文本值“1”一起应用以触发游戏逻辑。

注意

如有必要,请初始化或重置 REPLACE 布尔值统计信息的值。否则,将保留最近设置的值。

在某些情况下,定义允许将布尔值统计信息重置为 FALSE 的事件很方便。 在这些情况下,请将 REPLACE 运算与文本值“0”一起使用。

返回到本主题顶部。

对累计值使用计数器

目标:以特定指标增加(或减少)用户的历史累计值

当您想要在每次处理事件时按固定或可变量增加统计信息值时,请使用此模式。

用例

  • 玩家级别

  • 总击杀数

  • 上传的视频数量

  • 用户在每个地图上玩的次数

  • 驾驶每种车型的累计距离

  • 物品栏中物品的当前数量

示例:多人游戏匹配取胜计数器

字段
事件名称 MatchCompleted
事件字段 1 Result(数据类型:Int32)
事件字段 2 Mode(数据类型:Unicode 字符串)
统计信息模板名称 MatchesCompleted.Result.Mode
运算符 SUM
参数 1
访问 Open

规则

SUM 运算符应用于相应的事件字段,或将固定的常数值指定为参数。

要减小统计信息的值,请使用负值作为参数,作为事件字段中的固定常数或运行时值。

注意

不要将字符串数据类型“文本”值作为参数与 SUM 运算符一起使用。

不要将 SUM 运算符应用于字符串数据类型事件字段。

如果您有多个事件更新同一统计信息,请确保更新该统计信息的所有统计信息规则都使用相同的运算符。

返回到本主题顶部。

跟踪个人最佳

目标:跟踪用户任何时候在特定指标上的“最佳”得分

如果想要保留用户的最大 (MAX) 或最小 (MIN) 记录,请使用此模式。 丢弃不能改善用户记录的值。

用例

  • 最长连续击杀

  • 多人游戏回合中死亡人数最少

  • 完成每个赛道的最快时间

  • 在任何高尔夫课程上每个洞的最长击打距离

示例:完成欧洲组中任一赛道的最快时间

字段
事件名称 TrackCompleted
事件字段 1 TrackSet(数据类型:Unicode 字符串)
事件字段 2 TimeInSeconds(数据类型:Int32)
统计信息模板名称 BestFinishTimeInSeconds.TrackSet
运算符 MIN
参数 TimeInSeconds
访问 Open

规则

MAXMIN 运算符应用于相应的事件字段。

注意

不要将“文本”值作为参数与 MAXMIN 运算符一起使用。

不要将 MAXMIN 运算符应用于字符串数据类型事件字段。

如果您有多个事件更新同一统计信息,请确保更新该统计信息的所有统计信息规则都使用相同的运算符。

返回到本主题顶部。

跟踪最新数据

目标:以特定指标跟踪用户发布的最近得分

如果想要保留用户的最新记录,而不管该值是否能改善用户的最佳记录,请使用此模式。

用例

  • 当前难度

  • 当前多人游戏回合的死亡人数

  • 最近比赛中每个跑道的最高速度

  • 当前配备的高端高尔夫俱乐部的布尔值标记

示例:任何赛道上最近完成的时间

字段
事件名称 TrackCompleted
事件字段 1 TrackId(数据类型:Int32)
事件字段 2 TimeInSeconds(数据类型:Int32)
统计信息模板名称 BestFinishTimeInSeconds.TrackId
运算符 REPLACE
参数 TimeInSeconds
访问 Open

规则

REPLACE 运算符应用于相应的事件字段或文本值。

注意

如有必要,请初始化或重置 REPLACE 统计信息的值。否则,将保留最近设置的值。

返回到本主题顶部。