Aller au contenu principal

Classement de MegaBlock Survivors

MegaBlock Survivors enregistre chaque partie terminée non trichée dans un classement persistant stocké dans plugins/MegaBlockSurvivors/leaderboard.yml. Les parties trichées (tout match où /mbs cheat a été utilisé) sont explicitement exclues.

Catégories

Chaque entrée porte une étiquette de mode de jeu et une étiquette de difficulté, de sorte que le classement est réparti en 6 compartiments indépendants :

ModeDifficulté
ChallengeFacile
ChallengeMoyen
ChallengeDifficile
EndlessFacile
EndlessMoyen
EndlessDifficile

Les compartiments sont classés indépendamment, et chaque compartiment contient jusqu'à 100 entrées sur disque. Les 10 premières sont présentées aux joueurs.

Règles de classement

ModeTri principalDépartage
ChallengeTemps de complétion le plus rapide (croissant)Les entrées les plus récentes gagnent en cas d'égalité
EndlessVague la plus haute atteinte (décroissant)Temps de survie (le plus long l'emporte), puis horodatage

Cette répartition est logique car le mode Challenge a une fin fixe (le boss final), donc « le temps de complétion le plus rapide » est la mesure de compétence évidente. Endless n'a pas de fin, donc « la vague la plus haute atteinte » est la mesure pertinente.

Hologramme en jeu

Un seul hologramme TextDisplay est invoqué dans le monde de lobby mbs_spawn (aux coordonnées du monde ~4.5, 67, -14.5). L'hologramme est ancré par le bas -- le bord inférieur du texte reste toujours à la coordonnée Y de l'ancre, de sorte que l'ajout de nouvelles sections fait grandir l'affichage vers le haut plutôt que vers le bas à travers le sol.

L'hologramme affiche jusqu'à six sections (Challenge x {Facile, Moyen, Difficile} suivi de Endless x {Facile, Moyen, Difficile}). Les sections sans aucune entrée sont silencieusement omises, de sorte qu'un serveur tout neuf n'affiche pas six compartiments vides. Si tous les compartiments sont vides, une seule ligne « no highscores yet » est affichée à la place.

L'hologramme est réinvoqué automatiquement :

  • À l'activation / au rechargement du plugin.
  • Après chaque nouvelle entrée de classement enregistrée.
  • Lorsque le chunk d'ancrage dans mbs_spawn se recharge (Paper supprime les entités d'affichage non persistantes au déchargement des chunks, donc l'écouteur réinvoque l'hologramme à chaque retour du chunk du lobby).

Si mbs_spawn n'existe pas sur disque, l'hologramme est silencieusement omis et un WARN est journalisé.

Affichage en chat par partie

Lorsqu'une partie non trichée se termine, le joueur voit le top 10 du compartiment de sa partie sous forme de bloc dans le chat. La propre ligne du joueur est mise en surbrillance (> #N). Si le rang du joueur est en dehors du top 10, une ligne de points de suspension est affichée, suivie de sa ligne de rang réelle.

Les victoires trichées affichent à la place un message « Leaderboard not updated (cheating detected) ».

Schéma d'entrée

Chaque entrée suit :

ChampDescription
playerNameLe nom d'affichage Bukkit à la fin de la partie.
playerUUIDL'UUID du joueur.
timeSecondsDurée totale de la partie en secondes.
killsTotal des éliminations hors-boss.
levelNiveau final du joueur.
highestWaveVague la plus haute atteinte. Statistique principale pour Endless.
gameModeCHALLENGE ou ENDLESS.
difficultyEASY, MEDIUM ou HARD.
timestampMillisecondes Epoch au moment de la fin de la partie.

Les entrées antérieures à cette répartition sont automatiquement étiquetées Challenge / Medium à la lecture, afin que les anciens classements continuent à s'afficher.

Réinitialiser le classement

Il n'existe pas de commande en jeu pour vider le classement. Pour le réinitialiser, arrêtez le serveur et supprimez plugins/MegaBlockSurvivors/leaderboard.yml.