XblAchievementsUpdateAchievementAsync
允许更新成就进度和解锁成就。
语法
HRESULT XblAchievementsUpdateAchievementAsync(
XblContextHandle xboxLiveContext,
uint64_t xboxUserId,
const char* achievementId,
uint32_t percentComplete,
XAsyncBlock* async
)
参数
xboxLiveContext _In_
类型:XblContextHandle
使用 XblContextCreateHandle 创建的 xbox live 上下文句柄。
xboxUserId _In_
类型:uint64_t
玩家的 Xbox 用户 ID。
achievementId _In_z_
类型:char*
UTF-8 编码的成就 ID,由 XDP 或开发者中心定义。
percentComplete _In_
类型:uint32_t
指示进度的成就的完成百分比。 有效值从 1 到 100。 设为 100 以解锁成就。 进度将由服务器设置为发送的最高值
async _In_
类型:XAsyncBlock*
调用方分配的 AsyncBlock。
返回值
类型:HRESULT
此 API 操作的 HRESULT 返回代码。
备注
即使在 PC 和 Xbox One 上处于脱机状态时,此 API 也可以工作。 即使游戏未运行,系统也会在重新建立连接后发布脱机更新。 异步操作的结果可以通过在 AsyncBlock 回调中或在 AsyncBlock 完成后调用 XAsyncGetStatus 来获得。 如果成就已被解锁或进度值小于或等于服务器上当前记录的进度,则回调内的 XAsyncGetStatus() 将返回 HTTP_E_STATUS_NOT_MODIFIED (0x80190130L)。
REST 调用
V2 POST /users/xuid({xuid})/achievements/{scid}/update
要求
头文件:achievements_c.h
图书馆: Microsoft.Xbox.Services.14x.GDK.C.lib