View difference between Paste ID: vNAZGqch and 1jRQyZBj
SHOW: | | - or go back to the newest paste.
1
local przyciski = script.Parent.Przyciski
2
local zakupy = script.Parent.Zakupy
3
 
4
local magazyn = {}
5
 
6
-- tworzymy odwołanie do DataStoreService
7
local DSS = game:GetService("DataStoreService")
8
-- pobranie magazynu danych (Kasa) do tworzonej zmiennej Bank
9
local Bank = DSS:GetDataStore("Kasa")
10
 
11
local function ukryjPrzycisk(przycisk)
12
    przycisk.CanTouch = false
13
    przycisk.Transparency = 1
14
    przycisk.Tablica.Enabled = false
15
end
16
 
17
local function odkryjPrzycisk(przycisk)
18
    przycisk.CanTouch = true
19
    przycisk.Transparency = 0
20
    przycisk.Tablica.Enabled = true
21
end
22
 
23
local function nowyPrzycisk(przycisk)
24
    local zakup
25
    local nazwa = przycisk.Name
26
 
27
    if zakupy:FindFirstChild(nazwa) then
28
        zakup = zakupy[nazwa]
29
        magazyn[nazwa] = zakup:Clone()
30
        zakup:Destroy()
31
    else
32
        warn("Brakuje zakupu: " .. nazwa)
33
    end
34
 
35
    if not (nazwa == "1") then
36
        ukryjPrzycisk(przycisk)
37
    end
38
 
39
    przycisk.Touched:Connect(function(hit)
40
        local player = game.Players:FindFirstChild(hit.Parent.Name)
41
 
42
        if player then          
43
 
44
            local zakup = magazyn[nazwa]
45
 
46
            if zakup then
47
                zakup.Parent = zakupy
48
            end
49
 
50
            for i, element in pairs(przycisk:GetChildren()) do
51
                if element.Name == "Kolejny" then
52
 
53
                    local przyciskDoOdkrycia = przyciski:FindFirstChild(element.Value)
54
 
55
                    if przyciskDoOdkrycia then
56
                        odkryjPrzycisk(przyciskDoOdkrycia)
57
                    else
58
                        warn("Brakuje przycisku: " .. element.Value)
59
                    end
60
 
61
                end
62
            end
63
 
64
            przycisk:Destroy()
65
 
66
        end
67
    end)
68
end
69
 
70
 
71
game.Players.PlayerAdded:Connect(function(gracz)
72
 
73
    -- pobranie danych z serwera danego gracza, jeżeli ich brak ustaw wartość na 0  
74
    local kasa = Bank:GetAsync(gracz.UserId) or 0
75
 
76
    -- stwórz nowy folder i do ServerStorage
77
    local tablicaNaSerwerze = Instance.new("Folder", game.ServerStorage)
78
    -- nazwanie folderu nazwą gracza
79
    tablicaNaSerwerze.Name = gracz.Name
80
   
81
    -- stwórz nowy obiekt NumberValue i przypisz go do tablicy na serwerze
82
    local kasaNaSerwerze = Instance.new("NumberValue", tablicaNaSerwerze)
83
    -- nazwanie obiektu NumberValue nazwą gracza
84
    kasaNaSerwerze.Name = "Kasa"
85
    -- ustawienie ilości pieniędzy z banku do zmiennej kasy znajdującej się na serwerze
86
    kasaNaSerwerze.Value = kasa
87
   
88
    -- stwórz nowy folder i przypisz go do gracza
89
    local tablicaLokalnie = Instance.new("Folder", gracz)
90
    -- nazwanie folderu "leaderstats" pozwala na wyświetlenie tabeli wyników
91
    -- w prawym górnym rogu ekranu gry
92
    tablicaLokalnie.Name = "leaderstats"
93
   
94
    -- stwórz nowy obiekt NumberValue i przypisz go do lokalnej tablicy
95
    local kasaLokalnie = Instance.new("NumberValue", tablicaLokalnie)
96
    -- nazwanie obiektu NumberValue (Kasa)
97-
    while true do
97+
98
    -- ustawienie lokalnej wartości kasy na wartość pobraną z serwera
99
    kasaLokalnie.Value = kasa
100
 
101
 
102
    for i, przycisk in pairs(przyciski:GetChildren()) do
103
        nowyPrzycisk(przycisk)
104
    end
105
 
106
    -- po pobraniu danych ładujemy (Character) model gracza do gry.
107
    gracz:LoadCharacter()
108
   
109
    -- jeżeli wartość kasy na serwerze danego gracza zostanie zmieniona
110
    kasaNaSerwerze.Changed:Connect(function(liczba)
111
        -- ustaw lokalną wartość kasy na wartość pobraną z serwera
112
        kasaLokalnie.Value = liczba
113
    end)
114
 
115
 
116
   while true do
117
        -- zapisz ilość kasy danego gracza na serwerze
118
        Bank:SetAsync(gracz.UserId, kasaNaSerwerze.Value)
119
        -- wyświetl komunikat
120
        print("Kasa zapisana!")
121
        -- czekaj 10 sekund
122
        wait(10)
123
   end
124
 
125
end)