Advertisement
giganciprogramowania

10. System script v2 komentarze

Nov 18th, 2022 (edited)
554
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. kasaLokalnie.Name = "Kasa"
  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)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement