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 + "!");
}
});
}