GlobalDataStore

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Tidak Direplikasi

Sebuah GlobalDataStore mengekspos fungsi untuk menyimpan dan memuat data untuk DataStoreService .

Lihat Toko Data untuk panduan lengkap tentang struktur data, manajemen, penanganan kesalahan, dll.

Toko data yang dipesan tidak mendukung versi dan metadata, jadi DataStoreKeyInfo selalu nil untuk kunci di dalam Class.OrderedDataStore . Jika Anda memerlukan dukungan versi dan metadata, gunakan OrderedDataStore.

Rangkuman

Metode

Properti

Metode

GetAsync

Hasil

Fungsi ini mengembalikan nilai terbaru dari kunci yang disediakan dan instansi DataStoreKeyInfo. Jika kunci tidak ada atau jika versi terbaru telah ditandai sebagai dihapus, kembalikan kedua nilai akan menjadi nil.

Kunci di-Cache lokal untuk 4 detik setelah dilihatpertama. Panggilan GlobalDataStore:GetAsync() dalam 4 detik ini menghasilkan nilai dari cache. Modifikasi ke kunci oleh GlobalDataStore:SetAsync() atau GlobalDataStore:UpdateAsync() menerapkan untuk cache segera dan memulai ulang timer 4 detik

Untuk mendapatkan versi tertentu, seperti versi sebelumnya, gunakan DataStore:GetVersionAsync() .

Parameter

key: string

Nama kunci untuk nilai yang diminta. Jika DataStoreOptions.AllScopes ditetapkan sebagai benar saat mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan scope asli seperti dalam " scope/key".

Nilai Default: "nil"

Memberikan nilai

Nilai entri di data store dengan kunci yang diberikan dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal dan waktu versi dibuat, dan fungsi untuk mengambil UserIds dan metadata.

IncrementAsync

Variant
Hasil

Fungsi ini meningkatkan nilai kunci dengan jumlah yang disediakan (keduanya harus menjadi angka).

OrderedDataStore tidak mendukung versi, jadi memanggil metode ini di sebuah OrderedDataStore kunci akan menulis nilai saat ini dengan nilai yang ditingkatkan dan membuat versi sebelumnya tidak dapat diakses.

Parameter

key: string

Nama kunci untuk nilai yang harus diperbarui. Jika DataStoreOptions.AllScopes di set ke benar ketika mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan skala asli seperti yang ada di " scope/key".

delta: number

Jumlah untuk meningkatkan nilai saat ini dengan.

Nilai Default: 1
userIds: Array

(Opsional) Tabel dari UserIds untuk diasosiasi dengan unit.

Nilai Default: "{}"

(Opsional) DataStoreIncrementOptions instansi yang menggabungkan beberapa parameter tambahan sebagai metrik khusus dan memungkinkan ekstensibilitas masa depan.

Nilai Default: "nil"

Memberikan nilai

Variant

Nilai yang diperbarui dari entri di toko data dengan kunci yang diberikan.

RemoveAsync

Hasil

Fungsi ini menandai kunci yang ditentukan sebagai dihapus dengan membuat versi "tombstone" baru dari unit. Sebelum ini, itu mengembalikan versi terbaru sebelum panggilan penghapusan.

Setelah kunci dihapus melalui fungsi ini, GlobalDataStore:GetAsync() panggilan untuk kunci akan mengembalikan nil . Versi lebih tua dari kunci tetap dapat diakses melalui DataStore:ListVersionsAsync() dan 1> Class.DataStore:GetVersionAsync()1>, asalkan mereka belum kadaluars

OrderedDataStore tidak mendukung versi, jadi memanggil RemoveAsync() di kunci OrderedDataStore akan menghapusnya secara permanen.

Objek yang dihapus akan dihapus secara permanen setelah 30 hari.

Jika nilai sebelumnya telah dihapus melalui GlobalDataStore:RemoveAsync() atau DataStore:RemoveVersionAsync() , fungsi akan mengembalikan nil , 1> nil1> untuk nilai dan 4> Class.DataStoreKeyInfo4> untuk masing-masing.

Parameter

key: string

Nama kunci untuk dihapus. Jika DataStoreOptions.AllScopes ditetapkan sebagai benar saat mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan skala asli seperti yang tercantum dalam " scope / key".


Memberikan nilai

Nilai penyimpanan data sebelum dihapus dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal dan waktu saat versi dibuat, dan fungsi untuk mengambil kembali UserIds dan metadata.

SetAsync

Variant
Hasil

Fungsi ini menetapkan nilai terbaru, UserIds , dan metadata untuk unityang diberikan.

Nilai dalam data store berversi, artinya GlobalDataStore:SetAsync() akan menciptakan versi baru setiap kali di panggil. Versi prasejah mengakses melalui DataStore:ListVersionsAsync() / DataStore:GetVersionAsync() untuk hingga 30 hari di mana mereka dihapus secara permanen.

OrderedDataStore tidak mendukung versi, jadi memanggil metode ini di sebuah OrderedDataStore kunci akan menulis nilai saat ini dan membuat versi sebelumnya tidak dapat diakses.

