Saltar al contenido principal
En este tema se tratan los siguientes puntos:

Antes de empezar

Para restablecer los logros de una cuenta de prueba entre ejecuciones de prueba, use la herramienta de restablecimiento de datos de jugador (XblPlayerDataReset.exe). Para restablecer un jugador por XUID, la cuenta de desarrollador con la que inicia sesión mediante XblDevAccount.exe necesita el permiso “Tools Access” en el nivel de producto.

Desbloqueo de un logro

Después de configurar los logros mediante Partner Center y publicarlos en su sandbox de desarrollo, su título puede desbloquearlos llamando a la API XblAchievementsUpdateAchievementAsync. Para obtener más información, consulte el código de ejemplo de la sección siguiente. Para desbloquear un logro, establezca percentComplete en 100. Si el usuario está en línea, la solicitud se envía inmediatamente al servicio de logros de los servicios XBOX y desencadena las siguientes experiencias de usuario.
  • El usuario recibe una notificación de logro desbloqueado.
  • El logro especificado aparece como desbloqueado en la lista de logros del usuario para el título.
  • El logro desbloqueado se agrega a la fuente de actividades del usuario.
La experiencia de usuario es visualmente la misma para los logros que usan logros basados en eventos o logros administrados por el título.
Si el usuario está sin conexión, la solicitud de desbloqueo se pone en cola localmente en el dispositivo del usuario. Cuando se restablece la conectividad de red, la solicitud se envía automáticamente al servicio de logros (no se requiere ninguna acción del juego para desencadenar esto) y se producen las experiencias de usuario anteriores tal como se describe.

Actualización del progreso de finalización de un logro

Para actualizar el progreso de un usuario hacia el desbloqueo de un logro, llame a XblAchievementsUpdateAchievementAsync. Establezca el argumento percentComplete en un número entero entre 1 y 100. Para obtener más información, consulte el siguiente código de ejemplo. El progreso de un logro solo puede aumentar. Si percentComplete se establece en un número menor que el último valor de percentComplete del logro, la actualización se ignora. Por ejemplo, si el percentComplete del logro se había establecido previamente en 75, el envío de una actualización con un valor de 25 se ignora. El logro se sigue mostrando como completado al 75 por ciento. Si percentComplete se establece en 100, el logro se desbloquea. Si percentComplete se establece en un número mayor que 100, la API se comporta como si hubiera establecido el número exactamente en 100.

Actualización de logros para el título actual

Puede actualizar los logros del título actual llamando a XblAchievementsUpdateAchievementAsync, como se muestra a continuación. API de C plana
Para obtener más información, consulte lo siguiente:

Actualización de logros para un título diferente

Puede actualizar los logros de otro titleId usando XblAchievementsUpdateAchievementForTitleIdAsync, como se muestra a continuación. API de C plana
Para obtener más información, consulte lo siguiente:

Solución de problemas

Para agrupar un HRESULT de error en una categoría sobre la que se pueda actuar, llame a XblGetErrorCondition. No reintente usted mismo las actualizaciones con error. Si una actualización produce un error debido a un problema de red o de autenticación, a una limitación (HTTP 429), a un error del servidor (HTTP 5xx) o a un error sin clasificar, XSAPI la pone en cola como un evento sin conexión y la envía cuando el dispositivo vuelve a estar en línea. En ese caso, XAsyncGetStatus devuelve el resultado de poner en cola el evento, que normalmente es S_OK. Si reintenta la actualización, el servicio puede recibirla dos veces. Los siguientes resultados pueden llegar a su juego: Volver al principio de este tema.
Última modificación el 30 de octubre de 2026