Roblox -da ma'lumotlar do'koni bilan ishlashning 3 usuli

Mundarija:

Roblox -da ma'lumotlar do'koni bilan ishlashning 3 usuli
Roblox -da ma'lumotlar do'koni bilan ishlashning 3 usuli
Anonim

Har bir o'yinchi har safar ma'lumotni saqlashni va yana yuklashni xohlaganmi? Ma'lumotlar turg'unligi befoyda bo'lganidan beri, ROBLOX ko'proq ishlaydigan ma'lumotlar do'konlarini taqdim etadi. Quyidagi ko'rsatma sizga ROBLOX ma'lumotlar omborlari bilan ishlash imkonini beradi.

Qadamlar

3 -usul 1: Ma'lumotlar do'konini sozlash

7815950 1
7815950 1

Qadam 1. API -ni sozlang

Bu hech qanday skriptni o'z ichiga olmaydi, lekin API ma'lumotlar bazasini faollashtirish uchun avval API kirishni yoqish kerak. Buning uchun "Ishlab chiqish" yorlig'iga o'ting va "O'yinlar" ni bosing. Bu sizni o'zingizga tegishli bo'lgan barcha o'yin joylariga yo'naltirishi kerak. O'yiningizni toping va uskunani bosing. Ochiladigan menyu paydo bo'lishi kerak va shunchaki "Konfiguratsiya" tugmasini bosing. "Studio xizmatlariga API xizmatlariga kirishni yoqish" yonidagi katakchani belgilang va saqlang. Endi siz to'liq API -ga kirishingiz kerak.

7815950 2
7815950 2

Qadam 2. Ma'lumotlar omborini oling

Ma'lumotlar do'koniga qo'ng'iroq qilish uchun Data Store API -dan foydalaning, chunki biz unga havola qilishimiz kerak. Boshlash uchun ROBLOX -da skriptni oching va mos yozuvlar uchun biz qo'ng'iroq qilmoqchi bo'lgan o'zgaruvchini nomlang.

    mahalliy ma'lumotlar ombori = o'yin: GetService ("DataStoreService"): GetDataStore ("nomi")

7815950 3
7815950 3

Qadam 3. O'zgaruvchini kerak bo'lganda ishlating

Ma'lumotlar omborini "ma'lumotlar ombori" o'zgaruvchisi bilan muvaffaqiyatli chaqirdingiz. Ma'lumotlar omborini olish kerak bo'lganda, siz uni o'zgaruvchiga ko'ra nomlashingiz mumkin.

E'tibor bering, agar ma'lumotlar ombori hali yaratilmagan bo'lsa, u avtomatik ravishda yangisini yaratadi

3 -ning 2 -usuli: Ma'lumotlarni saqlash usullaridan foydalanish

7815950 4
7815950 4

Qadam 1. GetAsync

