Advertisement
MaxiKaz

Licznik fal

Apr 16th, 2023 (edited)
497
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.33 KB | Gaming | 0 0
  1. -- Licznik pozwala na odliczanie czasu
  2.  
  3. -- Czas rundy określa ile sekund będzie trwała dana runda (fala)
  4.  
  5. -- Ilość zombie do wygenerowania,
  6. -- pozwoli generatorowi wygenerować odpowiednią ilość zombiaków
  7.  
  8. -- Ilość zombie do pokonania,
  9. -- pozwoli na sprawdzanie czy dana fala została pokonana
  10.  
  11. -- Finalna fala określa rundę z bossem
  12.  
  13. -- Zmienna logiczna aktywna gra, będzie określać,
  14. -- czy gra jest aktywna lub nie
  15.  
  16. -- Aktualna fala określa jaki obecnie jest numer fali
  17.  
  18. -- Komunikat gry pozwoli na przekazywanie informacji dla gracza
  19.  
  20. -- Ilość czasu w sekundach do rozpoczęcia gry
  21.  
  22. -- Ilość czasu w sekundach przerwy pomiędzy falami
  23.  
  24. -- Ilość czasu w sekundach po rozgrywce
  25.  
  26. -- Odwołanie do folderu Zombiaki, w którym będą umieszczane wygenerowane zombie
  27.  
  28. -- Odwołanie do modelu bossa
  29.  
  30.  
  31. -- Pętla nieskończona
  32. while true do
  33.     -- Startowe odliczanie
  34.     for i = czasDoGry.Value, 0, -1 do
  35.         komunikatGry.Value = "Rozpoczęcie gry za: " .. i
  36.         wait(1)
  37.     end
  38.  
  39.     -- Ustawienie licznika na wartość czasu rundy
  40.     licznik.Value = czasRundy.Value
  41.     -- Ustawienie ilości zombiaków do wygenerowania
  42.     zombieDoWygenerowania.Value = 10
  43.     -- Ustawienie ilości zombiaków do pokonania
  44.     zombieDoPokonania.Value = 10
  45.     -- Ustawienie numeru aktualnej fali
  46.     aktualnaFala.Value = 1
  47.     -- Aktywacja gry
  48.     aktywnaGra.Value = true
  49.  
  50.     -- Powtarzaj (aż do momentu kiedy gra zostanie zakończona)
  51.     repeat
  52.         -- Jeżeli wartość licznika jest większa od 0
  53.         if licznik.Value > 0 then
  54.             -- Wyświetlanie informacji na temat aktualnego czasu rozgrywki
  55.             komunikatGry.Value = "Pozostały czas: " .. licznik.Value
  56.             -- Czekaj sekundę
  57.             wait(1)
  58.             -- Zmniejsz licznik o jeden
  59.             licznik.Value -= 1  
  60.         else -- W przeciwnym razie
  61.             -- Ustaw komunikat przegrana
  62.             komunikatGry.Value = "Przegrana!"
  63.             -- Usuń wszystkie zombiaki w folderze Zombiaki
  64.             game.Workspace.Zombiaki:ClearAllChildren()
  65.             -- Dezaktywacja gry
  66.             aktywnaGra.Value = false
  67.         end
  68.  
  69.         -- jeżeli wszystkie zombiaki zostają pokonane
  70.         if zombieDoPokonania.Value == 0 then
  71.  
  72.             -- wartość aktualnej fali zostaje zwiększona
  73.             aktualnaFala.Value += 1
  74.  
  75.             if aktualnaFala.Value < finalnaFala.Value + 1 then
  76.                 for i = czasPrzerwy.Value, 0, -1 do
  77.                     komunikatGry.Value = "Następna fala za: " .. i
  78.                     wait(1)
  79.                 end
  80.                 -- ustawienie licznika na wartość czasu rundy
  81.                 licznik.Value = czasRundy.Value
  82.                 -- ustawienie ilości zombiaków do wygenerowania
  83.                 zombieDoWygenerowania.Value = 10 * aktualnaFala.Value
  84.                 -- ustawienie ilości zombiaków do pokonania
  85.                 zombieDoPokonania.Value = 10 * aktualnaFala.Value
  86.  
  87.                 -- jeżeli fala jest falą finałową,
  88.                 if aktualnaFala.Value == finalnaFala.Value then
  89.                     -- sklonuj bossa
  90.                     local nowyBoss = boss:Clone()
  91.                     -- przypisz go do folderu z zombiakami (czyli do świata gry)
  92.                     nowyBoss.Parent = game.Workspace.Zombiaki
  93.                     -- zwiększ ilość zombiaków do pokonania o jeden
  94.                     zombieDoPokonania.Value += 1
  95.                 end
  96.             else -- jeżeli wartość fali jest większa o jeden od finałowej wygrywamy grę.
  97.                 komunikatGry.Value = "Gratulacje, pojedynek wygrany!!!"
  98.                 aktywnaGra.Value = false
  99.             end
  100.         end
  101.     until aktywnaGra.Value == false -- aż do momentu kiedy gra zostanie zakończona
  102.     -- chwila przerwy, odczekanie do następnej gry
  103.     wait(czasPoGrze.Value)
  104. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement