Classements

Des scores classés avec réinitialisations automatiques, archives des périodes passées et anti-triche côté serveur.

Les commentaires du code et les noms d'API restent en anglais pour correspondre aux SDK.

Sur cette page

Créer un classement#

Créez des classements sur la page Classements de votre projet et utilisez le slug dans le code.

ParamètreOptions
SlugIdentifiant en minuscules utilisé dans le code, par ex. coins.
Ordre de triDESC (le plus élevé d'abord) ou ASC (le plus bas d'abord, par ex. pour des temps de course).
Mode de scoreBEST conserve le meilleur score de chaque joueur ; LATEST le remplace toujours.
RéinitialisationNONE, DAILY, WEEKLY ou MONTHLY.
Score minimum / maximumScore minimum et maximum acceptés (facultatif).
Délai entre envoisNombre minimum de secondes entre deux envois d'un même joueur (facultatif).

Envoyer un score#

Le nom du joueur provient du compte : un client ne peut donc pas envoyer de score au nom de quelqu'un d'autre.

C#
var submit = await Majacloud.Leaderboards.SubmitScoreAsync("coins", 340);
if (submit.Ok && submit.Value.Accepted)
    Debug.Log("New rank #" + submit.Value.Entry.Rank);

Lire le classement#

Les meilleures entrées ne nécessitent pas de connexion ; le rang du joueur et les entrées autour de lui nécessitent un joueur connecté.

C#
var top = await Majacloud.Leaderboards.GetTopAsync("coins", limit: 10);
var me = await Majacloud.Leaderboards.GetMyRankAsync("coins");
var around = await Majacloud.Leaderboards.GetAroundMeAsync("coins", radius: 3);

if (me.Ok && me.Value.Entry != null) Debug.Log("You are #" + me.Value.Entry.Rank + " of " + me.Value.Total);

Réinitialisations et périodes précédentes#

Les classements quotidiens, hebdomadaires (le lundi) et mensuels sont réinitialisés à 00:00 UTC. La période terminée est archivée ; lisez-la avec la période previous :

C#
var yesterday = await Majacloud.Leaderboards.GetTopAsync("coins", 10, 0, MajacloudLeaderboardPeriod.Previous);
Le nombre de périodes passées conservées et le nombre d'entrées renvoyées par un classement dépendent de l'offre (voir Limites).

Anti-triche#

  • Les scores en dehors du minimum ou du maximum sont refusés avec validation.
  • Envoyer plus vite que le délai autorisé renvoie rate_limited.
  • Les clients ne peuvent envoyer de score que pour le joueur connecté.
  • Pour les jeux compétitifs, laissez votre serveur déterminer le score et l'envoyer avec la clé secrète.

Envoyer depuis votre serveur#

Avec la clé secrète, envoyez le player_id et le score. Le joueur doit exister.

JavaScript
// Node.js with secretKey: submit after your server validated the match
await admin.server.submitScore('coins', 'player_3f9c…', 980);

Recherche dans les titres de page, les intertitres et le texte.

↑↓ pour naviguer ↵ pour ouvrir Esc pour fermer