← Wszystkie poradniki
Poradnik 5

Zbuduj swoją pierwszą grę kradnij i broń

Każdy gracz dostaje bazę. Złap gem ze środka, zanieś go do domu, żeby zdobyć punkt, i oznacz każdego, kto go niesie.

Za darmo70 minut · Dla początkujących, ostatni poradnik · Roblox Studio
1
Krok 1 / 8

Przygotuj miejsce

  1. Otwórz Roblox Studio, kliknij New Experience i wybierz szablon Baseplate.
  2. Gem będzie leżał na środku mapy. Wokół niego staną cztery bazy, każda około 60 studs od środka.
  3. Ta gra potrzebuje co najmniej dwóch graczy, więc na końcu przetestujesz ją z dwoma testowymi graczami.

Więcej szczegółów

  • Szablon Baseplate jest na liście szablonów na ekranie startowym.
  • Pole Position w Properties pokazuje, gdzie stoi klocek. Position 60, 0.5, 0 to 60 studs od środka mapy.
  • Przesuń SpawnLocation, platformę, na której pojawiają się gracze, blisko środka, żeby każdy gracz zaczynał w takiej samej odległości od klejnotu.
  • Na Mac używaj klawisza Cmd za każdym razem, gdy poradnik mówi Ctrl.
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 / 8

Zbuduj bazy

  1. W Explorer najedź na Workspace, kliknij + i dodaj Folder. Nazwij go Bases.
  2. Dodaj Part. Ustaw Size na 16, 1, 16, włącz Anchored i zrób go szarym. Przeciągnij go do Bases i nazwij Base1.
  3. Skopiuj go trzy razy przez Ctrl+D. Nazwij kopie Base2, Base3 i Base4 i przesuń po jednej na każdą stronę mapy.

Więcej szczegółów

  • Żeby włożyć klocek do folderu, przeciągnij jego nazwę w Explorer na nazwę Bases.
  • Kopie zrobione przez Ctrl+D są już w folderze Bases. Zmień nazwę każdej klawiszem F2.
  • Nazwy muszą brzmieć dokładnie Base1, Base2, Base3 i Base4, bez spacji przed cyfrą.
  • Na serwerze z więcej niż czterema graczami jest więcej graczy niż baz. Później możesz ustawić wielkość serwera na 4 w ustawieniach gry w Creator Hub.
Wskazówka. Trzymaj wszystkie cztery bazy w tej samej odległości od środka. Wtedy gra jest sprawiedliwa dla wszystkich.
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 / 8

Stwórz gem

  1. Dodaj Part na środku mapy, około 4 studs nad podłogą. Ustaw Size na 2, 2, 2, wybierz jasny kolor i ustaw Material na Neon. Nazwij go Gem.
  2. Włącz Anchored i Massless, a wyłącz CanCollide.
  3. Najedź na Gem, kliknij + i dodaj ProximityPrompt. Ustaw ActionText na Take, a HoldDuration na 1.

Co robi każda część

  • ProximityPrompt pokazuje przycisk, gdy gracz stoi blisko. Przytrzymanie go przez 1 sekundę uruchamia akcję.
  • Włączone Massless i wyłączone CanCollide sprawiają, że gem nie spowalnia ani nie popycha gracza, który go niesie.

Więcej szczegółów

  • Anchored, Massless i CanCollide to pola wyboru w Properties.
  • Po kliknięciu + wpisz ProximityPrompt, żeby go znaleźć. Kliknij go, a potem w Properties zmień ActionText i HoldDuration.
  • W grze mały przycisk z literą E i słowem Take pojawia się, gdy stoisz blisko klejnotu.
  • Na telefonie gracze przytrzymują palec na tym przycisku.
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 / 8

Daj każdemu graczowi bazę i wynik

  1. Najedź na ServerScriptService, kliknij + i dodaj Script. Nazwij go Game.
  2. Usuń linijkę, która już tam jest, i wklej ten kod. To pierwsza z trzech części.
  3. Naciśnij Play. Jedna baza robi się zielona. To jest twoja.
