Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local przyciski = script.Parent.Przyciski
- local zakupy = script.Parent.Zakupy
- local magazyn = {}
- -- tworzymy odwołanie do DataStoreService
- local DSS = game:GetService("DataStoreService")
- -- pobranie magazynu danych (Kasa) do tworzonej zmiennej Bank
- local Bank = DSS:GetDataStore("Kasa")
- local function ukryjPrzycisk(przycisk)
- przycisk.CanTouch = false
- przycisk.Transparency = 1
- przycisk.Tablica.Enabled = false
- end
- local function odkryjPrzycisk(przycisk)
- przycisk.CanTouch = true
- przycisk.Transparency = 0
- przycisk.Tablica.Enabled = true
- end
- local function nowyPrzycisk(przycisk)
- local zakup
- local nazwa = przycisk.Name
- if zakupy:FindFirstChild(nazwa) then
- zakup = zakupy[nazwa]
- magazyn[nazwa] = zakup:Clone()
- zakup:Destroy()
- else
- warn("Brakuje zakupu: " .. nazwa)
- end
- if not (nazwa == "1") then
- ukryjPrzycisk(przycisk)
- end
- przycisk.Touched:Connect(function(hit)
- local player = game.Players:FindFirstChild(hit.Parent.Name)
- if player then
- local zakup = magazyn[nazwa]
- if zakup then
- zakup.Parent = zakupy
- end
- for i, element in pairs(przycisk:GetChildren()) do
- if element.Name == "Kolejny" then
- local przyciskDoOdkrycia = przyciski:FindFirstChild(element.Value)
- if przyciskDoOdkrycia then
- odkryjPrzycisk(przyciskDoOdkrycia)
- else
- warn("Brakuje przycisku: " .. element.Value)
- end
- end
- end
- przycisk:Destroy()
- end
- end)
- end
- game.Players.PlayerAdded:Connect(function(gracz)
- -- pobranie danych z serwera danego gracza, jeżeli ich brak ustaw wartość na 0
- local kasa = Bank:GetAsync(gracz.UserId) or 0
- -- stwórz nowy folder i do ServerStorage
- local tablicaNaSerwerze = Instance.new("Folder", game.ServerStorage)
- -- nazwanie folderu nazwą gracza
- tablicaNaSerwerze.Name = gracz.Name
- -- stwórz nowy obiekt NumberValue i przypisz go do tablicy na serwerze
- local kasaNaSerwerze = Instance.new("NumberValue", tablicaNaSerwerze)
- -- nazwanie obiektu NumberValue nazwą gracza
- kasaNaSerwerze.Name = "Kasa"
- -- ustawienie ilości pieniędzy z banku do zmiennej kasy znajdującej się na serwerze
- kasaNaSerwerze.Value = kasa
- -- stwórz nowy folder i przypisz go do gracza
- local tablicaLokalnie = Instance.new("Folder", gracz)
- -- nazwanie folderu "leaderstats" pozwala na wyświetlenie tabeli wyników
- -- w prawym górnym rogu ekranu gry
- tablicaLokalnie.Name = "leaderstats"
- -- stwórz nowy obiekt NumberValue i przypisz go do lokalnej tablicy
- local kasaLokalnie = Instance.new("NumberValue", tablicaLokalnie)
- -- nazwanie obiektu NumberValue (Kasa)
- kasaLokalnie.Name = "Kasa"
- -- ustawienie lokalnej wartości kasy na wartość pobraną z serwera
- kasaLokalnie.Value = kasa
- for i, przycisk in pairs(przyciski:GetChildren()) do
- nowyPrzycisk(przycisk)
- end
- -- po pobraniu danych ładujemy (Character) model gracza do gry.
- gracz:LoadCharacter()
- -- jeżeli wartość kasy na serwerze danego gracza zostanie zmieniona
- kasaNaSerwerze.Changed:Connect(function(liczba)
- -- ustaw lokalną wartość kasy na wartość pobraną z serwera
- kasaLokalnie.Value = liczba
- end)
- while true do
- -- zapisz ilość kasy danego gracza na serwerze
- Bank:SetAsync(gracz.UserId, kasaNaSerwerze.Value)
- -- wyświetl komunikat
- print("Kasa zapisana!")
- -- czekaj 10 sekund
- wait(10)
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement