Tabla de Clasificación de MegaBlock Survivors
MegaBlock Survivors registra cada partida completada sin trampas en una tabla de clasificación persistente almacenada en plugins/MegaBlockSurvivors/leaderboard.yml. Las partidas con trampas (cualquier partida donde se haya usado /mbs cheat) se excluyen explícitamente.
Categorías
Cada entrada lleva una etiqueta de modo de juego y dificultad, por lo que la tabla de clasificación se divide en 6 categorías independientes:
| Modo | Dificultad |
|---|---|
| Challenge | Easy |
| Challenge | Medium |
| Challenge | Hard |
| Endless | Easy |
| Endless | Medium |
| Endless | Hard |
Las categorías se clasifican de forma independiente y cada una guarda hasta 100 entradas en disco. Las 10 mejores se muestran a los jugadores.
Reglas de Clasificación
| Modo | Orden primario | Desempate |
|---|---|---|
| Challenge | Tiempo de finalización más rápido (ascendente) | Las entradas más nuevas ganan los empates |
| Endless | Oleada más alta alcanzada (descendente) | Tiempo sobrevivido (gana el más largo), luego marca temporal |
Esta división tiene sentido porque el modo Challenge tiene un punto final fijo (el jefe final), por lo que "finalización más rápida" es la métrica de habilidad obvia. Endless no tiene fin, por lo que "oleada más alta alcanzada" es la medida significativa.
Holograma en el Mundo
Se genera un único holograma TextDisplay en el mundo de lobby mbs_spawn (en las coordenadas del mundo ~4.5, 67, -14.5). El holograma está anclado por la parte inferior -- el borde inferior del texto siempre se sitúa en la Y de anclaje, de modo que añadir nuevas secciones hace crecer la visualización hacia arriba en lugar de hacia abajo a través del suelo.
El holograma renderiza hasta seis secciones (Challenge x {Easy, Medium, Hard} seguido de Endless x {Easy, Medium, Hard}). Las secciones con cero entradas se omiten silenciosamente para que un servidor recién creado no muestre seis categorías vacías. Si todas las categorías están vacías, se muestra una única línea "no highscores yet" en su lugar.
El holograma se vuelve a generar automáticamente:
- Al habilitar / recargar el plugin.
- Después de que se registre cada nueva entrada en la tabla de clasificación.
- Cuando el chunk de anclaje en
mbs_spawnse recarga (Paper elimina las entidades de display no persistentes al descargar el chunk, por lo que el listener vuelve a generar el holograma cada vez que el chunk del lobby regresa).
Si mbs_spawn no existe en disco, el holograma se omite silenciosamente y se registra un WARN.
Visualización por Partida en el Chat
Cuando termina una partida sin trampas, el jugador ve el top 10 de la categoría de su partida como un bloque de chat. La fila del propio jugador se resalta (> #N). Si el rango del jugador está fuera del top 10, se muestra una fila de puntos suspensivos seguida de su línea de rango real.
Las victorias con trampas muestran en su lugar un aviso "Leaderboard not updated (cheating detected)".
Esquema de Entrada
Cada entrada registra:
| Campo | Descripción |
|---|---|
playerName | El nombre de visualización de Bukkit al final de la partida. |
playerUUID | El UUID del jugador. |
timeSeconds | Duración total de la partida en segundos. |
kills | Total de eliminaciones que no son de jefe. |
level | Nivel final del jugador. |
highestWave | Oleada más alta alcanzada. Estadística primaria para Endless. |
gameMode | CHALLENGE o ENDLESS. |
difficulty | EASY, MEDIUM o HARD. |
timestamp | Milisegundos epoch cuando terminó la partida. |
Las entradas heredadas anteriores a esta división se etiquetan automáticamente como Challenge / Medium al leerse, para que las tablas de clasificación antiguas sigan renderizándose.
Borrar la Tabla de Clasificación
No existe un comando dentro del juego para borrar la tabla de clasificación. Para reiniciar, detén el servidor y elimina plugins/MegaBlockSurvivors/leaderboard.yml.