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
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.
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")
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
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)
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)
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)
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)
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
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)
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)
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.