XblAchievementsManagerUpdateAchievement

允许更新成就进度和解锁成就。

语法

HRESULT XblAchievementsManagerUpdateAchievement(  
         uint64_t xboxUserId,  
         const char* achievementId,  
         uint8_t currentProgess  
)  

参数

xboxUserId _In_
类型:uint64_t

玩家的 Xbox 用户 ID。

achievementId _In_
类型:char*

UTF-8 编码的成就 ID,由开发者中心定义。

currentProgess _In_
类型:uint8_t

指示进度的成就的完成百分比。 有效值从 1 到 100。 设为 100 以解锁成就。 进度将由服务器设置为发送的最高值。

返回值

类型:HRESULT

此 API 操作的 HRESULT 返回代码。

备注

假设已使用 XblAchievementsManagerAddLocalUser 成功初始化成就管理器,即使在电脑和 Xbox 主机上脱机时,此 API 也能正常工作。 即使游戏未运行,系统也会在重新建立连接后发布脱机更新。 运行结果不会立刻在本地表示。 更新最快将在下一框架呼叫 Dowork 后得到表示。 一旦更改得到表示,返回 Dowork 的数组将包含AchievementProgressUpdated事件类型的XblAchievementsManagerEvent,如果新过程的结果是解锁成就,还可能添加事件到AchievementUnlocked。 如果成就已经解锁或过程值小于或等于服务器捕获值,此函数将分别返回 E_NOT_VALID_STATE 或 E_INVALIDARG。 只有基于成就的片头会由此函数更新。 基于成就的事件不会由此函数更新。

REST 调用

V2 POST /users/xuid({xuid})/achievements/{scid}/update

要求

标头:achievements_manager_c.h

图书馆: Microsoft.Xbox.Services.14x.GDK.C.lib

另请参阅

achievements_manager_c