← Wszystkie poradniki
Poradnik 2

Zbuduj swój pierwszy tycoon

Dropper tworzy sześciany, taśma je przewozi, collector zamienia je na cash, a przycisk kupuje drugi dropper.

Za darmo60 minut · Dla początkujących · Roblox Studio
1
Krok 1 / 9

Przygotuj miejsce

  1. Otwórz Roblox Studio, kliknij New Experience i wybierz szablon Baseplate.
  2. W Explorer najedź na Workspace, kliknij + i dodaj Folder. Nazwij go Tycoon.
  3. Wszystko, co zbudujesz w tym poradniku, trafia do tego folderu. Dzięki temu w Explorer jest porządek.

Więcej szczegółów

  • Szablon Baseplate jest na liście szablonów na ekranie startowym.
  • Po kliknięciu + otworzy się lista. Wpisz słowo Folder, żeby szybko go znaleźć, i kliknij go.
  • Żeby zmienić nazwę folderu, kliknij go raz, naciśnij F2, wpisz Tycoon i naciśnij Enter.
  • Na Mac używaj klawisza Cmd za każdym razem, gdy poradnik mówi Ctrl.
Wskazówka. Zmieniaj nazwę każdego klocka zaraz po jego stworzeniu. Skrypty szukają klocków po nazwie, więc klocek, który nadal nazywa się Part, nie zadziała.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

2
Krok 2 / 9

Daj każdemu graczowi cash

  1. Najedź na ServerScriptService, kliknij + i dodaj Script. Nazwij go Leaderstats.
  2. Usuń linijkę, która już tam jest, i wklej ten kod.
  3. Naciśnij Play. Twoja nazwa pojawi się na liście graczy, a obok niej Cash 0.
ServerScriptService > Leaderstats
local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	local cash = Instance.new("IntValue")
	cash.Name = "Cash"
	cash.Value = 0
	cash.Parent = stats
end)

Co robi każda część

  • PlayerAdded uruchamia się raz dla każdego gracza, który dołącza.
  • Folder o nazwie leaderstats jest specjalny. Roblox pokazuje wartości z jego wnętrza na liście graczy.
  • IntValue przechowuje liczbę całkowitą. Tutaj przechowuje cash gracza.

Więcej szczegółów

  • ServerScriptService jest na liście w Explorer. Skrypty w nim działają na serwerze, gdzie gracze nie mogą ich zmienić.
  • Skrypt otwiera się w nowej karcie. Kliknij w kodzie, naciśnij Ctrl+A, a potem Ctrl+V, żeby wszystko zastąpić.
  • Wróć do swojego świata, klikając kartę z nazwą twojego miejsca.
  • Lista graczy jest w prawym górnym rogu gry. Naciśnij F5, żeby zacząć, i Shift+F5, żeby przerwać.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

3
Krok 3 / 9

Zbuduj dropper

  1. Dodaj Part do folderu Tycoon. Ustaw Size na 4, 1, 4, włącz Anchored i nazwij go Dropper.
  2. Podnieś go około 10 studs nad podłogę narzędziem Move (Ctrl+2).
  3. Dodaj do Dropper Script i wklej ten kod.
  4. Naciśnij Play. Co 2 sekundy spada żółty sześcian.
Dropper > Script
local Debris = game:GetService("Debris")
local dropper = script.Parent

while true do
	task.wait(2)

	local cube = Instance.new("Part")
	cube.Name = "Cube"
	cube.Size = Vector3.new(1.5, 1.5, 1.5)
	cube.Color = Color3.fromRGB(255, 200, 60)
	cube.Position = dropper.Position - Vector3.new(0, 2, 0)
	cube.Parent = workspace

	Debris:AddItem(cube, 20)
end

Co robi każda część

  • Instance.new tworzy z kodu nowy klocek.
  • Position umieszcza sześcian 2 studs pod dropperem.
  • Debris usuwa każdy sześcian po 20 sekundach, więc stare sześciany się nie gromadzą.

Więcej szczegółów

  • Żeby włożyć klocek do folderu, przeciągnij jego nazwę w Explorer na nazwę Tycoon.
  • Narzędziem Move przeciągnij zieloną strzałkę w górę. Pole Position w Properties pokazuje wysokość jako środkową liczbę.
  • Kostka pojawia się 2 studs pod dozownikiem i spada. Jeśli dozownik jest za nisko, kostki układają się pod nim w stos.
  • Pierwsza kostka przychodzi 2 sekundy po starcie gry.
Częsty błąd. Sześciany się nie pojawiają: sprawdź, czy skrypt jest w środku Dropper i czy Dropper ma włączone Anchored.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

4
Krok 4 / 9

Dodaj taśmę

  1. Dodaj Part, ustaw Size na 6, 1, 30, włącz Anchored i nazwij go Conveyor.
  2. Połóż go na podłodze tak, żeby jeden koniec był tuż pod dropperem.
  3. Dodaj do Conveyor Script i wklej ten kod.
  4. Naciśnij Play. Sześciany lądują na taśmie i jadą po niej.
Conveyor > Script
local conveyor = script.Parent

conveyor.AssemblyLinearVelocity = conveyor.CFrame.LookVector * 8

Co robi każda część

  • AssemblyLinearVelocity mówi Roblox, jak szybko mają się poruszać rzeczy leżące na klocku.
  • LookVector to kierunek, w którym patrzy przód klocka. Liczba 8 to prędkość w studs na sekundę.

Więcej szczegółów

  • Każdy klocek ma przód. Taśma pcha kostki w stronę swojego przodu.
  • Długi bok taśmy, ten o długości 30 studs, musi być skierowany od dozownika, w stronę miejsca, gdzie stanie zbieracz.
  • Sama taśma się nie rusza. Przesuwają się tylko rzeczy, które na niej leżą.
  • Jeśli kostki spadają bokiem, zrób taśmę szerszą albo przesuń dozownik na jej środek.
Częsty błąd. Sześciany jadą w złą stronę: obróć taśmę o 180 stopni narzędziem Rotate (Ctrl+4).
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

5
Krok 5 / 9

Zbieraj sześciany

  1. Dodaj Part na drugim końcu taśmy. Ustaw Size na 6, 4, 1, włącz Anchored, zrób go zielonym i nazwij go Collector.
  2. Ustaw go pionowo jak ścianę, żeby sześciany w niego wjeżdżały.
  3. Dodaj do Collector Script i wklej ten kod.
  4. Naciśnij Play. Każdy sześcian, który dojedzie do collectora, dodaje 5 do Cash.
Collector > Script
local Players = game:GetService("Players")
local collector = script.Parent

collector.Touched:Connect(function(hit)
	if hit.Name ~= "Cube" then return end
	hit:Destroy()

	for _, player in ipairs(Players:GetPlayers()) do
		local stats = player:FindFirstChild("leaderstats")
		if stats then
			stats.Cash.Value += 5
		end
	end
end)

Co robi każda część

  • Skrypt ignoruje wszystko, co nie nazywa się Cube. Twoje stopy się nie liczą.
  • Destroy usuwa sześcian z gry.
  • Pętla daje 5 cash każdemu graczowi na serwerze. Tycoon z jednym właścicielem na działkę to zaawansowana lekcja.

Więcej szczegółów

  • Size 6, 4, 1 już stoi pionowo: 6 szerokości, 4 wysokości i 1 grubości. Postaw go w poprzek końca taśmy jak zamkniętą bramę.
  • Jego dolna krawędź powinna dotykać taśmy, żeby żadna kostka nie prześliznęła się pod spodem.
  • Żeby był zielony, kliknij pole Color w Properties.
  • Test: naciśnij F5 i patrz na listę graczy. Cash rośnie o 5 za każdym razem, gdy kostka dotrze do ściany.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

6
Krok 6 / 9

Przygotuj drugi dropper

  1. Zaznacz Dropper i naciśnij Ctrl+D. Nazwij kopię Dropper2 i przesuń ją obok pierwszego, nadal nad taśmą.
  2. Przeciągnij Dropper2 z Workspace do ServerStorage.
  3. Znika ze świata. Obiekty w ServerStorage czekają tam, aż skrypt przeniesie je z powrotem.

Więcej szczegółów

  • Kopia stoi dokładnie na oryginale. Przeciągnij ją na bok narzędziem Move, żeby zobaczyć oba.
  • Zmień nazwę kopii klawiszem F2. Nazwa musi brzmieć Dropper2, z wielkim D i bez spacji.
  • ServerStorage jest na liście w Explorer. Przeciągnij na niego nazwę Dropper2.
  • Skrypt wewnątrz kopii poszedł razem z nią. Nie musisz dodawać go jeszcze raz.
Wskazówka. Skrypty w ServerStorage nie działają. Dlatego drugi dropper milczy, dopóki ktoś go nie kupi.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

7
Krok 7 / 9

Dodaj przycisk kupowania

  1. Dodaj Part na podłodze obok taśmy. Ustaw Size na 4, 1, 4, włącz Anchored, zrób go jasnoniebieskim i nazwij go BuyDropper.
  2. Dodaj do BuyDropper Script i wklej ten kod.
  3. Żeby podpisać przycisk, najedź na BuyDropper, kliknij + i dodaj BillboardGui. Ustaw jego Size na {0, 200}, {0, 50}, a StudsOffset na 0, 3, 0.
  4. Dodaj TextLabel do BillboardGui. Ustaw jego Size na {1, 0}, {1, 0}, włącz TextScaled i wpisz ten tekst: Second dropper - 50
BuyDropper > Script
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")

local button = script.Parent
local PRICE = 50
local bought = false

button.Touched:Connect(function(hit)
	if bought then return end

	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or stats.Cash.Value < PRICE then return end

	bought = true
	stats.Cash.Value -= PRICE
	ServerStorage.Dropper2.Parent = workspace
	button:Destroy()
end)

Co robi każda część

  • PRICE to koszt. Zmień liczbę, żeby przycisk był tańszy albo droższy.
  • Skrypt sprawdza, czy przycisk dotknął prawdziwy gracz i czy ma on dość cash.
  • Przeniesienie Dropper2 do workspace włącza go. Jego skrypt zaczyna działać od razu.

Więcej szczegółów

  • Gracze kupują, wchodząc na przycisk, więc połóż go na podłodze, tam gdzie łatwo go dosięgnąć.
  • Przy Size i StudsOffset kliknij pole w Properties, wpisz liczby dokładnie tak, jak pokazano, z nawiasami i przecinkami, i naciśnij Enter.
  • Text to właściwość obiektu TextLabel. Kliknij pole Text, wpisz słowa i naciśnij Enter.
  • Napis unosi się nad przyciskiem. Jeśli go nie widzisz, zwiększ środkową liczbę w StudsOffset.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

8
Krok 8 / 9

Przetestuj całą pętlę

  1. Naciśnij F5. Patrz, jak sześciany spadają, jadą po taśmie i zamieniają się w cash.
  2. Poczekaj, aż będziesz mieć 50 cash, a potem wejdź na niebieski przycisk.
  3. Pojawia się drugi dropper, przycisk znika, a twój cash rośnie dwa razy szybciej.
  4. Naciśnij Shift+F5, żeby zatrzymać grę. Jeśli coś nie działa, otwórz okno Output z menu Window i przeczytaj czerwony tekst.

Więcej szczegółów

  • Potrzeba 10 kostek, czyli co najmniej 20 sekund, żeby uzbierać 50 cash.
  • Po zakupie Cash spada o 50. To jest poprawne. Zapłaciłeś za dozownik.
  • Przycisk znika po zakupie, więc nie da się kupić dwa razy.
  • Jeśli drugi dozownik pojawi się w złym miejscu, zatrzymaj grę, przeciągnij Dropper2 z ServerStorage z powrotem do Workspace, przesuń go i przeciągnij znów do ServerStorage.
Częsty błąd. Cash się nie zmienia: spadające klocki muszą nazywać się Cube, dokładnie tak jak w skrypcie droppera.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

9
Krok 9 / 9

Opublikuj grę

  1. Wybierz File → Publish to Roblox. Nadaj grze nazwę i krótki opis.
  2. Na stronie Creator Hub otwórz swoją grę i wypełnij ankietę Maturity.
  3. Ustaw grę jako Public i wyślij link koledze lub koleżance.

Więcej szczegółów

  • Gdy publikujesz pierwszy raz, Studio pyta o nazwę i opis. Kliknij Create.
  • Creator Hub to strona create.roblox.com. Zaloguj się na to samo konto i kliknij swoją grę na liście.
  • Roblox może poprosić o więcej, zanim gra będzie publiczna, na przykład o weryfikację wieku na koncie. Strona powie ci, czego brakuje.
  • Jeśli masz mniej niż 18 lat, zrób ten krok razem z rodzicem.
Wskazówka. Postępy nie są jeszcze zapisywane. Gdy gracz wychodzi, jego cash przepada. Zapisywanie danych to zaawansowana lekcja.
Ten krok mi nie działa

Najpierw sprawdź te trzy rzeczy

  • Nazwa każdego klocka i skryptu jest dokładnie taka jak w poradniku, z tymi samymi wielkimi literami.
  • Skrypt jest w odpowiednim obiekcie. Spójrz na podpis nad polem z kodem.
  • Otwórz okno Output z menu Window. Czerwony tekst pokazuje skrypt i linijkę, w której jest problem.

Nadal nie działa? Napisz do nas →

Teraz zmień to sam

  • Spraw, żeby każdy sześcian był wart 10 cash zamiast 5.
  • Dodaj trzeci dropper, który kosztuje 200 cash.
  • Zrób drugi dropper szybszy niż pierwszy. Którą liczbę zmienisz?