> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XblAchievementsUpdateAchievementAsync

> XblAchievementsUpdateAchievementAsync

# XblAchievementsUpdateAchievementAsync

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

## 语法

```cpp theme={null}
HRESULT XblAchievementsUpdateAchievementAsync(  
         XblContextHandle xboxLiveContext,  
         uint64_t xboxUserId,  
         const char* achievementId,  
         uint32_t percentComplete,  
         XAsyncBlock* async  
)  
```

### 参数

*xboxLiveContext*   \_In\_\
类型：[XblContextHandle](/reference/live/xsapi-c/types_c/handles/xblcontexthandle)

使用 XblContextCreateHandle 创建的 XBOX Live 上下文句柄。

*xboxUserId*   \_In\_\
类型：uint64\_t

玩家的 XBOX 用户 ID。

*achievementId*   \_In\_z\_\
类型：char\*

由 XDP 或开发人员中心定义的 UTF-8 编码的成就 ID。

*percentComplete*   \_In\_\
类型：uint32\_t

用于指示进度的成就完成百分比。有效值为 1 到 100。设置为 100 可解锁成就。服务端会将进度设置为所发送值中的最大值。

*async*   \_In\_\
类型：XAsyncBlock\*

调用方分配的 AsyncBlock。

### 返回值

类型：HRESULT

此 API 操作的 HRESULT 返回代码。

## 备注

即使在 PC 和 XBOX One 上离线时，此 API 也能正常工作。即使标题未在运行，系统也会在重新建立连接时发布离线更新。可通过在 AsyncBlock 回调内或 AsyncBlock 完成后调用 [XAsyncGetStatus](/reference/system/xasync/functions/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

## 另请参阅

[achievements\_c](/reference/live/xsapi-c/achievements_c/achievements_c_members)


## Related topics

- [面向 GDK 的 Unity C# API 包装器](/zh-CN/build/gdk-and-engines/unity/unity-api-wrappers.md)
- [更新作品管理的成就](/zh-CN/services/xbox-services/player-data/achievements/title-managed/how-to/live-how-to-update-achievements.md)
- [XblAchievementsManagerAddLocalUser](/zh-CN/reference/live/xsapi-c/achievements_manager_c/functions/xblachievementsmanageraddlocaluser.md)
- [Stats 与成就](/zh-CN/build/steam-porting-guide/features/stats-and-achievements.md)
- [XblAchievementsUpdateAchievementForTitleIdAsync](/zh-CN/reference/live/xsapi-c/achievements_c/functions/xblachievementsupdateachievementfortitleidasync.md)