ServerScriptService > Game (1 / 3)
local Players = game:GetService("Players")

local bases = workspace:WaitForChild("Bases")
local gem = workspace:WaitForChild("Gem")
local home = gem.CFrame
local carrier = nil

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

	local score = Instance.new("IntValue")
	score.Name = "Score"
	score.Parent = stats

	for _, base in ipairs(bases:GetChildren()) do
		if base:GetAttribute("Owner") == nil then
			base:SetAttribute("Owner", player.UserId)
			base.Color = Color3.fromRGB(60, 220, 120)
			break
		end
	end
end)

Players.PlayerRemoving:Connect(function(player)
	for _, base in ipairs(bases:GetChildren()) do
		if base:GetAttribute("Owner") == player.UserId then
			base:SetAttribute("Owner", nil)
			base.Color = Color3.fromRGB(160, 160, 160)
		end
	end
end)

Co robi każda część

  • Pierwsze linijki znajdują bazy i gem oraz zapamiętują, gdzie gem stał na początku.
  • SetAttribute zapisuje UserId właściciela na pierwszej wolnej bazie.
  • PlayerRemoving zwalnia bazę z powrotem, gdy jej właściciel wychodzi.

Więcej szczegółów

  • Skrypt otwiera się w nowej karcie. Kliknij w kodzie, naciśnij Ctrl+A, a potem Ctrl+V, żeby wszystko zastąpić.
  • To, która baza zrobi się zielona, zależy od kolejności baz w folderze. Pochodź po mapie, żeby znaleźć swoją.
  • Lista graczy w prawym górnym rogu pokazuje Score 0.
  • Na razie nic się nie dzieje, gdy podejdziesz do klejnotu i przytrzymasz E. To będzie w następnym kroku.
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 / 8

Pozwól graczom brać gem

  1. Otwórz skrypt Game jeszcze raz.
  2. Wklej ten kod pod kodem z poprzedniego kroku.
  3. Naciśnij Play, podejdź do gema i przytrzymaj E. Gem skacze nad twoją głowę i podąża za tobą.
ServerScriptService > Game (2 / 3)
local function resetGem()
	carrier = nil

	local weld = gem:FindFirstChild("CarryWeld")
	if weld then
		weld:Destroy()
	end

	gem.Anchored = true
	gem.CFrame = home
	gem.ProximityPrompt.Enabled = true
end

gem.ProximityPrompt.Triggered:Connect(function(player)
	local character = player.Character
	local root = character and character:FindFirstChild("HumanoidRootPart")
	if carrier or not root then return end

	carrier = player
	gem.ProximityPrompt.Enabled = false
	gem.Anchored = false
	gem.CFrame = root.CFrame * CFrame.new(0, 4, 0)

	local weld = Instance.new("WeldConstraint")
	weld.Name = "CarryWeld"
	weld.Part0 = root
	weld.Part1 = gem
	weld.Parent = gem
end)

Co robi każda część

  • carrier pamięta, kto trzyma gem. Nikt inny nie może go wziąć, gdy ktoś go niesie.
  • WeldConstraint przykleja gem do gracza, więc porusza się razem z nim.
  • resetGem usuwa połączenie i odkłada gem na środek.

Więcej szczegółów

  • Żeby znów otworzyć skrypt, kliknij dwa razy Game w Explorer.
  • Kliknij za ostatnim znakiem kodu i naciśnij Enter dwa razy. Potem naciśnij Ctrl+V. Tym razem nie naciskaj Ctrl+A, bo zastąpisz pierwszą część.
  • Klejnot unosi się 4 studs nad twoją głową, gdy go niesiesz.
  • Test: weź klejnot i sprawdź, że przycisk Take znika na tak długo, jak go niesiesz.
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 / 8

