Passer au contenu principal

Conception > Ludification > Événements de statistiques

Déclencher des événements personnalisés qui ajoutent des devises et des statistiques utilisateur

Jason Liang avatar
Écrit par Jason Liang
Mis à jour hier

Conception

Les événements de statistiques constituent une puissante abstraction de conception pour manipuler les statistiques des joueurs dans brainCloud. Considérez-les comme des macros qui, une fois déclenchées, modifient simultanément les statistiques de plusieurs joueurs. L'utilisation d'événements de statistiques dans votre application permet à vos codeurs de travailler à un niveau supérieur en déclenchant des événements de statistiques, tandis que votre concepteur est libre de déterminer et d'ajuster les statistiques individuelles.

Par exemple, un événement statistique qui se déclenche lors de la victoire sur un boss PNJ pourrait :

  • Décerner des XP au joueur

  • Décerner des monnaie

  • Augmenter une statistique de victoire de boss pour un rang dans un classement

  • Décerner un succès

Mise en œuvre

Pour créer des événements statistiques, accédez à la page Événements statistiques sur le tableau de bord.

Créer un événement statistique

  • Cliquez sur le bouton [+ Nouvel événement de statistiques...] avec l'icône plus.

  • Saisissez un nom et une description pour l'événement. Vous pouvez utiliser l'API TriggerStatsEvent pour appeler l'événement statistique via son nom. Un événement statistique peut être appelé plusieurs fois.

  • Entrez un succès que l'événement Stat récompense.

  • Saisissez les XP, les Monnaies, les Utilisateurs et les Statistiques globales que l'événement de statistiques récompense. Étant donné qu'un événement de statistiques peut être récompensé plusieurs fois, vous pouvez le récompenser avec un multiplicateur lors de l'appel d'API. Par exemple, une statistique qui rapporte 10 XP et 100 pièces rapportera 50 XP et 500 pièces, avec un multiplicateur multiplié par cinq.

  • [Sauvegarder] votre nouvel événement de statistiques utilisateur !

Écrire le code

Maintenant que vous avez créé des événements statistiques, vous souhaiterez les déclencher pour vos joueurs.

Dans votre code client

  • Ajoutez le client brainCloud à votre application.

  • Associez le client au tableau de bord.

  • Déclenchez votre événement de statistiques avec l'appel TriggerStatsEvent.

  • Informez le joueur de toutes les récompenses importantes auxquelles l'événement déclencheur de statistiques a répondu.

    private BrainCloudWrapper _bc;
    private string _wrapperName = "default";
    void Start() {
    // Unity
    GameObject go = new GameObject();
    _bc = go.AddComponent<BrainCloudWrapper>();
    _bc.WrapperName = _wrapperName; // éventuellement définir un nom de wrapper
    _bc.Init(); // des données supplémentaires, telles que : _appId, _secret et _appVersion, sont extraites du plugin brainCloud Unity.
    DontDestroyOnLoad(go); // conserver l'objet de jeu brainCloud pendant les changements de scène

    _bc.AuthenticateAnonymous((response, cbObject) => { TriggerStatEvent(); });
    }
    void TriggerStatEvent()
    {
    var eventName = "loot_pack_small_found";
    var eventMultiplier = 3;

    _bc.PlayerStatisticsEventService.TriggerStatsEvent(eventName, eventMultiplier, (response, cbObject) =>
    {
    var jsonMessage =
    (Dictionary<string, object>) BrainCloud.JsonFx.Json.JsonReader.Deserialize(response);
    var jsonData = (Dictionary<string, object>) jsonMessage["data"];
    var rewards = (Dictionary<string, object>) jsonData["rewards"];

    var playerAchievements = (string[]) rewards["playerAchievements"];
    foreach (var achievement in playerAchievements)
    {
    // Vous avez gagné le succès de butin !
    Debug.Log("You earned the " + achievement + " achievement!");
    }
    // Vous avez gagné 30 XP !
    Debug.Log("You earned " + rewards["experiencePoints"] + " XP!");

    var currency = (Dictionary<string, object>) rewards["currency"];
    foreach (var reward in currency)
    {
    // Vous avez gagné 750 médailles !
    Debug.Log("You earned " + reward.Value + " " + reward.Key + "!");
    }
    });
    }
Avez-vous trouvé la réponse à votre question ?