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