Untitled

mail@pastecode.io avatar
unknown
lua
2 years ago
4.3 kB
4
Indexable
Never
-- Licznik pozwala na odliczanie czasu
local licznik = game.ReplicatedStorage:WaitForChild("Licznik")
-- Czas rundy określa ile sekund będzie trwała dana runda (fala)
local czasRundy = game.ReplicatedStorage:WaitForChild("CzasRundy")
-- Ilość zombie do wygenerowania,
-- pozwoli generatorowi wygenerować odpowiednią ilość zombiaków
local zombieDoWygenerowania = game.ReplicatedStorage:WaitForChild("ZombieDoWygenerowania")
-- Ilość zombie do pokonania,
-- pozwoli na sprawdzanie czy dana fala została pokonana
local zombieDoPokonania = game.ReplicatedStorage:WaitForChild("ZombieDoPokonania")
-- Finalna fala określa rundę z bossem
local finalnaFala = game.ReplicatedStorage:WaitForChild("FinalnaFala")
-- Zmienna logiczna aktywna gra, będzie określać,
-- czy gra jest aktywna lub nie
local aktywnaGra = game.ReplicatedStorage:WaitForChild("AktywnaGra")
-- Aktualna fala określa jaki obecnie jest numer fali
local aktualnaFala = game.ReplicatedStorage:WaitForChild("AktywnaFala")
-- Komunikat gry pozwoli na przekazywanie informacji dla gracza
local komunikatGry = game.ReplicatedStorage:WaitForChild("KomunikatGry")
-- Ilość czasu w sekundach do rozpoczęcia gry
local czasDoGry = game.ReplicatedStorage:WaitForChild("CzasDoGry")
-- Ilość czasu w sekundach przerwy pomiędzy falami
local czasPrzerwy = game.ReplicatedStorage:WaitForChild("CzasPrzerwy")
-- Ilość czasu w sekundach po rozgrywce
local czasPoGrze = game.ReplicatedStorage:WaitForChild("CzasPoGrze")
-- Odwołanie do folderu Zombiaki, w którym będą umieszczane wygenerowane zombie
local folderZombiaki = game.Workspace.Zombiaki
-- Odwołanie do modelu bossa
local boss = game.ReplicatedStorage:WaitForChild("Boss")


-- Pętla nieskończona
while true do
	-- Startowe odliczanie
	for i = czasDoGry.Value, 0, -1 do
		komunikatGry.Value = "Rozpoczęcie gry za " .. i 
	end
	-- Ustawienie licznika na wartość czasu rundy
	licznik = czasRundy.Value
	-- Ustawienie ilości zombiaków do wygenerowania (10)
	zombieDoWygenerowania.Value = 10
	-- Ustawienie ilości zombiaków do pokonania
	zombieDoPokonania.Value = 10
	-- Ustawienie numeru aktualnej fali
	aktualnaFala.Value = 1
	-- Aktywacja gry
	aktywnaGra.Value = true
	-- Powtarzaj (aż do momentu kiedy gra zostanie zakończona)
	repeat
		-- Jeżeli wartość licznika jest większa od 0
		if licznik.Value > 0 then
			-- Wyświetlanie informacji na temat aktualnego czasu rozgrywki
			komunikatGry.Value = "Pozostaly czas: " .. licznik.Value
			-- Czekaj sekundę
			wait(1)
			-- Zmniejsz licznik o jeden
			licznik -= 1
		else -- W przeciwnym razie
			-- Ustaw komunikat przegrana
			komunikatGry.Value = "Przegrana!!!"
			-- Usuń wszystkie zombiaki w folderze Zombiaki
			game.Workspace.Zombiaki:ClearAllChildren()
			-- Dezaktywacja gry
			aktywnaGra.Value = false
		end

		-- jeżeli wszystkie zombiaki zostają pokonane
		if zombieDoPokonania.Value == 0 then
			-- wartość aktualnej fali zostaje zwiększona
			aktualnaFala += 1
			-- pauza na przygotowanie do kolejnej fali
			if aktualnaFala.Value < finalnaFala.Value + 1 then
				-- petla odliczajaca czas przerwy i wyswietla komuniaktGry z informacja
				for i = czasPrzerwy.Value, 0, -1 do
					komunikatGry.Value = "Nastepna fala za: " .. i
					wait(1)
				end
			end
			-- ustawienie licznika na wartość czasu rundy
			licznik.Value = czasRundy.Value
			-- ustawienie ilości zombiaków do wygenerowania
			zombieDoWygenerowania = 10 * aktualnaFala
			-- ustawienie ilości zombiaków do pokonania
			zombieDoPokonania = 10 * aktualnaFala
			
			-- jeżeli fala jest falą finałową,
			if aktualnaFala.Value == finalnaFala.Value then 
				-- sklonuj bossa
				local newBoss = boss:Clone()
				-- ustawienie ilości zombiaków do wygenerowania
				zombieDoWygenerowania = 10 * aktualnaFala
				-- przypisz go do folderu z zombiakami (czyli do świata gry)
				newBoss.Parent = game.Workspace.Zombiaki
				-- zwiększ ilość zombiaków do pokonania o zombieDoWygenerownia + boss
				zombieDoPokonania = zombieDoWygenerowania + 1
			end
		else -- jeżeli wartość fali jest większa o jeden od finałowej wygrywamy grę.
			komunikatGry.Value = "Gratulacje, pojedynek wygrany!!!"
			aktywnaGra.Value = false
		end
	until aktywnaGra.Value == false
end