Advertisement
drakon-firestone

Module script - z komentarzami

Mar 11th, 2023
754
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.73 KB | None | 0 0
  1. -- Ustawienie modułu
  2. local module = {}
  3. -- Pobranie usługi "TweenService" z "game"
  4. local tweenService = game:GetService("TweenService")
  5. -- Pobranie obiektu "ScreenGui" z rodzica skryptu
  6. local screenGui = script.Parent:WaitForChild("ScreenGui")
  7. -- Ustawienie prędkości animacji otwierania i zamykania okna
  8. local OpenSpeed = 0.8
  9. local CloseSpeed = 0.2
  10. -- Ustawienie stylów i kierunków animacji otwierania i zamykania okna
  11. local OpenEasingStyle = Enum.EasingStyle.Back
  12. local OpenEasingDirection = Enum.EasingDirection.Out
  13. local ClosingEasingStyle = Enum.EasingStyle.Sine
  14.  
  15. local ClosingEasingDirection = Enum.EasingDirection.Out
  16. -- Funkcja do pobierania okna (ramy) po nazwie
  17. function module.GetFrame(frameName)
  18.     -- Pobranie wszystkich potomków "ScreenGui"
  19.     local frames = screenGui:GetDescendants()
  20.     -- Zmienna na okno (ramę)
  21.     local frame = nil
  22.     -- Przeszukiwanie potomków w celu znalezienia okna o podanej nazwie
  23.     for i, item in pairs(frames) do
  24.         if item.Name == frameName then
  25.             frame = item
  26.         end
  27.     end
  28.     -- Zwrócenie znalezionego okna
  29.     return frame
  30. end
  31. -- Funkcja do otwierania okna
  32. function module.OpenFrame(frameName)
  33.     -- Pobranie okna (ramy) z funkcji "module.GetFrame"
  34.     local frame = module.GetFrame(frameName)
  35.     -- Jeśli okno zostało znalezione
  36.     if frame then
  37.         -- Pobranie normalnego rozmiaru okna
  38.         local normalSize = frame.Size
  39.         -- Ustawienie okna na bardzo mały rozmiar
  40.         frame.Size = UDim2.fromScale(0, 0)
  41.         -- Poczekanie na zakończenie zamykania
  42.         task.wait(CloseSpeed + 0.1)
  43.         -- Ustawienie widoczności okna na true
  44.         frame.Visible = true
  45.         -- Utworzenie animacji otwierania okna
  46.         local openTween = tweenService:Create(
  47.             frame,
  48.             TweenInfo.new(
  49.                 OpenSpeed,
  50.                 OpenEasingStyle,
  51.                 OpenEasingDirection),
  52.             {
  53.                 Size = normalSize
  54.             }
  55.         )
  56.         -- Odtworzenie animacji otwierania
  57.         openTween:Play()
  58.     end
  59. end
  60. -- Funkcja module.CloseFrame służy do zamknięcia okna (ramy)
  61. function module.CloseFrame(frameName)
  62.     -- Pobranie obiektu ramy na podstawie nazwy
  63.     local frame = module.GetFrame(frameName)
  64.     -- Sprawdzenie czy rama istnieje
  65.     if frame then
  66.         -- Zapisanie aktualnego rozmiaru ramy
  67.         local normalSize = frame.Size
  68.         -- Utworzenie animacji zmniejszania rozmiaru ramy do 0
  69.         local closeTween = tweenService:Create(
  70.             frame,
  71.             TweenInfo.new(
  72.                 CloseSpeed,
  73.                 ClosingEasingStyle,
  74.                 ClosingEasingDirection),
  75.             {
  76.  
  77.                 Size = UDim2.fromScale(0, 0)
  78.             }
  79.         )
  80.         -- Rozpoczęcie animacji
  81.         closeTween:Play()
  82.         -- Po zakończeniu animacji ukrycie ramy i przywrócenie jej oryginalnego rozmiaru
  83.         closeTween.Completed:Connect(function()
  84.             frame.Visible = false
  85.             frame.Size = normalSize
  86.         end)
  87.     end
  88. end
  89. -- Pętla po wszystkich potomkach obiektu screenGui
  90. for _, v in pairs(screenGui:GetDescendants()) do
  91.     -- Jeśli obiekt jest typu GuiButton (przyciskiem)
  92.     if v:IsA("GuiButton") then
  93.         -- Jeśli przycisk posiada dziecko o nazwie "Opens"
  94.         if v:FindFirstChild("Opens") then
  95.             -- Jeśli właściwość "Opens" nie jest pusta
  96.             if v:FindFirstChild("Opens").Value ~= nil then
  97.                 -- Po kliknięciu w przycisk wywołanie funkcji module.OpenFrame
  98.                 -- z parametrem nazwy ramy do otwarcia
  99.                 v.MouseButton1Click:Connect(function()
  100.                     module.OpenFrame(v:FindFirstChild("Opens").Value.Name)
  101.                 end)
  102.             end
  103.         end
  104.         -- Jeśli przycisk posiada dziecko o nazwie "Closes"
  105.         if v:FindFirstChild("Closes") then
  106.             -- Jeśli właściwość "Closes" nie jest pusta
  107.             if v:FindFirstChild("Closes").Value ~= nil then
  108.                 -- Po kliknięciu w przycisk wywołanie funkcji module.CloseFrame
  109.                 -- z parametrem nazwy ramy do zamknięcia
  110.                 v.MouseButton1Click:Connect(function()
  111.                     module.CloseFrame(v:FindFirstChild("Closes").Value.Name)
  112.                 end)
  113.             end
  114.         end
  115.     end
  116. end
  117. return module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement