创建基于事件的成就的方案
本主题介绍了一些创建成就的常见方案。
注意
如果当前使用基于事件的成就(2013 年成就),并希望继续使用交叉进度,则本主题适用。 否则,我们建议使用游戏管理的成就。
多个条件的 AND/OR 逻辑
成就有两种常见的 AND 场景:同步 AND 和异步 AND。
异步 AND
异步 AND 逻辑定义在满足所有成就规则时解锁的成就。 用户可以在不同的时间点独立于其他规则来履行每个规则。
这种成就的一个示例是“杀死 10 个僵尸和 20 个幽灵”。要定义此成就,请配置多个成就规则,如下表所示。
字段 | 值 |
---|---|
规则 1 名称 | 杀死 10 个僵尸 |
统计信息 | Kills.EnemyType.Zombie |
操作 | SUM |
阈值 | 10 |
规则 2 名称 | 杀死 20 个幽灵 |
统计信息 | Kills.EnemyType.Ghost |
操作 | SUM |
阈值 | 20 |
同步 AND
同步 AND 逻辑定义在满足所有成就规则时解锁的成就,用户必须同时满足每个条件。 这种成就的一个示例是“扮演 Johnny 时用球棒杀死 10 只僵尸”。
同步 AND 规则不能简单地由多个单独捕获每个条件的成就规则定义。 这不符合要求,因为每个成就规则都可以独立满足。 如果用户执行了以下操作,示例成就将错误解锁:
- 星期一:扮演 Johnny,杀死 0 个僵尸。
- 星期二:扮演 Sam,杀死 10 只僵尸。
- 星期五:扮演 Tim,使用球棒杀死 5 个骷髅。
要定义像这样的成就,必须定义一个包含每个条件的统计信息规则。 只有事件包含用户活动的完整上下文,因为它们准确地表达了游戏中特定时刻发生了什么。 统计数据从事件中继承,成就从统计信息中继承。必须将成就条件定义为统计信息,以保留任何与成就相关的上下文。 仅当通过包含所需的确切值的特定统计信息实例达到阈值时,才能解锁成就。 以下配置定义了示例成就。
字段 | 值 |
---|---|
规则 1 名称 | 扮演 Johnny,用棍棒杀死 10 个僵尸 |
统计信息 | Kills.EnemyType.Zombie.WeaponType.Bat.PlayerCharacter.Johnny |
操作 | SUM |
阈值 | 10 |
成就的 OR 逻辑
成就最常见的 OR 场景是以一组不同、显式枚举的可能方式来描述特定目标。 可以通过这种方式或另一种方式来解锁成就。
不能通过定义多个成就规则(每个目标一个)来实现此场景。 成就上的多个规则充当逻辑 AND,因此必须满足每个规则才能解锁成就。 为“3 分钟内在赛道 A 上完成比赛”使用一个成就规则,为“在赛道 B 上行驶 1,000 英里”使用第二个成就规则,这样,仅当用户达成这两个目标时才会导致成就解锁。
要使用 OR 逻辑定义成就,必须将单个成就规则配置为基于多个统计信息实例,其中每个统计信息实例跟踪一种可接受的方式。
使用 MIN 或 MAX 规则
这种情况的一个示例是“在三分钟内在赛道 A、B 或 F 上完成比赛”。其成就配置如下表所示。
字段 | 值 |
---|---|
规则 1 名称 | 在不到三分钟的时间内完成 A、B 或 F 赛道的竞赛 |
统计信息 | FinishTimeInSeconds.TrackId.A FinishTimeInSeconds.TrackId.B FinishTimeInSeconds.TrackId.F |
操作 | MIN |
阈值 | 180 |
由于此成就规则使用 MIN 规则操作,因此当列出的任何统计信息实例满足阈值时,成就将解锁。 例如,如果 FinishTimeInSeconds.TrackId.A is 220
、FinishTimeInSeconds.TrackId.B is 163
和 FinishTimeInSeconds.TrackId.F
为 199,则成就将解锁,因为用户在 Racetrack B 上的完成时间优于阈值。
使用 SUM 规则
这种情况的一个示例是“在赛道 A、B 或 F 上累计行驶 1,000 英里”。其成就配置如下表所示。
字段 | 值 |
---|---|
规则 1 名称 | 在赛道 A、B 或 F 上行驶 1,000+ 英里 |
统计信息 | MilesDriven.TrackId.A MilesDriven.TrackId.B MilesDriven.TrackId.F |
操作 | SUM |
阈值 | 1000 |
由于此成就规则使用 SUM 规则操作,因此当列出的统计信息实例的汇总组合满足阈值时,成就将解锁。 例如,如果 MilesDriven.TrackId.A is 900
、MilesDriven.TrackId.B is 115
和 MilesDriven.TrackId.F is 0
,则成就将解锁,因为用户在所有三个统计信息中的聚合总数都优于阈值。
达到这个目标或那个目标
不支持的成就场景是要求用户实现几个不同目标中的一个。 例如:“3 分钟内在赛道 A 上完成比赛或在赛道 B 上行驶 1000 英里”。
成就逻辑中目前不支持此成就场景。 无法通过定义多个成就规则(每个目标一个)来实现此场景。 成就上的多个规则充当逻辑 AND,因此必须满足每个规则才能解锁成就。 为“3 分钟内在赛道 A 上完成比赛”使用一个成就规则,为“在赛道 B 上行驶 1,000 英里”使用第二个成就规则,这样,仅当用户达成这两个规则时才会导致成就解锁。
重复操作
使用此模式定义要求用户多次重复执行某项操作的成就。
示例 1:赢得 50 场多人游戏比赛
字段 | 值 |
---|---|
规则名称 | 赢得 50 场多人游戏比赛 |
统计信息 | MatchesCompleted.Result.1.Mode.Multiplayer |
操作 | SUM |
阈值 | 50 |
示例 2:上传 10 个视频和评价 100 个视频
字段 | 值 |
---|---|
规则 1 名称 | 上传 10 个视频 |
统计信息 | VideosUploaded |
操作 | SUM |
阈值 | 10 |
规则 2 名称 | 评价 100 个视频 |
统计信息 | VideosRated |
操作 | SUM |
阈值 | 100 |
有关设计用户统计信息的详细信息,请参阅对累计值使用计数器。
操作的集合
目标:在 Y 项中查找 X 项
使用此模式定义要求用户对特定集内的所有成员(或其子集)进行操作的一个成就。
示例 1:在专家难度下完成所有关卡
字段 | 值 |
---|---|
规则 1 名称 | 在专家难度下完成关卡 1 |
统计信息 | LevelCompleted.Mode.3.LevelId.1 |
操作 | SUM |
阈值 | 1 |
规则 2 名称 | 在专家难度下完成关卡 2 |
统计信息 | LevelCompleted.Mode.3.LevelId.2 |
操作 | SUM |
阈值 | 1 |
规则 3 名称 | 在专家难度下完成关卡 3 |
统计信息 | LevelCompleted.Mode.3.LevelId.3 |
操作 | SUM |
阈值 | 1 |
示例 2:在 3 分钟内完成任意欧洲赛道
此成就可以定义为最少的单个赛道完成时间,或者使用一组赛道的最佳完成时间来进行定义。 使用以下任一方法,但不能同时使用这两种方法。
方法 1
字段 | 值 |
---|---|
规则名称 | 在 3 分钟之内完成任意欧洲赛道 |
统计信息 | LastFinishTimeInSeconds.TrackId.21 LastFinishTimeInSeconds.TrackId.22 LastFinishTimeInSeconds.TrackId.23 LastFinishTimeInSeconds.TrackId.24 LastFinishTimeInSeconds.TrackId.25 LastFinishTimeInSeconds.TrackId.26 |
操作 | MIN |
阈值 | 180 |
方法 2
字段 | 值 |
---|---|
规则名称 | 在 3 分钟之内完成任意欧洲赛道 |
统计信息 | BestFinishTimeInSeconds.TrackSet.Europe |
操作 | MIN |
阈值 | 180 |
要设计关联的用户统计信息,请参阅“跟踪最新”和“跟踪个人最佳”。
个人最佳
使用此模式定义要求用户在单个会话或游戏中超越目标的成就。 无法通过聚合工作(如多次赛跑)来实现此成就。
示例 1:在 5 次或更少死亡情况下完成游戏
字段 | 值 |
---|---|
规则名称 | 示在 5 次或更少死亡情况下完成游戏 |
统计信息 | PlaythroughDeaths.GameResultId.1 |
操作 | MIN |
阈值 | 5 |
示例 2:扮演 Lebron James,在得分至少为 50 分的情况下赢得比赛
字段 | 值 |
---|---|
规则名称 | 赢得比赛且扮演 Lebron 且得分至少为 50 分 |
统计信息 | BestScore.PlayerId.3056.MatchResultId.1 |
操作 | SUM |
阈值 | 10 |
表示符合条件的二进制值
使用此模式来定义一项需要用户进行复杂活动的成就,这些活动不能通过 Xbox 服务统计信息轻松跟踪,或者其他 Xbox 服务成就配置选项不支持这些活动。
示例:使用猎枪杀死 90 个敌人或使用狙击枪杀死 10 个敌人
字段 | 值 |
---|---|
规则名称 | 用猎枪杀死 90 个或使用狙击枪杀死 10 个 |
统计信息 | AchievementUnlocked.UnlockId.9010 |
操作 | SUM |
阈值 | 1 |
重要
此成就配置不跟踪猎枪击杀或狙击枪击杀。 它只记录满足这两个条件之一的事实。 成就必须由游戏设置,因为数据平台不支持此场景。