GlobalDataStore

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
No replicado

Un GlobalDataStore exponen funciones para guardar y cargar datos para el DataStoreService .

Vea Almacenamiento de datos para obtener una guía en profundidad sobre la estructura de datos, la gestión, el manejo de errores, etc.

Los almacenes de datos ordenados no admiten versiones y metadatos, por lo que DataStoreKeyInfo siempre es nil para las llaves en un OrderedDataStore. Si necesitas Soportepara versiones y metadatos, usa un 2>Class.DataStore2>.

Resumen

Métodos

Propiedades

Métodos

GetAsync

Proporciona

Esta función devuelve el valor más reciente de la llave proporcionada y una instancia DataStoreKeyInfo. Si la llave no existe o si la versión más reciente se ha marcado como eliminada, ambos valores devolverán nil.

Las llaves se almacenan localmente durante 4 segundos después de la primera leído. Un GlobalDataStore:GetAsync() llamado dentro de estos 4 segundos devuelve un valor del cache. Las modificaciones a la llave por GlobalDataStore:SetAsync() o GlobalDataStore:UpdateAsync() aplican a la cache inmediatamente y reinician el temporizador de 4 segundos.

Para obtener una versión específica, como una versión antes de la última, usa DataStore:GetVersionAsync() .

Parámetros

key: string

El nombre de la clave para la cual se solicita el valor. Si DataStoreOptions.AllScopes estaba configurado como verdadero al acceder a la tienda de datos a través de DataStoreService:GetDataStore(), este nombre de la clave debe prependerse con el alcance original como en " scope / key".

Valor predeterminado: "nil"

Devuelve

El valor de la entrada en el almacén de datos con la llave dada y una instancia de DataStoreKeyInfo que incluye el número de versión, la fecha y el tiempo de creación de la versión y las funciones para recuperar UserIds y el metadato.

IncrementAsync

Variant
Proporciona

Esta función incrementa el valor de una llave por la cantidad proporcionada (ambos deben ser números enteros).

OrderedDataStore no soporta versiones, por lo que llamar a este método en una llave OrderedDataStore sobreescribirá el valor actual con el valor incrementado y hará que las versiones anteriores no sean accesibles.

Parámetros

key: string

Nombre de la clave para la cual se debe actualizar el valor. Si DataStoreOptions.AllScopes fue establecido como cierto al acceder a la tienda de datos a través de DataStoreService:GetDataStore(), este nombre de la clave debe ser prependido con el alcance original como en " scope/key".

delta: number

Cantidad para incrementar el valor actual.

Valor predeterminado: 1
userIds: Array

(Opcional) Una tabla de UserIds para asociar con la clave.

Valor predeterminado: "{}"

(Opcional) DataStoreIncrementOptions instancia que combina múltiples parámetros adicionales como metadatos personalizados y permite futuras extensiones.

Valor predeterminado: "nil"

Devuelve

Variant

El valor actual de la entrada en el almacén de datos con la claveproporcionada.

RemoveAsync

Proporciona

Esta función marca la llave especificada como eliminada al crear una nueva versión "tombstone" de la clave. Anteriormente, devuelve la versión más reciente antes de la llamada de eliminación.

Luego de que se elimina una clave a través de esta función, GlobalDataStore:GetAsync() llamadas para la clave que se devolverá nil . Las versiones más antiguas de la clave se mantienen accesibles a través de DataStore:ListVersionsAsync() y 1> Class.DataStore:GetVersionAsync()1>, admitiendo que no hayan expirado.

OrderedDataStore no soporta versiones, por lo que llamar a RemoveAsync() en una llave de OrderedDataStore la eliminará permanentemente.

Los objetos eliminados se eliminarán permanentemente después de 30 días.

Si los valores anteriores ya se eliminaron a través de GlobalDataStore:RemoveAsync() o DataStore:RemoveVersionAsync() , la función devolverá nil , 1> nil1> para el valor y 4> Class.DataStoreKeyInfo4> respectivamente.

Parámetros

key: string

Nombre de la clave para eliminar. Si DataStoreOptions.AllScopes fue establecido como verdadero al acceder a la tienda de datos a través de DataStoreService:GetDataStore(), este nombre de la clave debe estar prependido con el alcance original como en " scope / key".


Devuelve

El valor de la clave de almacenamiento de datos antes de eliminar y una instancia de DataStoreKeyInfo que incluye el número de versión, la fecha y el tiempo de creación de la versión y las funciones para recuperar UserIds y el metadato.

SetAsync

Variant
Proporciona

Esta función establece el valor más reciente, UserIds , y los metadatos para la clavedada.

Los valores en los almacenes de datos se pueden versionar, lo que significa que GlobalDataStore:SetAsync() creará una nueva versión cada vez que se llame. Las versiones anteriores se pueden acceder a través de DataStore:ListVersionsAsync() / DataStore:GetVersionAsync() para hasta 30 días después de los cuales se eliminan permanentemente.

OrderedDataStore no soporta versiones, por lo que llamar a este método en una llave OrderedDataStore sobreescribirá el valor actual y hará que las versiones anteriores no sean accesibles.