Ma'lumotlar omboridagi yozuv qiymatini berilgan kalit bilan qaytarish uchun GetAsync -dan foydalaning. Har bir o'yinchiga o'ziga xos kalitlar to'plamini berishga ishonch hosil qiling, chunki ikkita o'yinchiga bitta kalitni qo'yish ularning o'yindagi ma'lumotlarini bekor qiladi, bu esa ikki tomon o'rtasida tartibsizlikni keltirib chiqaradi. Agar siz noyob kalitni qanday o'rnatishni bilmoqchi bo'lsangiz, o'qing.

  • Quyidagi kod nolni chiqaradi, chunki server kalit bilan bog'laydigan hech qanday qiymat topa olmadi; biz ko'rsatmoqchi bo'lgan narsani bilish uchun serverga aynan nimani chiqarishga harakat qilayotganimizni ko'rsatish juda muhim.
  • mahalliy ma'lumotlar bazasi = o'yin: GetService ("DataStoreService"): GetDataStore ("nomi") game. Players. PlayerAdded: ulanish (funktsiya (o'yinchi) mahalliy kalit = "user_".. player.userId ma'lumotlar do'koni: GetAsync (kalit) oxiri)

7815950 5
7815950 5

Qadam 2. SetAsync

Kalit qiymatini o'rnatish uchun SetAsync -dan foydalaning va yagona kalit uchun saqlangan barcha mavjud ma'lumotlarni bekor qiladi.

  • Agar oldingi ma'lumotlar to'plami muhim bo'lsa, quyida o'rgatiladigan UpdateAsync -dan foydalaning.
  • Quyidagi kod sizga ": GetAsync ()" va ": SetAsync ()" usullarini qanday amalga oshirish kerakligini ko'rsatadi.
  • mahalliy ma'lumotlar bazasi = o'yin: GetService ("DataStoreService"): GetDataStore ("nomi") game. Players. PlayerAdded: ulanish (funktsiya (o'yinchi) mahalliy kalit = "user_".. player.userId ma'lumotlar do'koni: SetAsync (kalit, 90) - - kalitni qiymatga o'rnatadi, 90 mahalliy data_stored = ma'lumotlar ombori: GetAsync (kalit) - qiymat o'zgarishini aniqlay oladi (data_stored) - chiqish uchini chop etadi)

  • Eslatma: Agar siz API -ga kirishni yoqmagan bo'lsangiz, bu ishlamaydi. Buning uchun ushbu qo'llanmaning birinchi ko'rsatmasini o'qing.
7815950 6
7815950 6

Qadam 3. Kalit qiymatini qaytarish uchun UpdateAsync -dan foydalaning va uni yangi qiymat bilan yangilang

Bu ma'lumotlarni tasdiqlaydi va shuning uchun server uni yangilash uchun vaqt topguncha kutish kerak. Bu ishlashi uchun siz ikkita parametrdan o'tishingiz kerak bo'ladi; birinchisi, siz o'rnatgan yagona kalitni oladigan mag'lubiyat: "'user_'.. player.userId", ikkinchisi esa eski qiymatni qabul qiladigan funksiya.

    mahalliy ma'lumotlar bazasi = o'yin: GetService ("DataStoreService"): GetDataStore ("nomi") game. Players. PlayerAdded: ulanish (funktsiya (pleyer) mahalliy kalit = "user_".. player.userId ma'lumotlar do'koni: UpdateAsync (kalit, funksiya (eski)) - ishni tugatish) tugatish)

  • Bunday holda, biz eski qiymatni "eski" deb atadik. Bu funktsiya ichida biz yangilangan balimizni hisobga oladigan o'zgaruvchini yasashimiz kerak bo'ladi va keyin uni qaytaramiz, shunda u bizning yangi balimizni ko'rsatadi.
  • mahalliy ma'lumotlar bazasi = o'yin: GetService ("DataStoreService"): GetDataStore ("nomi") game. Players. PlayerAdded: ulanish (funktsiya (pleyer) mahalliy kalit = "user_".. player.userId ma'lumotlar do'koni: UpdateAsync (kalit, funksiya (eski)) local new = old yoki 0 - nil new = new + 1 bo'lishi mumkin - eski qiymatga 1 qo'shish return new - uni yangi qiymat oxiri bilan qaytaradi) oxiri)

  • E'tibor bering, agar kalit mavjud bo'lmasa yoki to'g'ri tayinlanmagan bo'lsa, server nolga qaytadi.
  • Agar funktsiya mavjud bo'lmasa, yangilanish bekor qilinadi.
7815950 7
7815950 7

Qadam 4. Kalit qiymatini oshirish uchun IncrementAsync -dan foydalaning va ortgan qiymatni qaytaring

Bu usul faqat butun sonlar ustida ishlaydi.

3 -usul 3: Ma'lumotlar ombori voqealari va ma'lumotlarni yangilash

7815950 8
7815950 8

Qadam 1. Noyob kalitni o'rnating

Har bir o'yinchi o'ziga xos kalitga ega bo'lishi juda muhim. Ular barcha ma'lumotlarni saqlaydigan kalitni ushlab turadilar. Buning uchun biz o'yinchi identifikatoridan foydalanamiz. Ma'lumotlar omborini o'rnatganingizdan so'ng, pleyerni yuklash funktsiyasini chaqiring va keyin o'yinchi identifikatorini toping. Kod quyidagicha ko'rinishi kerak:

    mahalliy ma'lumotlar ombori = o'yin: GetService ("DataStoreService"): GetDataStore ("nomi") game. Players. PlayerAdded: ulanish (funktsiya (o'yinchi) mahalliy kalit = "user_".. player.userId oxiri)

  • Bu avtomatik ravishda faqat shu o'yinchiga xos bo'lgan kalitni yaratadi, chunki har bir o'yinchi bitta noyob identifikatorga ega bo'ladi. "User_" muhim emas.
7815950 9
7815950 9

Qadam 2. Ma'lumotlarni yangilang

Endi sizda har bir o'yinchi uchun yagona kalit bor, siz ma'lumotlar omborini yangilashingiz va ma'lumotlarni olishingiz mumkin. Sizning kalitingiz ostida sizning ehtiyojlaringizga eng mos keladigan usulni qo'shishni xohlaysiz. Bunday holda, biz "UpdateAsync" dan foydalanamiz.

  • Serverga nima qilmoqchi ekanligingizni tushunishga yordam beradigan funktsiyadan boshlang.
  • mahalliy ma'lumotlar bazasi = o'yin: GetService ("DataStoreService"): GetDataStore ("nomi") game. Players. PlayerAdded: ulanish (funktsiya (pleyer) mahalliy kalit = "user_".. player.userId ma'lumotlar do'koni: UpdateAsync (kalit, funksiya (eski)) local newValue = old yoki 0 - nil newValue = newValue + 50 return newValue end) end bo'lishi mumkin)

  • Bu funksiyada biz yana bir eski funktsiyani o'rnatdik. "eski" bizning ilgari saqlangan ma'lumotlarimiz edi. Ushbu stsenariyda, har safar o'yinchi serverga kirganda, server o'z kalitini topadi, bu ularning foydalanuvchi identifikatori va u ma'lumotlarni 50 punktga yangilaydi, bu yangi qiymatni qaytaradi va ko'rsatadi.
7815950 10
7815950 10

3 -qadam. Tabriklaymiz

Siz o'yinchi ma'lumotlarini muvaffaqiyatli saqladingiz va yangiladingiz.

Ogohlantirishlar

  • Ma'lumotlar omborini birinchi marta yaratayotganda, "o'yin: GetService (" DataStoreService ")" to'g'ri yozilganligiga ishonch hosil qiling. Agar u noto'g'ri nomlangan bo'lsa, u samarali ishlamaydi.
  • "SetAsync" va "UpdateAsync" ni qachon ishlatishni bilganingizga ishonch hosil qiling, chunki noto'g'ri foydalanish ma'lumotni olishda tartibsizlikka olib kelishi mumkin. Ko'p hollarda ishlab chiquvchilar "UpdateAsync" dan foydalanadilar.

Tavsiya: