← Összes útmutató
5. útmutató

Építsd meg az első lopd-el-és-védd-meg játékodat

Minden játékos kap egy bázist. Ragadd meg az ékszert középen, vidd haza a pontért, és találd el bárkit, aki viszi.

Ingyenes70 perc · Kezdő, utolsó útmutató · Roblox Studio
1
Lépés 1 / 8

Készítsd elő a pályát

  1. Nyisd meg a Roblox Studio-t, kattints a New Experience gombra, és válaszd a Baseplate sablont.
  2. Az ékszer a térkép közepén lesz. Négy bázis áll majd körülötte, mindegyik kb. 60 studra a közepétől.
  3. Ehhez a játékhoz legalább két játékos kell, ezért a végén két tesztjátékossal fogod kipróbálni.

További részletek

  • A Baseplate sablon a kezdőképernyő sablonlistájában van.
  • A Properties panel Position mezője megmutatja, hol van egy Part. A Position 60, 0.5, 0 a térkép közepétől 60 stud-ra van.
  • Told a középhez közel a SpawnLocation nevű platformot, ahol a játékosok megjelennek, hogy minden játékos ugyanakkora távolságról induljon az ékkőhöz.
  • Mac-en használd a Cmd billentyűt minden alkalommal, amikor az útmutató Ctrl-t mond.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

2
Lépés 2 / 8

Építsd meg a bázisokat

  1. Az Explorer-ben vidd az egeret a Workspace fölé, kattints a + gombra, és adj hozzá egy Folder-t. Nevezd el Bases-nek.
  2. Adj hozzá egy Part-ot. Állítsd a Size értékét 16, 1, 16-ra, kapcsold be az Anchored-et, és legyen szürke. Húzd a Bases-be, és nevezd el Base1-nek.
  3. Másold háromszor a Ctrl+D billentyűkkel. Nevezd el a másolatokat Base2, Base3 és Base4 névre, és told őket a térkép egy-egy oldalára.

További részletek

  • Ha a Part-ot a Folder-be akarod tenni, húzd a nevét az Explorer-ben a Bases névre.
  • A Ctrl+D-vel készített másolatok már a Bases Folder-ben vannak. Nevezd át mindegyiket az F2-vel.
  • A neveknek pontosan Base1, Base2, Base3 és Base4 kell lenniük, a szám előtt szóköz nélkül.
  • Egy négynél több játékosos szerveren több a játékos, mint a bázis. Később a Creator Hub-on, a játék beállításaiban 4-re állíthatod a szerver méretét.
Tipp. Mind a négy bázis ugyanolyan messze legyen a középtől. Akkor a játék mindenkinek igazságos.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

3
Lépés 3 / 8

Hozd létre az ékszert

  1. Adj hozzá egy Part-ot a térkép közepén, kb. 4 studdal a padló fölött. Állítsd a Size értékét 2, 2, 2-re, válassz élénk színt, és állítsd a Material értékét Neon-ra. Nevezd el Gem-nek.
  2. Kapcsold be az Anchored-et és a Massless-t, és kapcsold ki a CanCollide-ot.
  3. Vidd az egeret a Gem fölé, kattints a + gombra, és adj hozzá egy ProximityPrompt-ot. Állítsd az ActionText értékét Take-re, a HoldDuration értékét 1-re.

Mit csinál az egyes rész

  • A ProximityPrompt egy gombot mutat, amikor egy játékos közel áll. Ha 1 másodpercig nyomva tartja, működésbe lép.
  • A bekapcsolt Massless és a kikapcsolt CanCollide miatt az ékszer nem lassítja és nem tolja el azt a játékost, aki viszi.

További részletek

  • Az Anchored, a Massless és a CanCollide jelölőnégyzetek a Properties panelen.
  • Amikor a + gombra kattintasz, írd be, hogy ProximityPrompt, hogy megtaláld. Kattints rá, aztán a Properties panelen változtasd az ActionText és a HoldDuration értékét.
  • A játékban egy kis gomb jelenik meg az E betűvel és a Take szóval, amikor az ékkő közelében állsz.
  • Telefonon a játékosok az ujjukat tartják azon a gombon.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

4
Lépés 4 / 8

Adj minden játékosnak bázist és pontszámot

  1. Vidd az egeret a ServerScriptService fölé, kattints a + gombra, és adj hozzá egy Script-et. Nevezd el Game-nek.
  2. Töröld ki a már ott lévő sort, és illeszd be ezt a kódot. Ez a három rész közül az első.
  3. Nyomd meg a Play gombot. Egy bázis zöldre vált. Ez a tiéd.
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)

Mit csinál az egyes rész

  • Az első sorok megkeresik a bázisokat és az ékszert, és megjegyzik, hol volt az ékszer kezdetben.
  • A SetAttribute ráírja a tulajdonos UserId értékét az első szabad bázisra.
  • A PlayerRemoving újra felszabadítja a bázist, amikor a tulajdonosa kilép.

További részletek

  • A szkript új lapon nyílik meg. Kattints a kódba, nyomd meg a Ctrl+A-t, majd a Ctrl+V-t, hogy mindent lecserélj.
  • Hogy melyik bázis lesz zöld, az a bázisok sorrendjétől függ a Folder-ben. Sétálj körbe, hogy megtaláld a sajátodat.
  • A játékoslista a jobb felső sarokban Score 0-t mutat.
  • Egyelőre nem történik semmi, ha az ékkőhöz sétálsz, és nyomva tartod az E-t. Ez a következő lépésben jön.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

5
Lépés 5 / 8

Engedd, hogy a játékosok elvegyék az ékszert

  1. Nyisd meg újra a Game szkriptet.
  2. Illeszd be ezt a kódot az előző lépés kódja alá.
  3. Nyomd meg a Play gombot, menj az ékszerhez, és tartsd lenyomva az E billentyűt. Az ékszer a fejed fölé ugrik, és követ téged.
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)

Mit csinál az egyes rész

  • A carrier megjegyzi, ki tartja az ékszert. Amíg viszik, senki más nem veheti el.
  • A WeldConstraint hozzáragasztja az ékszert a játékoshoz, így vele mozog.
  • A resetGem eltávolítja a hegesztést, és visszateszi az ékszert a közepére.

További részletek

  • A szkript újbóli megnyitásához kattints duplán a Game-re az Explorer-ben.
  • Kattints a kód legutolsó karaktere után, és nyomd meg kétszer az Enter-t. Aztán nyomd meg a Ctrl+V-t. Ezúttal ne nyomd meg a Ctrl+A-t, különben lecseréled az első részt.
  • Az ékkő 4 stud-dal a fejed fölött lebeg, amíg viszed.
  • A teszteléshez vedd fel az ékkövet, aztán ellenőrizd, hogy a Take gomb eltűnik, amíg viszed.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

6
Lépés 6 / 8

Add hozzá a pontozást és a találatot

  1. Illeszd be ezt az utolsó részt a Game szkript legvégére.
  2. Nyomd meg a Play gombot, vedd el az ékszert, és fuss a zöld bázisodra. A Score 1-gyel nő, és az ékszer visszatér a közepére.
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

Mit csinál az egyes rész

  • Minden bázis három dolgot ellenőriz: egy játékos megérintette, az a játékos viszi az ékszert, és a bázis hozzá tartozik.
  • Az alul lévő ciklus másodpercenként 5-ször fut le. Ha egy másik játékos 5 studnál közelebb kerül a vivőhöz, az ékszer visszamegy.
  • A ciklus akkor is visszaállítja az ékszert, ha a vivő kilép a játékból, vagy leesik a térképről.

További részletek

  • Kattints újra a szkript legutolsó karaktere után, nyomd meg kétszer az Enter-t, és illeszd be.
  • A kész szkriptnek három része van ebben a sorrendben: a bázisok és a pontszám, az ékkő felvétele, valamint a pontszerzés és a megcímkézés.
  • Egy szürke bázis, amely senkié, nem ad pontot. Csak a saját zöld bázisod számít.
  • Egyedül nem tudod kipróbálni a megcímkézést. Ezt két játékossal teszed meg a következő lépésben.
Gyakori hiba. Ezt a részt a szkript közepébe illeszted be. A while ciklus sosem ér véget, ezért az alatta lévő kód sosem fut le.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

7
Lépés 7 / 8

Tesztelj két játékossal

  1. A Play gomb mellett nyisd meg a kis menüt, és válaszd a Server & Clients lehetőséget. Állítsd a játékosok számát 2-re, és nyomd meg a Play gombot.
  2. A Studio két játékablakot nyit. Mindegyik egy másik játékos, más bázissal.
  3. Vedd el az ékszert az egyik ablakban. A másik ablakban fuss neki annak a játékosnak. Az ékszer visszamegy a közepére.
  4. Állítsd le a tesztet a piros Stop gombbal a fő Studio ablakban, aztán állítsd vissza a menüt Test-re.

További részletek

  • A kis menü a nyíl a Play gomb mellett, a Studio tetején.
  • A két játékablak egymás tetején nyílik meg. Told félre az egyiket, hogy mindkettőt lásd.
  • Kattints az ablakba, mielőtt a billentyűzetet használod. A billentyűk abba az ablakba mennek, amelyikre utoljára kattintottál.
  • A két ablakos teszteléshez elég memóriával rendelkező számítógép kell. Ha nagyon lassú, előbb zárj be más programokat.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

8
Lépés 8 / 8

Add ki

  1. Válaszd a File → Publish to Roblox parancsot. Adj a játéknak egy nevet és egy rövid leírást.
  2. A Creator Hub weboldalon nyisd meg a játékodat, és töltsd ki a Maturity kérdőívet.
  3. Állítsd a játékot Public-ra, és küldd el a linket egy barátodnak.

További részletek

  • Amikor először teszed közzé, a Studio nevet és leírást kér. Kattints a Create gombra.
  • A Creator Hub a create.roblox.com weboldal. Jelentkezz be ugyanazzal a fiókkal, és kattints a játékodra a listában.
  • A Roblox többet is kérhet, mielőtt egy játék nyilvános lehet, például a fiók életkor-ellenőrzését. Az oldal megmondja, mi hiányzik.
  • Ha 18 évesnél fiatalabb vagy, ezt a lépést egy szülővel együtt csináld.
Tipp. Ez a játék csak más játékosokkal szórakoztató. Hívj meg két-három barátodat ugyanarra a szerverre az első meccshez.
Ez a lépés nem megy nekem

Először ezt a három dolgot ellenőrizd

  • Minden Part és szkript neve pontosan olyan, mint az útmutatóban, ugyanazokkal a nagybetűkkel.
  • A szkript a megfelelő objektumban van. Nézd meg a kódmező feletti feliratot.
  • Nyisd meg az Output ablakot a Window menüből. A piros szöveg megmutatja a szkriptet és a hibás sort.

Még mindig elakadtál? Írj nekünk →

Most írd át magad

  • Fejezd be a kört, amikor egy játékos eléri az 5 pontot, és állítsd vissza minden pontszámot 0-ra.
  • Adj hozzá egy második ékszert más színnel.
  • Lassítsd le a vivőt. Segítség: állítsd a Humanoid.WalkSpeed értékét 12-re, amikor az ékszert elveszik, és vissza 16-ra a resetGem-ben.