Advertisement
giganciprogramowania

Lekcja 9. System script-z komentarzami

Nov 10th, 2022 (edited)
927
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.83 KB | None | 0 0
  1. -- Odwołanie do folderu z przyciskami do Tycoona
  2. local przyciski = script.Parent.Przyciski
  3. -- Odwołanie do folderu z zakupami do Tycoona
  4. local zakupy = script.Parent.Zakupy
  5. -- Utworzenie magazynu do przechowywania
  6. -- niezakupionych elementów do Tycoona
  7. -- Tego rodzaju tablicę, można wyobrazić sobie
  8. -- jako pudełko z szufladkami, do którego można
  9. -- umieszczać elementy, a następnie gdy ich potrzebujemy
  10. -- wyciągać za pomocą polecenia: magazyn[nazwa]
  11. local magazyn = {}
  12. -- Funkcja, która ukrywa podany przycisk
  13. local function ukryjPrzycisk(przycisk)
  14. -- Wyłączenie opcji wykrywania dotknięcia
  15. przycisk.CanTouch = false
  16. -- Ustawienie przezroczystości na 1
  17. przycisk.Transparency = 1
  18. end
  19. -- Funkcja, która odkrywa podany przycisk
  20. local function odkryjPrzycisk(przycisk)
  21. -- Włączenie opcji wykrywania dotknięcia
  22. przycisk.CanTouch = true
  23. -- Ustawienie przezroczystości na 0
  24. przycisk.Transparency = 0
  25. end
  26. -- Funkcja, która ustawia nowy przycisk
  27. local function nowyPrzycisk(przycisk)
  28.  
  29. -- Tworzymy zmienną do przechowywania tymczasowo zakupu
  30. local zakup
  31. -- Zmienna nazwa będzie przechowywać nazwę przycisku
  32. local nazwa = przycisk.Name
  33. -- Jeżeli w folderze zakupy zostanie znaleziony element,
  34. -- który będzie miał taką samą nazwę jak nazwa przycisku, wtedy
  35. if zakupy:FindFirstChild(nazwa) then
  36. -- Do zmiennej zakup przypisujemy element z folderu zakupy
  37. zakup = zakupy[nazwa]
  38. -- Następnie do magazynu wędruje klon elementu zakup
  39. magazyn[nazwa] = zakup:Clone()
  40. -- Zakup zostaje zniszczony, co spowoduje, że nie będzie
  41. -- widoczny w naszym Tycoonie, tylko ukryty w magazynie
  42. zakup:Destroy()
  43. else -- W przeciwnym wypadku, jeżeli wybrany zakup nie zostanie znaleziony
  44. -- W oknie output pojawi się ostrzeżenie, że np. Brakuje zakupu: 5
  45. warn("Brakuje zakupu: " .. nazwa)
  46. end
  47.  
  48. -- Jeżeli nazwa przycisku nie jest 1 to ukrywamy podany przycisk
  49. -- Ta instrukcja warunkowa pozwoli pokazać pierwszy przycisk
  50. -- od którego gracz będzie zaczynał swoją rozgrywkę
  51. if not (nazwa == "1") then
  52. ukryjPrzycisk(przycisk)
  53. end
  54.  
  55. -- Aktywacja zdarzenia dotknięcia innego obiektu z przyciskiem
  56. -- hit - jest to element, który dotknie przycisk
  57. przycisk.Touched:Connect(function(hit)
  58. -- może to być każda część występująca na świecie
  59. -- dlatego poniżej szukamy gracza po jego nazwie
  60. -- czyli rodzica obiektu, który dotknął przycisk
  61. -- ponieważ dzieci modelu postaci mogą dotknąć przycisk,
  62. -- a rodzic tych części czyli model postaci zawiera nazwę gracza
  63. local player = game.Players:FindFirstChild(hit.Parent.Name)
  64.  
  65. -- Jeżeli gracz został znaleziony, co oznacza, że to on dotknął przycisk
  66. if player then
  67. -- Tworzymy kolejną zmienną zakup,
  68. -- do której wrzucamy element do zakupu z magazynu
  69. local zakup = magazyn[nazwa]
  70. -- Jeżeli zakup został prawidłowo znaleziony w magazynie
  71. if zakup then
  72. -- Ustawiamy rodzina zakupu na folder zakupy,
  73. -- co spowoduje, że dany zakup pojawi się w grze
  74. zakup.Parent = zakupy
  75. end
  76.  
  77. -- Tworzymy pętle for, która wykona się tyle razy
  78. -- ile będzie znajdowało się elementów w przycisku
  79. for i, element in pairs(przycisk:GetChildren()) do
  80. -- Jeżeli element ma nazwę Kolejny
  81. -- to oznacza, że po tym przycisku ma się pojawić kolejny przycisk
  82. if element.Name == "Kolejny" then
  83. -- informacja o nazwie przycisku, który odkrywamy
  84. -- znajduje się w wartości obiektu element pod nazwą Kolejny
  85. local przyciskDoOdkrycia = przyciski:FindFirstChild(element.Value)
  86. -- Jeżeli przycisk do odkrycia został znaleziony
  87. if przyciskDoOdkrycia then
  88. -- Uruchamiamy funkcję odkryjPrzycisk
  89. odkryjPrzycisk(przyciskDoOdkrycia)
  90. else -- w przeciwnym razie
  91. -- W oknie output pojawi się ostrzeżenie, że np. Brakuje przycisku: 3
  92. warn("Brakuje przycisku: " .. element.Value)
  93. end
  94.  
  95. end
  96. end
  97. -- W tym miejscu usuwamy dany przycisk z gry
  98. przycisk:Destroy()
  99.  
  100. end
  101. end)
  102. end
  103.  
  104. -- Kiedy gracz zostanie dodany wykonaj funkcję
  105. game.Players.PlayerAdded:Connect(function(gracz)
  106. -- Tworzymy pętle for, która wykona się tyle razy
  107. -- ile będzie znajdowało się przycisków w folderze z przyciskami
  108. for i, przycisk in pairs(przyciski:GetChildren()) do
  109. -- Uruchamiamy funkcję nowyPrzycisk
  110. nowyPrzycisk(przycisk)
  111. end
  112. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement