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

# Écrire un événement pour alimenter un succès basé sur les événements

> Exemple de code XblEventsWriteInGameEvent qui déclenche un événement de jeu afin que les règles de statistiques des services XBOX mettent à jour les statistiques et déverrouillent les succès basés sur les événements.

Cette rubrique présente un exemple de code montrant comment écrire un événement en jeu.

Lorsque l'événement est déclenché, les statistiques basées sur les événements du service sont mises à jour selon les règles de statistiques que vous avez définies dans Partner Center.
Ces statistiques alimentent à leur tour les succès basés sur les événements.

## Avant de commencer

* Votre produit utilise l'ensemble complet des fonctionnalités des services XBOX. Les nouveaux produits commencent avec des services XBOX limités, et les succès et le gamerscore ne sont pas disponibles tant que votre produit n'a pas été intégré. Pour plus d'informations, consultez [Demander l'intégration du produit pour activer les services XBOX complets](https://docs.xbox.com/fr-CA/home/onboarding.md#request-product-onboarding-to-enable-full-xbox-services).
* Vous avez configuré l'événement, les règles de statistiques et le succès dans Partner Center, et publié la configuration des services XBOX dans votre sandbox de développement.
* Votre kit de développement ou votre PC Windows utilise le même sandbox de développement, et vous vous connectez avec un compte de test qui a accès à ce sandbox. Pour plus d'informations, consultez [Vue d'ensemble des sandboxes des services XBOX](https://docs.xbox.com/fr-CA/services/xbox-services/fundamentals/sandboxes/live-setup-sandbox.md).
* Votre jeu a initialisé le Gaming Runtime, puis a appelé [XblInitialize](https://docs.xbox.com/fr-CA/reference/live/xsapi-c/xbox_live_global_c/functions/xblinitialize.md) avec une structure [XblInitArgs](https://docs.xbox.com/fr-CA/reference/live/xsapi-c/xbox_live_global_c/structs/xblinitargs.md) dont le membre `scid` contient votre ID de configuration de service (SCID). Le SCID respecte la casse. Pour plus d'informations, consultez [Utilisation des API des services XBOX](https://docs.xbox.com/fr-CA/services/xbox-services/fundamentals/xbox-services-api/live-gs-xbl-apis.md).
* Vous avez connecté un utilisateur et créé un `XblContextHandle` pour cet utilisateur en appelant [XblContextCreateHandle](https://docs.xbox.com/fr-CA/reference/live/xsapi-c/xbox_live_context_c/functions/xblcontextcreatehandle.md).

Pour réinitialiser les succès et les statistiques d'un compte de test entre deux séries de tests, utilisez l'[outil de réinitialisation des données de joueur (XblPlayerDataReset.exe)](https://docs.xbox.com/fr-CA/tools/tools-services/live-player-data-reset.md). Pour réinitialiser un joueur au moyen de son XUID, le compte de développeur avec lequel vous vous connectez à l'aide de XblDevAccount.exe doit disposer de l'autorisation Tools Access au niveau du produit.

## Écrire l'événement

L'exemple suivant utilise l'API C plate. `LogToScreen` représente la fonction de journalisation de votre application.

```cpp theme={null}
HRESULT hr = XblEventsWriteInGameEvent(
    xboxLiveContext,
    "PuzzleSolved",
    R"({"DifficultyLevelId":100, "GameplayModeId":"Adventure"})",
    R"({"LocationX":1,"LocationY":1})"
);
if (FAILED(hr))
{
    // Log the failure. Don't retry the call in a loop.
    LogToScreen("XblEventsWriteInGameEvent failed: 0x%08X", static_cast<unsigned int>(hr));
}
```

Pour plus d'informations, consultez [XblEventsWriteInGameEvent](https://docs.xbox.com/fr-CA/reference/live/xsapi-c/events_c/functions/xbleventswriteingameevent.md).

## Résolution des problèmes

* **L'appel retourne `E_INVALIDARG`.** *xboxLiveContext* ou le nom de l'événement est null.
* **L'appel retourne `E_XBL_NOT_INITIALIZED`.** Appelez `XblInitialize` avant d'écrire des événements.
* **L'appel retourne `E_NOTIMPL`.** La fonctionnalité XGameEvent du Gaming Runtime n'est pas disponible. Sur un PC Windows, les Gaming Runtime Services installés doivent inclure la fonctionnalité XGameEvent.
* **L'appel réussit, mais la statistique ou le succès ne change pas.** Le nom de l'événement et les noms des champs de l'événement doivent correspondre aux noms de la configuration de service de votre titre. Les noms ne respectent pas la casse. Si le nom de l'événement ne correspond à aucun événement de la configuration de service, le service ignore l'événement sans en avertir votre jeu.
* **Les valeurs des champs ne sont pas au bon endroit.** Placez dans les dimensions les champs qui ont un ensemble fini de valeurs numériques ou de chaînes, comme le niveau de difficulté ou le mode de jeu. Placez dans les mesures les métriques numériques scalaires, comme le score, le temps ou la position.
* **Les mises à jour prennent du temps.** Les événements sont écrits localement sur l'appareil, même lorsque celui-ci est hors ligne, et sont chargés lorsque l'appareil est en ligne. Si l'appareil est en ligne, les statistiques basées sur les événements sont généralement mises à jour de 5 à 20 secondes après l'écriture de l'événement.


## Related topics

- [Exemples de code pour les succès basés sur les événements](https://docs.xbox.com/fr-CA/services/xbox-services/player-data/achievements/event-based/how-to/live-achievements-eb-howto-nav.md)
- [Exemples de succès basés sur les événements](https://docs.xbox.com/fr-CA/services/xbox-services/player-data/achievements/event-based/how-to/index.md)
- [Écrire un événement pour alimenter une statistique basée sur les événements](https://docs.xbox.com/fr-CA/services/xbox-services/player-data/stats-leaderboards/event-based/how-to/live-sending-eb-stat.md)
- [Exemple de code pour les statistiques et classements basés sur les événements (contenu)](https://docs.xbox.com/fr-CA/services/xbox-services/player-data/stats-leaderboards/event-based/how-to/live-statslb-eb-howto-nav.md)
- [Succès basés sur les événements](https://docs.xbox.com/fr-CA/services/xbox-services/player-data/achievements/event-based/index.md)