Definisi metadata harus selalu diperbarui dengan nilai, bahkan jika tidak ada perubahan pada nilai saat ini; jika tidak, nilai saat ini akan hilang.

Setiap string yang disimpan di data store harus valid UTF-8 . In UTF-8, nilai lebih besar dari 127 hanya digunakan untuk mengkode multi-byte codepoints, jadi satu bit lebih besar dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:SetAsync() gagal.

Tetapkan vs. Perbarui

GlobalDataStore:SetAsync() adalah solusi terbaik untuk pembaruan cepat dari unitspesifik, dan hanya menghitung terhadap batas tulis. Namun, itu dapat menyebabkan ketidakkompatan data jika dua server mencoba untuk menetapkan kunci yang s

Parameter

key: string

Nama kunci untuk nilai yang harus atur. Jika DataStoreOptions.AllScopes di set ke benar ketika mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus disertakan dengan scope asli seperti yang ada di "scope/key".

value: Variant

Nilai yang akan diatur oleh kunci penyimpanan data.

userIds: Array

Tabel UserIds , sangat direkomendasikan untuk membantu dengan melacak / menghapus GDPR.

Nilai Default: "{}"

(Opsional) DataStoreSetOptions instansi yang memungkinkan spesifikasi metadata pada unit.

Nilai Default: "nil"

Memberikan nilai

Variant

Identifikasi versi baru yang baru saja dibuat. Ini dapat digunakan untuk mengambil informasi kunci menggunakan GetVersionAsync() atau untuk menghapusnya menggunakan RemoveVersionAsync() .

UpdateAsync

Hasil

Fungsi ini mengambil nilai dan metadata dari kunci dari data store dan menyimpannya dengan nilai baru yang ditentukan oleh fungsi panggilan yang ditentukan melalui parameter kedua. Jika fungsi panggilan menghasilkan nil, operasi menulis dihentikan dan nilai tetap tidak berubah.

Jika pembaruan berhasil, versi baru dari nilai akan dibuat dan versi sebelumnya akan tetap tersedia melalui DataStore:ListVersionsAsync() dan DataStore:GetVersionAsync() .

OrderedDataStore tidak mendukung versi, jadi memanggil fungsi ini di sebuah OrderedDataStore kunci akan menulis nilai saat ini dan membuat versi sebelumnya tidak dapat diakses.

Dalam kasus di mana server game lainnya diperbarui kunci dalam waktu singkat antara mengambil nilai kunci dan menetapkan nilai kunci, GlobalDataStore:UpdateAsync() akan memanggil fungsi lagi, menyisakan hasil panggilan sebelumnya. Fungsi akan dianggil sebanyak mungkin sampai

Setiap string yang disimpan di penyimpanan data harus valid UTF-8 . Di UTF-8, nilai lebih besar dari 127 hanya digunakan untuk men-Encoding multi-byte kode-poin, jadi satu bajak laut lebih besar dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:UpdateAsync() akan gagal.

Tetapkan vs. Perbarui

GlobalDataStore:SetAsync() adalah solusi terbaik untuk pembaruan cepat dari unitspesifik, dan hanya menghitung terhadap batas tulis. Namun, itu dapat menyebabkan ketidakkompatan data jika dua server mencoba untuk menetapkan kunci yang s

Fungsi Panggilan

Fungsi panggilan menerima dua argumen:

  • Nilai kunci saat ini sebelum update.
  • DataStoreKeyInfo instansi yang berisi informasi versi terbaru (argumen ini dapat diabaikan jika metadata tidak digunakan).

Sebagai gantinya, fungsi panggilan kembali mengembalikan hingga tiga nilai:

  • Nilai baru untuk diatur untuk kunci.
  • Sebuah matriks UserIds untuk diasosiasi dengan unit. DataStoreKeyInfo:GetUserIds() harus dikembalikan kecuali jika ID yang ada tidak diubah; jika tidak, semua ID yang ada akan dihapus.
  • Tabel Lua yang berisi metadata untuk diasosiasikan dengan unit. DataStoreKeyInfo:GetMetadata() harus dikembalikan kecuali jika metadata yang ada diubah; jika demikian, semua metadata yang ada akan dihapus.

Jika panggilan kembali mengembalikan nil alih-alih, server saat ini akan berhenti mencoba untuk menyetujui unit.

Fungsi panggilan tidak dapat menghasilkan, jadi jangan tidak mencakup panggilan seperti Library.task.wait() .

Parameter

key: string

Nama kunci untuk nilai yang harus diperbarui. Jika DataStoreOptions.AllScopes di set ke benar ketika mengakses data store melalui DataStoreService:GetDataStore(), nama kunci ini harus dipanggil dengan skala asli seperti yang ada di " scope/key".

transformFunction: function

Transformasi fungsi yang mengambil nilai saat ini dan DataStoreKeyInfo sebagai parameter dan mengembalikan nilai baru bersama dengan opsi UserIds dan metadata.


Memberikan nilai

Nilai entri di toko data dengan kunci yang diberikan dan instansi DataStoreKeyInfo yang mencakup nomor versi, tanggal, dan waktu versi dibuat, dan fungsi untuk mengambil kembali UserIds dan metadata.

Acara