Dodaj punktowanie i oznaczanie

  1. Wklej tę ostatnią część na samym końcu skryptu Game.
  2. Naciśnij Play, weź gem i wbiegnij na swoją zieloną bazę. Score rośnie o 1, a gem wraca na środek.
ServerScriptService > Game (3 / 3)
for _, base in ipairs(bases:GetChildren()) do
	base.Touched:Connect(function(hit)
		local player = Players:GetPlayerFromCharacter(hit.Parent)
		if player and player == carrier and base:GetAttribute("Owner") == player.UserId then
			player.leaderstats.Score.Value += 1
			resetGem()
		end
	end)
end

while true do
	task.wait(0.2)

	if carrier then
		local weld = gem:FindFirstChild("CarryWeld")
		local root = weld and weld.Part0
		local character = root and root.Parent
		local humanoid = character and character:FindFirstChildOfClass("Humanoid")

		if not humanoid or humanoid.Health <= 0 or root.Position.Y < -20 then
			resetGem()
		else
			for _, other in ipairs(Players:GetPlayers()) do
				local otherRoot = other ~= carrier and other.Character and other.Character:FindFirstChild("HumanoidRootPart")
				if otherRoot and (otherRoot.Position - root.Position).Magnitude < 5 then
					resetGem()
					break
				end
			end
		end
	end
end

Co robi każda część

  • Każda baza sprawdza trzy rzeczy: czy dotknął jej gracz, czy ten gracz niesie gem i czy baza należy do niego.
  • Pętla na dole uruchamia się 5 razy na sekundę. Jeśli inny gracz zbliży się do niosącego na mniej niż 5 studs, gem wraca na miejsce.
  • Pętla resetuje też gem, jeśli niosący wyjdzie z gry albo spadnie z mapy.

Więcej szczegółów

  • Znów kliknij za ostatnim znakiem skryptu, naciśnij Enter dwa razy i wklej.
  • Gotowy skrypt ma trzy części w tej kolejności: bazy i punkty, branie klejnotu, punktowanie i oznaczanie.
  • Szara baza, która do nikogo nie należy, nie daje punktów. Liczy się tylko twoja własna zielona baza.
  • Sam nie przetestujesz oznaczania. Zrobisz to w następnym kroku z dwoma graczami.
Częsty błąd. Wklejenie tej części w środku skryptu. Pętla while nigdy się nie kończy, więc kod pod nią nigdy się nie uruchomi.
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 / 8

Testuj z dwoma graczami

  1. Obok przycisku Play otwórz małe menu i wybierz Server & Clients. Ustaw liczbę graczy na 2 i naciśnij Play.
  2. Studio otwiera dwa okna gry. Każde to inny gracz z inną bazą.
  3. W jednym oknie weź gem. W drugim wbiegnij w tego gracza. Gem wraca na środek.
  4. Zakończ test czerwonym przyciskiem Stop w głównym oknie Studio, a potem przełącz menu z powrotem na Test.

Więcej szczegółów

  • Małe menu to strzałka tuż obok przycisku Play na górze Studio.
  • Dwa okna gry otwierają się jedno na drugim. Odsuń jedno na bok, żeby widzieć oba.
  • Kliknij w okno, zanim użyjesz klawiatury. Klawisze trafiają do okna, które kliknąłeś jako ostatnie.
  • Testowanie w dwóch oknach wymaga komputera z wystarczającą ilością pamięci. Jeśli jest bardzo wolno, najpierw zamknij inne programy.
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 / 8

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. Ta gra jest fajna tylko z innymi graczami. Zaproś dwóch lub trzech znajomych na ten sam serwer na pierwszy mecz.
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

  • Zakończ rundę, gdy gracz zdobędzie 5 punktów, i ustaw wszystkie wyniki z powrotem na 0.
  • Dodaj drugi gem w innym kolorze.
  • Spowolnij niosącego. Podpowiedź: ustaw Humanoid.WalkSpeed na 12, gdy gem zostanie wzięty, i z powrotem na 16 w resetGem.