Setiap mahu menyimpan data, dan memuatkannya semula setiap kali pemain memasuki permainan lagi? Sejak Data Persistence menjadi sia-sia, ROBLOX memperkenalkan kedai data yang jauh lebih berfungsi. Panduan cara berikut akan membolehkan anda bekerja dengan kedai data untuk ROBLOX.
Langkah-langkah
Kaedah 1 dari 3: Menetapkan Penyimpanan Data
Langkah 1. Konfigurasikan API
Ini tidak melibatkan sedikit skrip, tetapi untuk mengaktifkan semua API penyimpanan data, anda mesti mengaktifkan akses API terlebih dahulu. Untuk melakukan ini, pergi ke tab Develop, dan klik pada "Games". Ini akan mengarahkan anda ke semua tempat permainan semasa yang anda miliki. Cari permainan anda, dan klik pada gear. Terdapat menu dropdown, dan tekan "Configure". Tandai kotak yang diaktifkan "Aktifkan Akses Studio ke Perkhidmatan API", dan simpan. Anda kini harus mempunyai akses ke API yang lengkap.
Langkah 2. Dapatkan semula stor data
Gunakan API Penyimpanan Data untuk meminta penyimpanan data, karena kita perlu merujuknya. Untuk memulakan, buka skrip di ROBLOX, dan namakan pemboleh ubah yang ingin kami gunakan untuk memanggil rujukan.
datastore tempatan = permainan: GetService ("DataStoreService"): GetDataStore ("name")
Langkah 3. Gunakan pemboleh ubah mengikut keperluan
Anda berjaya memanggil datastore dengan pemboleh ubah "datastore". Sekarang, setiap kali anda perlu mendapatkan semula datastore, anda boleh menamakannya dengan pemboleh ubahnya.
Harap maklum bahawa jika penyimpanan data belum dibuat, ia akan membuat yang baru secara automatik
Kaedah 2 dari 3: Menggunakan Kaedah Penyimpanan Data
Langkah 1. GetAsync
Gunakan GetAsync untuk mengembalikan nilai entri di penyimpanan data dengan kunci yang diberikan. Pastikan untuk memberikan setiap pemain satu set kunci yang unik, kerana menetapkan dua pemain kunci yang sama akan menimpa data dalam permainan mereka sendiri, menyebabkan kekacauan antara kedua belah pihak. Sekiranya anda ingin mengetahui cara menetapkan kunci unik, baca terus.
- Kod berikut akan menghasilkan sifar, kerana pelayan tidak dapat mencari nilai yang menghubungkan ke kunci; penting untuk menunjukkan kepada pelayan dengan tepat apa yang ingin kita keluarkan, supaya pelayan dapat mengetahui apa yang perlu dipaparkan.
datastore tempatan = permainan: GetService ("DataStoreService"): GetDataStore ("name") permainan. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: GetAsync (key) end)
Langkah 2. SetAsync
Gunakan SetAsync untuk menetapkan nilai kunci, dan mengesampingkan semua data yang ada yang disimpan untuk kunci unik.
- Sekiranya kumpulan maklumat sebelumnya penting, pertimbangkan untuk menggunakan UpdateAsync, yang akan diajar di bawah.
- Kod berikut menunjukkan cara melaksanakan kedua-duanya, kaedah ": GetAsync ()", dan ": SetAsync ()".
datastore tempatan = permainan: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: SetAsync (kunci, 90) - - menetapkan kunci ke nilai, 90 data_store tempatan = datastore: GetAsync (kunci) - dapat mengesan cetakan perubahan nilai (data_stored) - mencetak akhir output)
Langkah 3. Gunakan UpdateAsync untuk mengembalikan nilai kunci, dan kemas kini dengan nilai baru
Ini mengesahkan data, dan oleh itu mesti menunggu sehingga pelayan dapat mencari masa untuk memperbaruinya. Untuk berjaya, anda perlu melewati dua parameter; yang pertama adalah rentetan yang mengambil kunci unik yang telah anda siapkan: "'user_'.. player.userId", dan yang kedua adalah fungsi yang akan mengambil nilai lama.
datastore tempatan = permainan: GetService ("DataStoreService"): GetDataStore ("name") game. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (kunci, fungsi (lama)) - buat barang akhir) akhir)
datastore tempatan = permainan: GetService ("DataStoreService"): GetDataStore ("name") permainan. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (kunci, fungsi (lama) baru tempatan = lama atau 0 - boleh menjadi nil baru = baru + 1 - tambah 1 pada nilai lama kembali baru - mengembalikannya dengan nilai akhir yang baru) akhir)
Langkah 4. Gunakan IncrementAsync untuk menambah nilai untuk kunci, dan mengembalikan nilai kenaikan
Kaedah ini hanya berfungsi pada bilangan bulat.
Kaedah 3 dari 3: Acara Penyimpanan Data dan Mengemas kini Data
Langkah 1. Tetapkan kunci unik
Sangat penting bahawa setiap pemain mempunyai 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 menetapkan penyimpanan data, hanya memanggil fungsi untuk memuatkan pemain, dan kemudian cari ID pemain. Kodnya hendaklah seperti berikut:
datastore tempatan = permainan: GetService ("DataStoreService"): GetDataStore ("name") permainan. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId end)
Langkah 2. Kemas kini data
Sekarang kerana anda mempunyai kunci unik untuk setiap pemain, anda sudah bersedia untuk membuat kemas kini penyimpanan data dan mengambil data. Di bawah kunci anda, anda ingin menambahkan kaedah yang paling sesuai dengan keperluan anda. Dalam kes ini, kami akan menggunakan "UpdateAsync".
- Mulakan dengan fungsi untuk membantu pelayan memahami apa yang anda ingin lakukan.
datastore tempatan = permainan: GetService ("DataStoreService"): GetDataStore ("name") permainan. Players. PlayerAdded: connect (function (player) local key = "user_".. player.userId datastore: UpdateAsync (kunci, fungsi (lama)) local newValue = lama atau 0 - boleh jadi nil newValue = newValue + 50 return newValue end) end)
Langkah 3. Tahniah
Anda berjaya menyimpan dan mengemas kini data pemain.
Amaran
- Semasa pertama kali membuat penyimpanan data anda, pastikan untuk memiliki "game: GetService (" DataStoreService ")", dengan huruf besar yang betul. Ia tidak akan berjalan dengan cekap, jika disebut dengan tidak betul.
- Pastikan anda mengetahui kapan menggunakan "SetAsync" dan "UpdateAsync", kerana menggunakan yang salah dapat mengubah keadaan menjadi berantakan ketika mengambil data. Dalam kebanyakan kes, pembangun akan menggunakan "UpdateAsync".