3 Cara Bekerja dengan Penyimpanan Data di Roblox

Daftar Isi:

3 Cara Bekerja dengan Penyimpanan Data di Roblox
3 Cara Bekerja dengan Penyimpanan Data di Roblox
Anonim

Setiap ingin menyimpan data, dan memuatnya lagi setiap kali pemain memasuki permainan lagi? Sejak Persistensi Data menjadi sia-sia, ROBLOX memperkenalkan penyimpanan data yang jauh lebih berfungsi. Panduan cara berikut akan memungkinkan Anda bekerja dengan penyimpanan data untuk ROBLOX.

Langkah

Metode 1 dari 3: Mengatur Penyimpanan Data

7815950 1
7815950 1

Langkah 1. Konfigurasikan API

Ini tidak melibatkan sedikit skrip, tetapi untuk mengaktifkan semua API penyimpanan data, Anda harus mengaktifkan akses API terlebih dahulu. Untuk melakukan ini, buka tab Kembangkan, dan klik "Permainan". Ini akan mengarahkan Anda ke semua tempat permainan saat ini yang Anda miliki. Temukan gim Anda, dan klik roda gigi. Di sana akan muncul menu tarik-turun, dan cukup tekan "Konfigurasi". Centang kotak yang diaktifkan "Aktifkan Akses Studio ke Layanan API", dan simpan. Anda sekarang harus memiliki akses ke API lengkap.

7815950 2
7815950 2

Langkah 2. Ambil penyimpanan data

Gunakan Data Store API untuk memanggil penyimpanan data, karena kita perlu merujuknya. Untuk memulai, buka skrip di ROBLOX, dan beri nama variabel yang ingin kita gunakan untuk memanggil referensi.

    penyimpanan data lokal = permainan:GetService("DataStoreService"):GetDataStore("nama")

7815950 3
7815950 3

Langkah 3. Gunakan variabel sesuai kebutuhan

Anda telah berhasil memanggil datastore dengan variabel "datastore". Sekarang, kapan pun Anda perlu mengambil datastore, Anda cukup menamainya dengan variabelnya.

Harap diperhatikan bahwa jika penyimpanan data belum dibuat, penyimpanan data akan otomatis dibuat baru

Metode 2 dari 3: Menggunakan Metode Penyimpanan Data

7815950 4
7815950 4

Langkah 1. GetAsync

Gunakan GetAsync untuk mengembalikan nilai entri di penyimpanan data dengan kunci yang diberikan. Pastikan untuk memberi setiap pemain satu set kunci yang unik, karena menyetel dua pemain dengan kunci yang sama akan menimpa data dalam game mereka sendiri, menyebabkan kekacauan di antara kedua pihak. Jika Anda ingin tahu cara menyetel kunci unik, baca terus.

  • Kode berikut akan menampilkan nil, karena server tidak dapat menemukan nilai apa pun yang menautkan ke kunci; penting untuk menunjukkan server dengan tepat apa yang kita coba output, sehingga server akan tahu apa yang perlu ditampilkan.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:GetAsync(key) end)

7815950 5
7815950 5

Langkah 2. AturAsync

Gunakan SetAsync untuk menyetel nilai kunci, dan menimpa semua data yang ada yang disimpan untuk kunci unik.

  • Jika kumpulan informasi sebelumnya penting, pertimbangkan untuk menggunakan UpdateAsync, yang akan diajarkan di bawah.
  • Kode berikut menunjukkan cara mengimplementasikan keduanya, metode ":GetAsync()", dan ":SetAsync()".
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:SetAsync(key, 90) - - menetapkan kunci ke nilai, 90 lokal data_stored = datastore:GetAsync(key) -- mampu mendeteksi perubahan nilai print(data_stored) -- mencetak hasil akhir)

  • Catatan: Ini tidak akan berfungsi, kecuali Anda mengaktifkan akses API. Untuk melakukan ini, baca instruksi pertama dari panduan ini.
7815950 6
7815950 6

Langkah 3. Gunakan UpdateAsync untuk mengembalikan nilai kunci, dan memperbaruinya dengan nilai baru

Ini memvalidasi data, dan karena itu harus menunggu sampai server dapat menemukan waktu untuk memperbaruinya. Agar ini berfungsi, Anda harus melewati dua parameter; yang pertama adalah string yang mengambil kunci unik yang telah Anda siapkan: "'user_'.. player.userId", dan yang kedua adalah fungsi yang akan mengambil nilai lama.

    local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) -- lakukan hal-hal akhir) akhir)

  • Dalam hal ini, kami menyebut nilai lama "lama". Di dalam fungsi ini, kita perlu membuat variabel yang akan memperhitungkan skor terbaru kita, dan kemudian mengembalikannya sehingga dapat menampilkan skor baru kita.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) lokal baru = lama atau 0 -- bisa nihil baru = baru + 1 -- tambahkan 1 ke nilai lama kembalikan baru -- kembalikan dengan nilai baru akhir) akhir)

  • Perhatikan bahwa server akan mengembalikan nil jika kunci tidak ada atau tidak ditetapkan dengan benar.
  • Jika fungsi tidak ada, pembaruan akan dibatalkan.
7815950 7
7815950 7

Langkah 4. Gunakan IncrementAsync untuk menambah nilai kunci, dan mengembalikan nilai yang bertambah

Metode ini hanya bekerja pada bilangan bulat.

Metode 3 dari 3: Peristiwa Penyimpanan Data dan Memperbarui Data

7815950 8
7815950 8

Langkah 1. Tetapkan kunci unik

Sangat penting bahwa setiap pemain memiliki kunci yang unik bagi mereka. Mereka akan memegang kunci itu, yang akan menyimpan semua data mereka. Untuk melakukan ini, kami menggunakan ID pemain. Setelah Anda mengatur penyimpanan data, cukup panggil fungsi untuk memuat pemutar, lalu temukan ID pemutar. Kode akan terlihat sebagai berikut:

    local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId end)

  • Ini akan secara otomatis membuat kunci yang unik untuk pemain itu saja, karena setiap pemain akan memiliki satu ID unik. "pengguna_" tidak akan menjadi masalah.
7815950 9
7815950 9

Langkah 2. Perbarui data

Sekarang setelah Anda memiliki kunci unik untuk setiap pemain, Anda siap untuk membuat pembaruan penyimpanan data dan mengambil data. Di bawah kunci Anda, Anda akan ingin menambahkan metode yang paling sesuai dengan kebutuhan Anda. Dalam hal ini, kami akan menggunakan "UpdateAsync".

  • Mulailah dengan sebuah fungsi untuk membantu server memahami apa yang ingin Anda lakukan.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) local newValue = old atau 0 -- bisa jadi nihil newValue = newValue + 50 return newValue end) end)

  • Dalam fungsi ini, kami mengatur fungsi lain, lama. "lama" adalah data yang kami simpan sebelumnya. Dalam skenario ini, setiap kali seorang pemain memasuki server, server akan menemukan kuncinya, yang merupakan userId mereka, dan itu akan memperbarui data sebesar 50 poin, mengembalikan dan menampilkan nilai baru itu.
7815950 10
7815950 10

Langkah 3. Selamat

Anda telah berhasil menyimpan dan memperbarui data pemain.

Peringatan

  • Saat pertama kali membuat penyimpanan data Anda, pastikan untuk memiliki "game:GetService("DataStoreService")", dengan huruf besar yang benar. Itu tidak akan berjalan secara efisien, jika disebut salah.
  • Pastikan untuk mengetahui kapan harus menggunakan "SetAsync" dan "UpdateAsync", karena menggunakan yang salah dapat mengubah keadaan menjadi berantakan saat mengambil data. Dalam kebanyakan kasus, pengembang akan menggunakan "UpdateAsync".

Direkomendasikan: