← Όλοι οι οδηγοί
Οδηγός 5

Φτιάξε το πρώτο σου παιχνίδι κλέψε-και-υπερασπίσου

Κάθε παίκτης έχει μια βάση. Πάρε το πετράδι από τη μέση, τρέξε το σπίτι για να βγάλεις πόντους και κάνε tag σε όποιον το κουβαλά.

Δωρεάν70 λεπτά · Αρχάριος, τελευταίος οδηγός · Roblox Studio
1
Βήμα 1 / 8

Ετοίμασε το place

  1. Άνοιξε το Roblox Studio, κάνε κλικ στο New Experience και διάλεξε το πρότυπο Baseplate.
  2. Το πετράδι θα βρίσκεται στη μέση του χάρτη. Τέσσερις βάσεις θα το περιτριγυρίζουν, η καθεμία περίπου 60 studs από το κέντρο.
  3. Αυτό το παιχνίδι χρειάζεται τουλάχιστον δύο παίκτες, γι' αυτό στο τέλος θα το δοκιμάσεις με δύο παίκτες δοκιμής.

Περισσότερες λεπτομέρειες

  • Το πρότυπο Baseplate βρίσκεται στη λίστα με τα πρότυπα στην αρχική οθόνη.
  • Το πεδίο Position στο Properties δείχνει πού βρίσκεται ένα Part. Το Position 60, 0.5, 0 απέχει 60 studs από τη μέση του χάρτη.
  • Μετακίνησε το SpawnLocation, την πλατφόρμα όπου εμφανίζονται οι παίκτες, κοντά στη μέση, ώστε κάθε παίκτης να ξεκινά από την ίδια απόσταση από το πετράδι.
  • Σε Mac, χρησιμοποίησε το πλήκτρο Cmd κάθε φορά που ο οδηγός λέει Ctrl.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

2
Βήμα 2 / 8

Φτιάξε τις βάσεις

  1. Στο Explorer πέρασε το ποντίκι πάνω από το Workspace, κάνε κλικ στο + και πρόσθεσε ένα Folder. Ονόμασέ το Bases.
  2. Πρόσθεσε ένα Part. Βάλε Size 16, 1, 16, ενεργοποίησε το Anchored και κάν' το γκρι. Σύρε το μέσα στο Bases και ονόμασέ το Base1.
  3. Αντίγραψέ το τρεις φορές με Ctrl+D. Ονόμασε τα αντίγραφα Base2, Base3 και Base4 και μετακίνησε ένα σε κάθε πλευρά του χάρτη.

Περισσότερες λεπτομέρειες

  • Για να βάλεις το Part μέσα στον φάκελο, τράβηξε το όνομά του στο Explorer πάνω στο όνομα Bases.
  • Τα αντίγραφα που φτιάχνονται με Ctrl+D βρίσκονται ήδη μέσα στον φάκελο Bases. Μετονόμασε το καθένα με F2.
  • Τα ονόματα πρέπει να είναι ακριβώς Base1, Base2, Base3 και Base4, χωρίς κενό πριν από τον αριθμό.
  • Ένας server με περισσότερους από τέσσερις παίκτες έχει περισσότερους παίκτες από βάσεις. Αργότερα μπορείς να βάλεις το μέγεθος του server στο 4 από τις ρυθμίσεις του παιχνιδιού στο Creator Hub.
Συμβουλή. Κράτα και τις τέσσερις βάσεις στην ίδια απόσταση από το κέντρο. Έτσι το παιχνίδι είναι δίκαιο για όλους.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

3
Βήμα 3 / 8

Δημιούργησε το πετράδι

  1. Πρόσθεσε ένα Part στη μέση του χάρτη, περίπου 4 studs πάνω από το δάπεδο. Βάλε Size 2, 2, 2, διάλεξε ένα έντονο χρώμα και βάλε Material σε Neon. Ονόμασέ το Gem.
  2. Ενεργοποίησε το Anchored και το Massless και απενεργοποίησε το CanCollide.
  3. Πέρασε το ποντίκι πάνω από το Gem, κάνε κλικ στο + και πρόσθεσε ένα ProximityPrompt. Βάλε το ActionText σε Take και το HoldDuration σε 1.

Τι κάνει κάθε κομμάτι

  • Ένα ProximityPrompt δείχνει ένα κουμπί όταν ένας παίκτης στέκεται κοντά. Αν το κρατήσεις πατημένο για 1 δευτερόλεπτο, ενεργοποιείται.
  • Το Massless ενεργό και το CanCollide κλειστό εμποδίζουν το πετράδι να επιβραδύνει ή να σπρώχνει τον παίκτη που το κουβαλά.

Περισσότερες λεπτομέρειες

  • Τα Anchored, Massless και CanCollide είναι τετραγωνάκια στο Properties.
  • Όταν κάνεις κλικ στο +, γράψε ProximityPrompt για να το βρεις. Κάνε κλικ πάνω του και μετά άλλαξε τα ActionText και HoldDuration στο Properties.
  • Μέσα στο παιχνίδι, ένα μικρό κουμπί με το γράμμα E και τη λέξη Take εμφανίζεται όταν στέκεσαι κοντά στο πετράδι.
  • Σε κινητό, οι παίκτες κρατούν το δάχτυλό τους πατημένο πάνω σε αυτό το κουμπί.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

4
Βήμα 4 / 8

Δώσε σε κάθε παίκτη βάση και σκορ

  1. Πέρασε το ποντίκι πάνω από το ServerScriptService, κάνε κλικ στο + και πρόσθεσε ένα Script. Ονόμασέ το Game.
  2. Σβήσε τη γραμμή που υπάρχει ήδη και επικόλλησε αυτόν τον κώδικα. Είναι το πρώτο από τρία κομμάτια.
  3. Πάτα Play. Μία βάση γίνεται πράσινη. Αυτή είναι δική σου.
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)

Τι κάνει κάθε κομμάτι

  • Οι πρώτες γραμμές βρίσκουν τις βάσεις και το πετράδι και θυμούνται πού ξεκίνησε το πετράδι.
  • Το SetAttribute γράφει το UserId του ιδιοκτήτη πάνω στην πρώτη ελεύθερη βάση.
  • Το PlayerRemoving ελευθερώνει ξανά τη βάση όταν φεύγει ο ιδιοκτήτης της.

Περισσότερες λεπτομέρειες

  • Το script ανοίγει σε νέα καρτέλα. Κάνε κλικ μέσα στον κώδικα, πάτα Ctrl+A και μετά Ctrl+V για να αντικαταστήσεις τα πάντα.
  • Ποια βάση γίνεται πράσινη εξαρτάται από τη σειρά των βάσεων μέσα στον φάκελο. Κάνε μια βόλτα για να βρεις τη δική σου.
  • Η λίστα παικτών πάνω δεξιά δείχνει Score 0.
  • Δεν γίνεται τίποτα ακόμα όταν πηγαίνεις στο πετράδι και κρατάς πατημένο το E. Αυτό έρχεται στο επόμενο βήμα.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

5
Βήμα 5 / 8

Άσε τους παίκτες να πάρουν το πετράδι

  1. Άνοιξε ξανά το script Game.
  2. Επικόλλησε αυτόν τον κώδικα κάτω από τον κώδικα του προηγούμενου βήματος.
  3. Πάτα Play, περπάτα ως το πετράδι και κράτα πατημένο το E. Το πετράδι πηδάει πάνω από το κεφάλι σου και σε ακολουθεί.
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)

Τι κάνει κάθε κομμάτι

  • Το carrier θυμάται ποιος κρατά το πετράδι. Κανείς άλλος δεν μπορεί να το πάρει όσο το κουβαλά κάποιος.
  • Ένα WeldConstraint κολλάει το πετράδι στον παίκτη, ώστε να κινείται μαζί του.
  • Το resetGem αφαιρεί την κόλληση και βάζει το πετράδι πίσω στη μέση.

Περισσότερες λεπτομέρειες

  • Για να ανοίξεις ξανά το script, κάνε διπλό κλικ στο Game στο Explorer.
  • Κάνε κλικ μετά τον τελευταίο χαρακτήρα του κώδικα και πάτα Enter δύο φορές. Μετά πάτα Ctrl+V. Μην πατήσεις Ctrl+A αυτή τη φορά, αλλιώς αντικαθιστάς το πρώτο κομμάτι.
  • Το πετράδι αιωρείται 4 studs πάνω από το κεφάλι σου όσο το κουβαλάς.
  • Για δοκιμή: πάρε το πετράδι και έλεγξε ότι το κουμπί Take λείπει όσο το κουβαλάς.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

6
Βήμα 6 / 8

Πρόσθεσε σκορ και tag

  1. Επικόλλησε αυτό το τελευταίο κομμάτι στο ίδιο το τέλος του script Game.
  2. Πάτα Play, πάρε το πετράδι και τρέξε πάνω στην πράσινη βάση σου. Το Score ανεβαίνει κατά 1 και το πετράδι γυρίζει στη μέση.
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

Τι κάνει κάθε κομμάτι

  • Κάθε βάση ελέγχει τρία πράγματα: ότι την άγγιξε ένας παίκτης, ότι ο παίκτης κουβαλά το πετράδι και ότι η βάση ανήκει σε αυτόν.
  • Ο βρόχος στο τέλος τρέχει 5 φορές το δευτερόλεπτο. Αν κάποιος άλλος παίκτης πλησιάσει τον κομιστή σε απόσταση μικρότερη από 5 studs, το πετράδι γυρίζει πίσω.
  • Ο βρόχος επαναφέρει το πετράδι και αν ο κομιστής φύγει από το παιχνίδι ή πέσει έξω από τον χάρτη.

Περισσότερες λεπτομέρειες

  • Κάνε ξανά κλικ μετά τον τελευταίο χαρακτήρα του script, πάτα Enter δύο φορές και επικόλλησε.
  • Το έτοιμο script έχει τρία μέρη με αυτή τη σειρά: βάσεις και σκορ, πάρσιμο του πετραδιού, πόντοι και tag.
  • Μια γκρι βάση που δεν ανήκει σε κανέναν δεν δίνει πόντους. Μετράει μόνο η δική σου πράσινη βάση.
  • Μόνος σου δεν μπορείς να δοκιμάσεις το tag. Θα το κάνεις με δύο παίκτες στο επόμενο βήμα.
Συνηθισμένο λάθος. Να επικολλήσεις αυτό το κομμάτι στη μέση του script. Ο βρόχος while δεν τελειώνει ποτέ, οπότε ο κώδικας που βρίσκεται κάτω από αυτόν δεν τρέχει ποτέ.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

7
Βήμα 7 / 8

Δοκίμασε με δύο παίκτες

  1. Δίπλα στο κουμπί Play άνοιξε το μικρό μενού και διάλεξε Server & Clients. Βάλε τον αριθμό των παικτών σε 2 και πάτα Play.
  2. Το Studio ανοίγει δύο παράθυρα παιχνιδιού. Το καθένα είναι ένας διαφορετικός παίκτης με διαφορετική βάση.
  3. Πάρε το πετράδι σε ένα παράθυρο. Στο άλλο παράθυρο τρέξε πάνω σε αυτόν τον παίκτη. Το πετράδι γυρίζει στη μέση.
  4. Σταμάτα τη δοκιμή με το κόκκινο κουμπί Stop στο κύριο παράθυρο του Studio και μετά γύρνα το μενού πίσω στο Test.

Περισσότερες λεπτομέρειες

  • Το μικρό μενού είναι το βέλος ακριβώς δίπλα στο κουμπί Play στο πάνω μέρος του Studio.
  • Τα δύο παράθυρα του παιχνιδιού ανοίγουν το ένα πάνω στο άλλο. Τράβηξε το ένα στο πλάι για να βλέπεις και τα δύο.
  • Κάνε κλικ μέσα σε ένα παράθυρο πριν χρησιμοποιήσεις το πληκτρολόγιο. Τα πλήκτρα πηγαίνουν στο παράθυρο που πάτησες τελευταίο.
  • Η δοκιμή με δύο παράθυρα θέλει υπολογιστή με αρκετή μνήμη. Αν γίνει πολύ αργός, κλείσε πρώτα άλλα προγράμματα.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

8
Βήμα 8 / 8

Δημοσίευσέ το

  1. Διάλεξε File → Publish to Roblox. Δώσε στο παιχνίδι ένα όνομα και μια σύντομη περιγραφή.
  2. Στον ιστότοπο Creator Hub άνοιξε το παιχνίδι σου και συμπλήρωσε το ερωτηματολόγιο Maturity.
  3. Βάλε το παιχνίδι σε Public και στείλε τον σύνδεσμο σε έναν φίλο.

Περισσότερες λεπτομέρειες

  • Την πρώτη φορά που δημοσιεύεις, το Studio ζητά όνομα και περιγραφή. Κάνε κλικ στο Create.
  • Το Creator Hub είναι ο ιστότοπος create.roblox.com. Συνδέσου με τον ίδιο λογαριασμό και κάνε κλικ στο παιχνίδι σου στη λίστα.
  • Η Roblox μπορεί να ζητήσει κι άλλα πριν γίνει ένα παιχνίδι δημόσιο, για παράδειγμα έλεγχο ηλικίας στον λογαριασμό. Η σελίδα σου λέει τι λείπει.
  • Αν είσαι κάτω των 18, κάνε αυτό το βήμα μαζί με έναν γονιό.
Συμβουλή. Αυτό το παιχνίδι έχει πλάκα μόνο με άλλους παίκτες. Κάλεσε δύο ή τρεις φίλους στον ίδιο server για τον πρώτο αγώνα.
Αυτό το βήμα δεν δουλεύει σε μένα

Έλεγξε πρώτα αυτά τα τρία πράγματα

  • Το όνομα κάθε Part και κάθε script είναι ακριβώς όπως στον οδηγό, με τα ίδια κεφαλαία γράμματα.
  • Το script βρίσκεται μέσα στο σωστό αντικείμενο. Κοίτα την ετικέτα πάνω από το πλαίσιο του κώδικα.
  • Άνοιξε το παράθυρο Output από το μενού Window. Το κόκκινο κείμενο δείχνει το script και τη γραμμή με το πρόβλημα.

Κόλλησες ακόμα; Γράψε μας →

Τώρα άλλαξέ το μόνος σου

  • Τελείωσε τον γύρο όταν ένας παίκτης φτάσει τους 5 πόντους και γύρνα όλα τα σκορ στο 0.
  • Πρόσθεσε ένα δεύτερο πετράδι με διαφορετικό χρώμα.
  • Κάνε τον κομιστή πιο αργό. Βοήθεια: βάλε το Humanoid.WalkSpeed σε 12 όταν παίρνεται το πετράδι και πάλι σε 16 στο resetGem.