Las definiciones de metadatos siempre deben actualizarse con un valor, incluso si no hay cambios en el valor actual; de lo contrario, el valor actual se perderá.

Cualquier cadena que se almacene en un almacén de datos debe ser válida UTF-8 . En UTF-8, los valores mayores que 127 se usan exclusivamente para encodificar múltiples puntos de código, por lo que un solo punto de código mayor que 127 no será válido UTF-8 y el intento GlobalDataStore:SetAsync() fallará.

Establecer vs. Actualizar

GlobalDataStore:SetAsync() es mejor para una actualización rápida de una claveespecífica, y solo cuenta contra el límite de escritura. Sin embargo, puede causar desconsistencia de datos si dos servidores intentan establecer la misma llave al mismo tiempo. GlobalDataStore:UpdateAsync() es más seguro para

Parámetros

key: string

Nombre de la clave para la cual se debe establecer el valor. Si DataStoreOptions.AllScopes fue establecido como cierto al acceder a la tienda de datos a través de DataStoreService:GetDataStore(), este nombre de la clave debe prependerse con el alcance original como en " scope / key".

value: Variant

El valor que se asignará a la llave de almacenamiento de datos.

userIds: Array

Tabla de UserIds , altamente recomendable para ayudar con el seguimiento/eliminación de GDPR.

Valor predeterminado: "{}"

(Opcional) DataStoreSetOptions instancia que permite especificar metadatos en la clave.

Valor predeterminado: "nil"

Devuelve

Variant

El identificador de versión de la versión recién creada. Se puede usar para recuperar información de la llave usando GetVersionAsync() o para eliminarlo usando RemoveVersionAsync() .

UpdateAsync

Proporciona

Esta función recupera el valor y los metadatos de una llave del almacén de datos y los actualiza con un nuevo valor determinado por la función de llamada especificada a través del segundo parámetro. Si la función de llamada devuelve nil, la operación de escritura se cancela y el valor se mantiene sin cambios.

Si la actualización tiene éxito, se creará una nueva versión del valor y las versiones anteriores se mantendrán accesibles a través de DataStore:ListVersionsAsync() y DataStore:GetVersionAsync() .

OrderedDataStore no soporta versiones, por lo que llamar a esta función en una llave OrderedDataStore sobreescribirá el valor actual y hará que las versiones anteriores no sean accesibles.

En casos en que otro servidor de juego actualizó la clave en el corto plazo entre la recuperación del valor de la clave y la configuración del valor de la clave, GlobalDataStore:UpdateAsync() llamará la función de nuevo, descartando el resultado de la llamada anterior. La función se llamará tantas veces como sea necesario hasta que se guarde el dato o</

Cualquier cadena que se almacene en un almacén de datos debe ser válida UTF-8 . En UTF-8, los valores mayores que 127 se usan exclusivamente para encodificar múltiples puntos de código, por lo que un solo punto de código mayor que 127 no será válido UTF-8 y el intento GlobalDataStore:UpdateAsync() fallará.

Establecer vs. Actualizar

GlobalDataStore:SetAsync() es mejor para una actualización rápida de una claveespecífica, y solo cuenta contra el límite de escritura. Sin embargo, puede causar desconsistencia de datos si dos servidores intentan establecer la misma llave al mismo tiempo. GlobalDataStore:UpdateAsync() es más seguro para

Función de llamada

La función de llamada acepta dos argumentos:

  • Valor actual de la llave antes de la actualización.
  • DataStoreKeyInfo instancia que contiene la información de versión más reciente (se puede ignorar si no se está utilizando el metadato).

A su vez, la función de llamada de devolución devuelve hasta tres valores:

  • El nuevo valor para establecer para la clave.
  • Un array de UserIds para asociar con la clave. DataStoreKeyInfo:GetUserIds() debería devolverse a menos que se estén cambiando los ID existentes; de lo contrario, todos los ID existentes serán eliminados.
  • Una tabla Lua que contiene metadatos para asociar con la clave. DataStoreKeyInfo:GetMetadata() debe devolverse a menos que se estén cambiando los metadatos existentes; de lo contrario, todos los metadatos existentes serán eliminados.

Si el retorno del llamado devuelve nil en su lugar, el servidor actual dejará de intentar actualizar la clave.

La función de llamada no puede rendir, no incluya llamadas como task.wait() .

Parámetros

key: string

Nombre de la clave para la cual se debe actualizar el valor. Si DataStoreOptions.AllScopes fue establecido como cierto al acceder a la tienda de datos a través de DataStoreService:GetDataStore(), este nombre de la clave debe ser prependido con el alcance original como en " scope/key".

transformFunction: function

Transformar función que toma el valor actual y DataStoreKeyInfo como parámetros y devuelve el nuevo valor junto con los opcionales UserIds y metadatos.


Devuelve

El valor actualizado de la entrada en el almacén de datos con la llave dada y una instancia de DataStoreKeyInfo que incluye el número de versión, la fecha y el tiempo de creación de la versión y las funciones para recuperar UserIds y el metadato.

Eventos