Contenido generado con IA — puede contener errores.

Sistemas

Estadísticas

El perfil, los récords por ejercicio, el historial de sesiones y de duelos, y las tablas construidas encima.

Cuatro tablas guardan lo que ha hecho un jugador. Cada una responde a una pregunta distinta y ninguna se reconstruye a partir de otra, que es lo que permite podar sin riesgo las dos de historial.

TablaUna fila porResponde
aim_profilesJugadorLos números de por vida, el récord de duelos, el rating global y los ajustes del jugador
aim_recordsJugador y ejercicioLos mejores resultados, que es lo que ordena la tabla de un ejercicio
aim_sessionsRonda en solitario terminadaEl historial de sesiones que el jugador consulta
aim_matchesParticipante por dueloEl historial de duelos

La quinta tabla, aim_arenas, guarda las arenas y se explica en Arenas.

El perfil

La fila se carga cuando el jugador entra, se escribe en cada cambio y otra vez cuando sale. Un jugador cuya fila aún se está cargando juega con los ajustes por defecto.

CampoLo mueve
SesionesCada ronda en solitario guardada. Los duelos no cuentan aquí.
Impactos totales, disparos totales, precisiónRondas en solitario y duelos. Un disparo es un impacto o un fallo; un objetivo que expira no es ninguno de los dos. La precisión se guarda como porcentaje para que la tabla global pueda ordenar por ella.
Tiempo total entrenadoRondas en solitario y duelos.
Flick más rápido, reacción más rápidaEl menor tiempo distinto de cero, de rondas en solitario y de duelos por igual.
Rating globalSolo rondas en solitario: sube lo que la ronda haya subido el mejor rating del jugador en su ejercicio.
Duelos, victorias, derrotas, porcentaje de victoriasUn duelo decidido.
Rondas, rondas ganadas, rondas perdidasUn duelo decidido, a partir del marcador final de la serie.
Racha actual, mejor rachaRacha de duelos ganados: sube uno al ganar, vuelve a cero al perder.
Tamaño, distancia, color, estilo, los cinco interruptoresLa pantalla de ajustes.
Último ejercicio, último formatoLo último elegido en un menú, para que los selectores abran donde el jugador los dejó.

La fila del perfil también lleva una columna freeze. Siempre se escribe como true y nada la lee; se conserva para que una tabla existente no necesite migración.

/aim profile, o /aim stats, abre la pantalla del perfil: rating, precisión, sesiones y duelos en la cabeza; impactos, disparos, flick y reacción más rápidos y tiempo entrenado; duelos jugados, victorias, derrotas, porcentaje de victorias y rondas; la racha de duelos actual y la mejor; y botones a Récords, Sesiones, Historial de duelos y Tablas. /aim profile <jugador> abre el de otro, leído de la base de datos si está desconectado. El nombre tiene que conocerlo la caché de jugadores de ExyliaLib; si no, el comando responde player-not-found.

Récords

Una fila por jugador y ejercicio, con clave uuid:drill. Una ronda se fusiona con su fila cuando hizo algo: un impacto, un fallo, un objetivo expirado, una salida en falso o un solo tick de seguimiento evaluado. Una ronda que terminó durante la cuenta atrás no guarda nada.

Una ronda cuenta tanto si se completó como si no. Salir a mitad, desconectarse, que ExyliaPracticeCore reclame al jugador o pulsar Jugar otra vez a mitad guardan la ronda hasta donde llegó.

CampoRegla de fusión
sessionsMás uno
bestRatingEl mayor. El rating es la puntuación por la dificultad; ver Puntuación.
ratingSize, ratingDistanceLos multiplicadores de tamaño y distancia que tenía el jugador, solo cuando se superó el rating
bestScoreLa mayor
bestAccuracyLa mayor, contando solo rondas con al menos leaderboard.accuracy-min-shots disparos
bestStreakLa mayor. Una racha son impactos seguidos; un fallo, un objetivo expirado o una salida en falso la cortan.
mostHitsEl mayor
bestComboEl mayor. Solo un ejercicio COMBO lo construye.
bestReactionMillisLa menor reacción individual distinta de cero. Solo un ejercicio REACTION la fija.
bestFlickMillisEl menor tiempo distinto de cero entre dos impactos
bestOnTargetEl mayor porcentaje de la ronda sobre el objetivo. Solo un ejercicio TRACK lo fija.
totalHits, totalShots, totalTimeMillisSe suman

Cuando el rating supera al mejor anterior, la diferencia se suma al rating global del perfil, la pantalla de resultado y el chat lo anuncian como récord personal, y se descartan las tablas en caché para que el jugador se vea en la tabla que acaba de escalar.

Los duelos no fijan récords

Un duelo mueve el perfil — el récord de duelos, los impactos, disparos y tiempo de por vida y los tiempos más rápidos — y escribe dos filas de historial. Nunca toca aim_records, así que no puede meter a nadie en la tabla de un ejercicio ni subir su rating global.

La pantalla de Récords, a la que se llega desde el perfil, lista cada fila del jugador en el orden en que aparecen los ejercicios en config.yml; la fila de un ejercicio que ya no está en el archivo va al final. Cada fila muestra el mejor rating con el tamaño y la distancia con que se consiguió, el resto de mejores resultados, y las sesiones, precisión y tiempo de por vida en ese ejercicio.

Tablas de clasificación

Hay una tabla por ejercicio, ordenada por una de siete categorías, y una tabla global.

CategoríaOrdena porNombre por defecto
ratingbestRating, de mayor a menorRating
scorebestScore, de mayor a menorBest score
accuracybestAccuracy, de mayor a menorAccuracy
streakbestStreak, de mayor a menorBest streak
hitsmostHits, de mayor a menorMost hits
reactionbestReactionMillis, de menor a mayorFastest reaction
combobestCombo, de mayor a menorBest combo

Los nombres y los iconos están en messages.yml, bajo menu.categories.

Un jugador aparece una vez por tabla de ejercicio, porque los récords son una fila por jugador y ejercicio. Un cero nunca ocupa un puesto: una reacción sin fijar, un combo en un ejercicio que no tiene, una precisión de rondas por debajo del mínimo de disparos. Por eso la tabla reaction de un ejercicio de flick y la tabla combo de todo lo que no sea una pelea se quedan vacías.

El rating es la justa

Solo rating compara a dos jugadores que configuraron sus objetivos de forma distinta: lleva la dificultad del tamaño y la distancia con que jugó cada uno. Las demás categorías son mejores resultados en bruto. Cada fila muestra el tamaño y la distancia con que se consiguió su rating, sea cual sea la categoría por la que se ordena la tabla.

La tabla global

Todos los jugadores por la suma de su mejor rating en cada ejercicio, leída de aim_profiles. Se ordena por rating o por accuracy (la precisión de por vida) y nada más: la fila de categorías de esa tabla ofrece esas dos, y pedir otra muestra la de rating.

Abrir una tabla

/aim leaderboard, o /aim top, abre el selector de tablas: primero la global y después cada ejercicio en el orden de la configuración. /aim leaderboard <ejercicio> abre la tabla de ese ejercicio ordenada por rating, y /aim leaderboard <ejercicio> <categoría> por esa categoría; overall sirve como ejercicio. Un ejercicio desconocido abre el selector en lugar de una tabla vacía, y una categoría desconocida vuelve a rating. Dentro, los botones de categoría reordenan la tabla abierta sin cerrarla, y las tres primeras filas llevan medalla.

Las mismas tablas se leen desde PlaceholderAPI, como %exyliaaimtrainer_top_<drill>_<category>_<n>% y su _value. Ver Placeholders.

La caché

plugins/ExyliaAimTrainer/config.yml
leaderboard:
  entries: 10
  cache-seconds: 300
  accuracy-min-shots: 20
ClavePor defectoQué hace
entries10Filas por tabla.
cache-seconds300Cuánto se conserva una tabla antes de volver a preguntar a la base de datos. Cualquier valor menor que 5 cuenta como 5. Se lee al arrancar el plugin: una recarga no lo cambia.
accuracy-min-shots20Disparos que necesita una ronda para que su precisión pueda ser un récord. Diez de diez no es un récord.

Cada tabla guarda dos copias: una fresca, que caduca a los cache-seconds, y la última que se leyó jamás. Un menú espera a una lectura fresca; un placeholder muestra la última copia mientras la lectura fresca se hace en segundo plano, así que un holograma nunca vuelve a Loading… una vez que ha mostrado una tabla.

Las copias frescas se descartan cuando una ronda supera un rating y cuando se reinicia a un jugador. Una ronda que solo mejora otro récord — precisión, impactos, una racha — no las descarta: esa tabla se pone al día dentro de cache-seconds.

Historial

Dos listas, cada una accesible desde la otra: Sesiones (/aim sessions) e Historial de duelos (/aim history). Las dos muestran primero las filas más recientes.

Una fila de sesión es una ronda en solitario guardada: el ejercicio y su tipo, la puntuación, el rating y la dificultad, impactos, fallos, precisión, centrado, mejor racha y combo, el flick y la reacción medios, el tiempo sobre el objetivo, la duración, el ping medio y la fecha. Una ronda que fijó un récord personal se dibuja con una estrella.

Un duelo escribe dos filas en aim_matches, una por participante, para que "mis duelos" sea una consulta de una sola columna. Cada una lleva el rival, si el jugador ganó, el ejercicio, el formato, las rondas a favor y en contra, los puntos a favor y en contra, los impactos, la precisión, la duración y cuándo terminó. Solo un duelo con ganador las escribe; un duelo cancelado no escribe nada.

plugins/ExyliaAimTrainer/config.yml
history:
  entries: 20
  retention-days: 30
  prune-interval-minutes: 60
ClavePor defectoQué hace
entries20Filas mostradas en cada una de las dos listas.
retention-days30Se borran las filas de sesiones y de duelos más antiguas que esto. 0 lo conserva todo.
prune-interval-minutes60Cada cuánto se ejecuta la poda. Se lee al arrancar el plugin. La primera pasada de duelos es un minuto después del arranque, la de sesiones noventa segundos después.

Una pasada mira las 500 filas más antiguas de su tabla y borra las que pasan del límite, así que un atraso se vacía en varias pasadas en lugar de en una transacción larga.

Reiniciar a un jugador

Desde /aimtraineradmin → Players, tras una confirmación. Un reinicio:

  • deja el perfil a cero — números de por vida, récord de duelos y rating global — conservando los ajustes del jugador y sus últimas elecciones;
  • borra todos los récords del jugador, así que sale de todas las tablas de ejercicio;
  • borra su historial de sesiones;
  • descarta la caché de las tablas.

Sus filas de aim_matches no se borran: el historial de duelos sigue listando los duelos pasados hasta que la retención los elimine, aunque la confirmación diga "Every record, session and duel".

¿Falta algo en esta página? Dínoslo en Discord