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

A Penyimpan Data Global 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 diurutkan tidak mendukung versi dan metadata, jadi DataStoreKeyInfo selalu nil untuk kunci di dalam OrderedDataStore .Jika Anda membutuhkan dukungan versi dan metadata, gunakan DataStore .

Rangkuman

Metode

Properti

Metode

GetAsync

Hasil

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

Kunci disimpan lokal selama 4 detik setelah bacaan pertama.Panggilan GlobalDataStore:GetAsync() dalam 4 detik ini mengembalikan nilai dari cache.Modifikasi terhadap kunci oleh GlobalDataStore:SetAsync() atau GlobalDataStore:UpdateAsync() berlaku untuk cache segera dan memulai ulang penghitung waktu 4 detik.

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

Parameter

key: string

Nama kunci untuk nilai yang diminta.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".

Nilai Default: ""
Nilai Default: "nil"

Memberikan nilai

Nilai entri di penyimpanan data 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 bilangan bulat).

Nilai di GlobalDataStores adalah diberi versi seperti yang dinyatakan dalam penggunaan versi . OrderedDataStores tidak mendukung versi, jadi memanggil metode ini pada kunci penyimpanan data tertata tidak akan menghapus 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 diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".

Nilai Default: ""
delta: number

Jumlah untuk meningkatkan nilai saat ini oleh.

Nilai Default: 1
userIds: Array

(Opsi) Tabel dari UserIds untuk berhubungan dengan unit

Nilai Default: "{}"

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

Nilai Default: "nil"

Memberikan nilai

Variant

Nilai entri yang diperbarui di penyimpanan data dengan kunci yang diberikan.

RemoveAsync

Hasil

Fungsi ini menandai kunci yang ditentukan sebagai dihapus dengan membuat versi "batu makam" baru dari unit.Sebelum ini, ia mengembalikan versi terbaru sebelum menghapus panggilan.

Setelah kunci dihapus melalui fungsi ini, GlobalDataStore:GetAsync() panggilan untuk kunci akan kembali nil .Versi lama kunci tetap dapat diakses melalui DataStore:ListVersionsAsync() dan DataStore:GetVersionAsync(), asalkan mereka belum kedaluwarsa.

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

Objek yang dihapus akan dihapus secara permanen setelah 30 hari.

Jika nilai sebelumnya sudah dihapus melalui GlobalDataStore:RemoveAsync() atau DataStore:RemoveVersionAsync() , fungsi akan kembali nil , nil untuk nilai dan DataStoreKeyInfo masing-masing.

Parameter

key: string

Nama kunci untuk dihapus.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".

Nilai Default: ""

Memberikan nilai

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

SetAsync

Variant
Hasil

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

Nilai di GlobalDataStores adalah diberi versi seperti yang dinyatakan dalam penggunaan versi . OrderedDataStores tidak mendukung versi, jadi memanggil metode ini pada kunci penyimpanan data tertata tidak akan menghapus 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 penyimpanan data harus valid UTF-8 .Di UTF-8, nilai lebih dari 127 digunakan secara eksklusif untuk mengodekan titik kode multi-byte, jadi satu byte lebih dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:SetAsync() gagal.

Tetapkan vs. Update

GlobalDataStore:SetAsync() adalah yang terbaik untuk pembaruan cepat dari unittertentu, dan hanya dihitung melawan batas penulisan.Namun, ini dapat menyebabkan ketidakkonsistenan data jika dua server mencoba mengatur kunci yang sama pada saat yang sama. GlobalDataStore:UpdateAsync() lebih aman untuk menangani upaya multi-server karena membaca nilai kunci saat ini (dari server mana pun yang terakhir diperbarui) sebelum melakukan perubahan apa pun.Namun, sedikit lebih lambat karena membaca sebelum menulis, dan juga menghitung melawan batas baca dan tulis.

Parameter

key: string

Nama kunci untuk nilai yang harus ditetapkan.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".

Nilai Default: ""
value: Variant

Nilai yang akan ditetapkan kunci penyimpanan data.

Nilai Default: ""
userIds: Array

Tabel dari UserIds , sangat direkomendasikan untuk membantu dengan pelacakan/penghapusan GDPR.

Nilai Default: "{}"

(Opsi) DataStoreSetOptions instansi yang memungkinkan spesifikasi metadata pada kunci

Nilai Default: "nil"

Memberikan nilai

Variant

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

UpdateAsync

Hasil

Fungsi ini mengambil nilai dan metadata kunci dari penyimpanan data dan memperbaruinya dengan nilai baru yang ditentukan oleh fungsi panggilan yang ditentukan melalui parameter kedua.Jika panggil balasan mengembalikan nil, operasi penulisan dibatalkan dan nilainya tetap tidak berubah.

Nilai di GlobalDataStores adalah diberi versi seperti yang dinyatakan dalam penggunaan versi . OrderedDataStores tidak mendukung versi, jadi memanggil metode ini pada kunci penyimpanan data tertata tidak akan menghapus nilai saat ini dan membuat versi sebelumnya tidak dapat diakses.

Dalam kasus di mana server game lain memperbarui kunci dalam waktu singkat antara mengambil nilai unitsaat ini dan menetapkan nilai unit, GlobalDataStore:UpdateAsync() akan memanggil fungsi lagi, menyingkirkan hasil panggilan sebelumnya.Fungsi akan dipanggil sebanyak yang diperlukan sampai data disimpan atau sampai fungsi panggil balasan kembali nil .Ini dapat digunakan untuk memastikan tidak ada data yang ditulis ulang.

Setiap string yang disimpan di penyimpanan data harus valid UTF-8 .Di UTF-8, nilai lebih dari 127 digunakan secara eksklusif untuk mengodekan titik kode multi-byte, jadi satu byte lebih dari 127 tidak akan valid UTF-8 dan upaya GlobalDataStore:UpdateAsync() gagal.

Tetapkan vs. Update

GlobalDataStore:SetAsync() adalah yang terbaik untuk pembaruan cepat dari unittertentu, dan hanya dihitung melawan batas penulisan.Namun, ini dapat menyebabkan ketidakkonsistenan data jika dua server mencoba mengatur kunci yang sama pada saat yang sama. GlobalDataStore:UpdateAsync() lebih aman untuk menangani upaya multi-server karena membaca nilai kunci saat ini (dari server mana pun yang terakhir diperbarui) sebelum melakukan perubahan apa pun.Namun, sedikit lebih lambat karena membaca sebelum menulis, dan juga menghitung melawan batas baca dan tulis.

Fungsi Panggil Kembali

Fungsi panggil balasan 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 panggil balasan mengembalikan hingga tiga nilai:

  • Nilai baru untuk ditetapkan untuk kunci.
  • Sebuah array dari UserIds untuk berhubungan dengan unit. DataStoreKeyInfo:GetUserIds() harus dikembalikan kecuali ID yang ada diubah; jika tidak, semua ID yang ada akan dihapus.
  • Meja Luau yang berisi metadata untuk diasosiasikan dengan unit. DataStoreKeyInfo:GetMetadata() harus dikembalikan kecuali metadata yang ada diubah; jika tidak, semua metadata yang ada akan dihapus.

Jika panggil balasan mengembalikan nil sebagai gantinya, server saat ini akan berhenti mencoba untuk memperbarui unit.

Fungsi panggil balasan tidak bisa menghasilkan, jadi jangan tidak termasuk panggilan seperti task.wait().

Parameter

key: string

Nama kunci untuk nilai yang harus diperbarui.Jika DataStoreOptions.AllScopes diatur ke benar saat mengakses penyimpanan data melalui DataStoreService:GetDataStore(), nama kunci ini harus diikuti dengan cakupan asli seperti dalam "scope/key".

Nilai Default: ""
transformFunction: function

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

Nilai Default: ""

Memberikan nilai

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

Acara