Salvarea Progresului Jucătorilor cu DataStoreService: GetAsync, SetAsync și UpdateAsync în Luau (Roblox Studio)

Ghid complet pentru DataStoreService în Roblox Studio: salvarea persistentă a monedelor și nivelului în cloud, gestionarea limitelor API și pofile sigure cu UpdateAsync.

Sintaxă
dataStore:GetAsync(playerKey) | dataStore:UpdateAsync(playerKey, transformFn)

DataStoreService este serviciul integrat de bază de date NoSQL în cloud oferit de infrastructura Roblox. El asigură persistența progresului jucătorului (monede, experiență, echipament) între sesiuni de joc și între servere diferite ale aceleiași experiențe.

Încărcarea și salvarea sigură a datelor unui jucător cu pcall
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")

local BazaDateJucatori = DataStoreService:GetDataStore("ProgresJucatori_v1")

-- 1. Încărcarea datelor la conectare:
Players.PlayerAdded:Connect(function(player: Player)
    local cheieUnica = `Jucator_{player.UserId}`
    
    -- Orice apel DataStore de rețea trebuie protejat prin pcall (Protected Call):
    local succes, dateSalvate = pcall(function()
        return BazaDateJucatori:GetAsync(cheieUnica)
    end)

    if succes and dateSalvate then
        print(`Date încărcate pentru {player.Name}: {dateSalvate.monede} monede.`)
    else
        print(`Jucător nou detectat sau eroare de conexiune pentru {player.Name}.`)
    end
end)

-- 2. Salvarea datelor la deconectare folosind UpdateAsync (previne suprascrierile corupte):
Players.PlayerRemoving:Connect(function(player: Player)
    local cheieUnica = `Jucator_{player.UserId}`
    
    pcall(function()
        BazaDateJucatori:UpdateAsync(cheieUnica, function(dateVechi)
            return {
                monede = 500, -- Exemplu date actualizate
                ultimaSalvare = os.time()
            }
        end)
    end)
end)
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Salvarea Progresului Jucătorilor cu DataStoreService: GetAsync, SetAsync și UpdateAsync

Ai o nelămurire despre utilizarea comenzii Salvarea Progresului Jucătorilor cu DataStoreService: GetAsync, SetAsync și UpdateAsync sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.