Nuevas tablas de clasificación: internas

Materiales relacionados

Introducción a los módulos de almacenamiento de datos históricos

Módulo de almacenamiento de datos

Proporciona información detallada en los materiales anteriores; a continuación se ofrece una breve descripción general del módulo de almacenamiento de datos.El almacenamiento de datos es un módulo opcional. Cuando se habilita, permite a los desarrolladores de mapas utilizar tablas de datos basadas en servidor para el almacenamiento de datos, lo que sirve principalmente para la sincronización de información entre mapas y entre partidas, tablas de clasificación y funcionalidades similares. Este artículo se centra específicamente en la aplicación de las nuevas tablas de almacenamiento de datos para la funcionalidad de las tablas de clasificación.

Punto de acceso

Cargue el módulo de almacenamiento de datos desde la lista de módulos para comenzar la configuración de los cuatro tipos de columnas de la tabla de datos:

image-20250806162055343

Introducción a la nueva tabla

Al igual que con todas las tablas de datos, cada tabla requiere que se especifique una columna «Clave», que sirve como clave principal de la tabla. Los datos de la columna Clave deben ser únicos y actúan como columna de índice para toda la tabla. Al consultar la Clave, se puede identificar una fila de datos específica dentro de la tabla designada. Al editar varias veces filas de datos con la misma Clave a través del editor, las ediciones posteriores siempre sobrescribirán los datos anteriores.

Hoja de datos de clasificación

Una hoja de datos de clasificación es una tabla especializada con varias listas. Puede personalizar varias columnas para almacenar información complementaria, como puntos, duración de la supervivencia, tiempo total de juego, etc. Sin embargo, una hoja de datos de clasificación debe contener una columna de datos (la columna Valor) para la clasificación ascendente o descendente.

image-20250806170632723

Al seleccionar UID como clave, la columna Clave se convertirá automáticamente en cartas de jugador:

image-20250901154851187

Ejemplo de hoja de datos

Hoja de datos de clasificación1

Rango Clave Valor Columna personalizada 1 Columna personalizada 2 Columna personalizada…
1 UUID del jugador 1 100 lo que desees almacenar
2 UUID del jugador 2 90

Tabla de datos de varias columnas

Las tablas de varias columnas admiten múltiples columnas de datos (a diferencia de las tablas de datos de una sola columna anteriores). Puede almacenar datos diversos bajo una sola clave. El script del elemento proporciona API para editar tablas de clasificación y tablas de varias columnas asociadas. Cuando las claves coinciden (por ejemplo, ambas son UUID de jugador), elementos específicos pueden editar simultáneamente tanto las tablas de clasificación como las tablas de datos de varias columnas.

image-20250806170813281

Ilustración de la tabla

Tabla de datos de varias columnas1

Clave Valor Columna personalizada 1 Columna personalizada 2 Columna personalizada…
UUID del jugador 1 100 lo que desees almacenar
UUID del jugador 2 90

Funcionalidad de la tabla de clasificación

Habilitar la función

Para activar la funcionalidad de la tabla de clasificación, debes habilitar el módulo Almacenamiento de datos dentro de tu proyecto y establecer al menos una tabla de datos de la tabla de clasificación.

Una vez preparado, edita el mapa que deseas publicar en la interfaz de publicación de mapas del Creator Centre para acceder a la configuración relacionada con la tabla de clasificación:

image-20250806164442617

Al habilitar esta función, aparecerá un botón «Tabla de clasificación» en la página de detalles de tu mapa, lo que permitirá a los jugadores ver la información de la tabla de clasificación que hayas editado:

image-20250806171313422 image-20250806164728942

Editor de clasificación

En la interfaz del editor de clasificación para mapas publicados, actualmente solo se puede seleccionar una tabla de datos para mostrar la información de clasificación. (Aunque se pueden utilizar varias tablas para el almacenamiento de datos dentro del proyecto).
image-20250806164912096

Puedes editar otros aspectos de la tabla de clasificación: incluyendo si se muestra fuera del juego, qué columnas se utilizan para el diseño de la tabla de clasificación y su orden.

Al seleccionar varios idiomas, puedes editar manualmente la información multilingüe del título de la tabla de clasificación:

image-20250806173701944

Los idiomas que no se rellenen utilizarán los nombres predeterminados de las columnas de la tabla.

Después de editar, se mostrará una vista previa de la tabla de clasificación actual en la página web de información del mapa. El texto multilingüe no aparecerá en la vista previa:

image-20250806165547462

Metadatos

Utilice el elemento gráfico en los momentos oportunos, como cuando un jugador anota puntos o al finalizar cada partido, para almacenar datos en la base de datos de la tabla de clasificación.

image-20250806165732042

Tenga en cuenta que el parámetro SheetName solo leerá desde la hoja de datos de la tabla de clasificación creada si el elemento gráfico está asociado específicamente a la hoja de datos de la tabla de clasificación.

Para facilitar la edición de los dos formatos de lista múltiple introducidos en este tutorial, se ha añadido un tipo de lista especializada llamada Tuple. El tipo Tuple reconoce automáticamente los valores de las hojas de datos especificadas o de las hojas de datos de la tabla de clasificación, formando una lista especializada en la que cada elemento se ajusta al tipo de datos designado.

image-20250806174722968

La primitiva tupla lee automáticamente todas las tablas y adopta los tipos de datos de las columnas de la tabla como tipos de datos para los elementos de la lista:

image-20250806175459462

Para clasificar tablas de datos, una vez creada una columna de datos personalizada, el valor contendrá realmente N columnas de datos, formando así una tupla:

image-20250806175601013

En consecuencia, en la práctica, las tuplas pueden anidarse:

image-20250806180055942

Las primitivas de tupla no actualizan automáticamente los nombres de las columnas de la tabla ni otra información. Por lo tanto, cualquier cambio requiere actualizar manualmente la primitiva de tupla.

Código

Ejemplo de código:

  1. Escribir
WriteDBLeaderboardAssociationValue(``«rank»``, ``“test_uid_1”``, {``60``, ``«1:00»``}, ``«»``, out var c, out var d)
go
  1. Leer
ReadDBLeaderboardAssociationValue(``«rank»``, ``“test_uid_1”``, out var data, ``«»``, out var a, out var b)``var data_normal List<object> = data[``2``] as List<object>``LogWarning(data_normal[``1``])
go

Lista de API relacionadas

  1. SetTuple
  2. GetTuple
  3. WriteDBLeaderboardAssociationValue
  4. RemoveFromLeaderboardDataStoreByKey
  5. ReadDBLeaderboardAssociationValue
  6. WriteToLeaderboardDataStore
  7. RemoveFromLeaderboardDataStoreByKey
  8. ReadFromLeaderboardDataStore

En concreto, para la función: ReadDBLeaderboardAssociationValue, su valor de retorno es una tupla:

Resultado: El tipo es {rankname_value}Tuple

  • {rank, key, value}
  • rank: int
  • key: string
  • value: tuple
  • {value, GameCompletionTime}

Para la función: WriteDBLeaderboardAssociationValue, los parámetros Key y Value:

  • Key: Se recomienda convertir el UID del jugador en una cadena como clave, para que el indicativo del jugador se pueda mostrar en Craftland
  • Value: El tipo es {rankname} Tuple. Después de seleccionar SheetName, haga doble clic en Value para añadir rápidamente el bloque correspondiente
    Para obtener más detalles y documentación sobre los parámetros de la API, consulte: Documentación oficial

Depuración local

Durante la edición del mapa, no se puede acceder a los datos en tiempo real de los jugadores. Sin embargo, Craftland Studio PC proporciona un método para ver los datos de depuración almacenados a través de archivos JSON locales.

image-20250806170248163

Después de almacenar los datos durante la depuración, al hacer clic en la opción que se muestra en la imagen se navegará a la carpeta JSON local. La información de la tabla de datos se almacena en formato JSON, lo que permite a los desarrolladores verificar la corrección de la lógica.

image-20250806170420358