跳转到主要内容

XblLeaderboardQuery

表示使用基于事件的统计信息或基于标题的统计信息提交排行榜查询的参数。

语法

成员

xboxUserId
类型:uint64_t
可选的请求用户的 XBOX 用户 ID。如果查询全局排行榜,则设置为 0。 scid
类型:char[XBL_SCID_LENGTH]
标题的 UTF-8 编码服务配置 ID (SCID)。 leaderboardName
类型:const char*
可选的 UTF-8 编码排行榜名称,用于获取该排行榜。查询社交排行榜或由游戏托管的统计信息支持的排行榜时,将其设置为 nullptr。 statName
类型:const char*
可选的 UTF-8 编码统计信息名称,用于获取该排行榜。查询社交排行榜或由游戏托管的统计信息支持的排行榜时使用。 socialGroup
类型:XblSocialGroupType
可选的用户社交组,用于获取排行榜结果。例如,获取 “仅好友” 排行榜。将其设置为 XblSocialGroupType_None 以获取全局排行榜。 additionalColumnleaderboardNames
类型:const char**
可选的其他列的统计信息名称的 UTF-8 编码数组。 additionalColumnleaderboardNamesCount
类型:size_t
可选的传入的 additionalColumnleaderboardNames 的数量。 order
类型:XblLeaderboardSortOrder
设置结果排行榜的排序顺序。 maxItems
类型:uint32_t
设置结果排行榜可包含的最大项数。将其设置为 0 可让服务返回默认最大项数。 skipToXboxUserId
类型:uint64_t
设置结果排行榜围绕哪个用户为中心。将其设置为 0 表示不跳到特定用户。 skipResultToRank
类型:uint32_t
设置结果排行榜围绕哪个排名为中心。将其设置为 0 表示不跳到特定排名。 continuationToken
类型:const char*
UTF-8 编码的 continuationToken,用于获取下一组排行榜数据。 queryType
类型:XblLeaderboardQueryType
要查询的排行榜类型。

成员归属

XblLeaderboardResult

作为参数

XblLeaderboardGetLeaderboardAsync

备注

基于事件的统计信息

在使用 statName 成员配合基于事件的统计信息时,其值应与统计信息实例相对应。

游戏托管的统计信息

在将游戏托管的统计信息用于排行榜时,将 skipToXboxUserId 设置为非零值会将指定的 xboxUserId 的存储统计信息与全局排行榜进行比较。 同样,将 socialGroup 设置为 People 或 Favorites 会比较指定 xboxUserId 及其关联用户的存储统计信息,不会使用全局排行榜的值。 请注意,当玩家的存储统计信息与其在全局排行榜上的分数不同时,可能会导致输出不匹配。
对于游戏托管的统计信息,玩家在全局排行榜上的条目并非其当前存储统计信息的直接投影。排行榜服务仅保留每位玩家已记录的最高值。因此,向统计信息写入更低的值不会降低该玩家在全局排行榜上的位置;排行榜将继续反映之前记录的最高值。存储的统计信息本身(可通过 XblUserStatisticsGet* 或 XblTitleManagedStatsGetForUserAsync 查询)反映最近一次写入的值,这就是它可能与排行榜产生差异的原因。如果你的标题需要排行榜位置能够下降,则游戏托管的统计信息并不合适。例如可上下变化的评分,或在失败时会重置的分数。相反,请考虑使用带 Replace 规则的基于事件的统计信息,或使用外部排行榜服务,例如 PlayFab Leaderboards v2。有关此行为的更多讨论,请参阅 LeaderboardsTitleManaged Microsoft 游戏开发工具包 (GDK) 示例的实现说明。

要求

头文件: leaderboard_c.h

另请参阅

leaderboard_c
基于事件的统计信息与游戏托管的统计信息
最后修改于 2026年10月19日