Roblox'ta Veri Depolarıyla Çalışmanın 3 Yolu

İçindekiler:

Roblox'ta Veri Depolarıyla Çalışmanın 3 Yolu
Roblox'ta Veri Depolarıyla Çalışmanın 3 Yolu
Anonim

Herkes veriyi kaydetmek ve bir oyuncu oyuna her girdiğinde yeniden yüklemek mi istedi? Veri Kalıcılığının faydasız hale gelmesinden bu yana, ROBLOX çok daha işlevsel olan veri depoları sunar. Aşağıdaki nasıl yapılır kılavuzu, ROBLOX için veri depolarıyla çalışmanıza olanak sağlayacaktır.

adımlar

Yöntem 1/3: Veri Deposunu Ayarlama

7815950 1
7815950 1

Adım 1. API'yi yapılandırın

Bu, herhangi bir komut dosyası oluşturmayı içermez, ancak tüm veri deposu API'sini etkinleştirmek için önce API erişimini etkinleştirmeniz gerekir. Bunu yapmak için Geliştirme sekmesine gidin ve "Oyunlar" üzerine tıklayın. Bu, sizi sahip olduğunuz mevcut oyun yerlerinin tümüne yönlendirmelidir. Oyununuzu bulun ve vitese tıklayın. Bir açılır menü görünmelidir ve sadece "Yapılandır" a basın. Etkinleştirilen "API Hizmetlerine Studio Erişimini Etkinleştir" kutusunu işaretleyin ve kaydedin. Artık tam API'ye erişiminiz olmalıdır.

7815950 2
7815950 2

Adım 2. Veri deposunu alın

Referans vermemiz gerekeceğinden, veri deposunu aramak için Veri Deposu API'sini kullanın. Başlamak için, ROBLOX'ta bir komut dosyası açın ve referansı çağırmak için kullanmak istediğimiz bir değişkeni adlandırın.

    yerel veri deposu = oyun:GetService("DataStoreService"):GetDataStore("ad")

7815950 3
7815950 3

Adım 3. Değişkeni gerektiği gibi kullanın

Veri deposunu "datastore" değişkeniyle başarıyla çağırdınız. Şimdi, veri deposunu ne zaman almanız gerekiyorsa, onu değişkenine göre adlandırabilirsiniz.

Henüz bir veri deposu oluşturulmadıysa, otomatik olarak yeni bir tane oluşturacağını lütfen unutmayın

Yöntem 2/3: Veri Depolama Yöntemlerini Kullanma

7815950 4
7815950 4

Adım 1. GetAsync

Verilen anahtarla veri deposundaki girişin değerini döndürmek için GetAsync'i kullanın. Her oyuncuya benzersiz bir anahtar seti verdiğinizden emin olun, çünkü iki oyuncuyu aynı anahtarı ayarlamak kendi oyun içi verilerini geçersiz kılacak ve iki taraf arasında kaosa neden olacaktır. Benzersiz bir anahtarın nasıl ayarlanacağını bilmek istiyorsanız, okumaya devam edin.

  • Sunucu, anahtara bağlanan herhangi bir değer bulamadığı için aşağıdaki kod nil olarak çıkacaktır; sunucuya tam olarak ne çıkarmaya çalıştığımızı göstermek önemlidir, böylece sunucu neyin görüntülenmesi gerektiğini bilir.
  • 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

Adım 2. SetAsync

Anahtarın değerini ayarlamak için SetAsync'i kullanın ve benzersiz anahtar için depolanan tüm mevcut verileri geçersiz kılar.

  • Önceki bilgi grubu önemliyse, aşağıda öğretilecek olan UpdateAsync'i kullanmayı düşünün.
  • Aşağıdaki kod, hem ":GetAsync()" hem de ":SetAsync()" yöntemlerinin nasıl uygulanacağını gösterir.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId veri deposu:SetAsync(anahtar, 90) - - anahtarı değere ayarlar, 90 yerel data_stored = datastore:GetAsync(key) -- değer değişikliğini algılayabilir print(data_stored) -- çıktının sonunu yazdırır)

  • Not: API erişimini etkinleştirmedikçe bu çalışmaz. Bunu yapmak için bu kılavuzun ilk talimatını okuyun.
7815950 6
7815950 6

Adım 3. Anahtarın değerini döndürmek için UpdateAsync'i kullanın ve yeni bir değerle güncelleyin

Bu, verileri doğrular ve bu nedenle sunucunun onu güncellemek için zamanı bulana kadar beklemesi gerekir. Bunun çalışması için iki parametre iletmeniz gerekecek; ilki, ayarladığınız benzersiz anahtarı alan bir dizedir: "'user_'.. player.userId", ikincisi ise eski değeri alacak bir işlevdir.

    local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(anahtar, fonksiyon(eski)) -- işlerin bitmesi) sonu)

  • Bu durumda eski değeri "eski" olarak adlandırdık. Bu fonksiyonun içinde, güncellenmiş puanımızı hesaba katacak bir değişken oluşturmamız ve ardından yeni puanımızı gösterebilmesi için bunu döndürmemiz gerekecek.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(anahtar, fonksiyon(eski)) yerel yeni = eski veya 0 -- sıfır olabilir = yeni + 1 -- eski değere 1 ekle geri dön yeni -- yeni değerle birlikte döndürür end) end)

  • Anahtar yoksa veya doğru şekilde atanmamışsa sunucunun nil değerini döndüreceğini unutmayın.
  • İşlev mevcut değilse, güncelleme iptal edilecektir.
7815950 7
7815950 7

Adım 4. Bir anahtarın değerini artırmak için IncrementAsync'i kullanın ve artan değeri döndürür

Bu yöntem yalnızca tamsayılarda çalışır.

Yöntem 3/3: Veri Deposu Olayları ve Verilerin Güncellenmesi

7815950 8
7815950 8

Adım 1. Benzersiz bir anahtar ayarlayın

Her oyuncunun kendine özgü bir anahtarının olması son derece önemlidir. Tüm verilerini depolayacak olan anahtarı tutacaklar. Bunu yapmak için oyuncunun kimliğini kullanırız. Veri deposunu ayarladıktan sonra, oynatıcıyı yüklemek için bir işlevi çağırmanız ve ardından oynatıcının kimliğini bulmanız yeterlidir. Kod aşağıdaki gibi görünmelidir:

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

  • Bu, otomatik olarak yalnızca o oyuncuya özel bir anahtar yaratacaktır, çünkü her oyuncunun bir benzersiz kimliği olacaktır. "user_" önemli olmayacak.
7815950 9
7815950 9

Adım 2. Verileri güncelleyin

Artık her oyuncu için benzersiz bir anahtarınız olduğuna göre, veri deposunu güncellemeye ve verileri almaya hazırsınız. Anahtarınızın altına ihtiyaçlarınıza en uygun yöntemi eklemek isteyeceksiniz. Bu durumda, "UpdateAsync" kullanacağız.

  • Sunucunun ne yapmak istediğinizi anlamasına yardımcı olacak bir işlevle başlayın.
  • local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(anahtar, fonksiyon(eski)) yerel yeniDeğer = eski veya 0 -- sıfır olabilir yeniDeğer = yeniDeğer + 50 dönüş yeniDeğer sonu) end)

  • Bu fonksiyonda eski bir fonksiyon daha kurduk. "eski" önceden kaydedilmiş verilerimizdi. Bu senaryoda, bir oyuncu sunucuya her girdiğinde, sunucu, kullanıcı kimliği olan anahtarını bulur ve verileri 50 puan güncelleyerek bu yeni değeri döndürür ve görüntüler.
7815950 10
7815950 10

Adım 3. Tebrikler

Bir oyuncunun verilerini başarıyla depoladınız ve güncellediniz.

Uyarılar

  • Veri deponuzu ilk oluştururken, doğru büyük harfle "game:GetService("DataStoreService")" olduğundan emin olun. Yanlış çağrılırsa verimli çalışmayacaktır.
  • "SetAsync" ve "UpdateAsync"i ne zaman kullanacağınızı bildiğinizden emin olun, çünkü yanlış olanı kullanmak veri alırken işleri bir karmaşaya dönüştürebilir. Çoğu durumda, geliştiriciler "UpdateAsync" kullanır.

Önerilen: