← सभी गाइड
गाइड 5

अपना पहला चुराओ-और-बचाओ गेम बनाओ

हर खिलाड़ी को एक बेस मिलता है। बीच से gem उठाओ, स्कोर करने के लिए उसे दौड़कर घर ले जाओ, और जो भी उसे लेकर चले उसे पकड़ो।

मुफ़्त70 मिनट · शुरुआती, आख़िरी गाइड · Roblox Studio
1
कदम 1 / 8

place तैयार करो

  1. Roblox Studio खोलो, New Experience पर क्लिक करो और Baseplate टेम्पलेट चुनो।
  2. gem नक्शे के बीच में रहेगा। उसके चारों ओर चार बेस होंगे, हर एक बीच से लगभग 60 studs दूर।
  3. इस गेम में कम से कम दो खिलाड़ी चाहिए, इसलिए अंत में तुम इसे दो टेस्ट खिलाड़ियों के साथ टेस्ट करोगे।

और जानकारी

  • Baseplate टेम्पलेट शुरुआती स्क्रीन की टेम्पलेट सूची में है।
  • Properties में Position वाला खाना बताता है कि part कहाँ है। Position 60, 0.5, 0 नक्शे के बीच से 60 studs दूर है।
  • SpawnLocation को, यानी उस प्लेटफ़ॉर्म को जहाँ खिलाड़ी आते हैं, बीच के पास ले जाओ, ताकि हर खिलाड़ी रत्न से बराबर दूरी पर शुरू करे।
  • Mac पर, जहाँ भी इस गाइड में Ctrl लिखा हो, वहाँ हर बार Cmd कुंजी इस्तेमाल करो।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

2
कदम 2 / 8

बेस बनाओ

  1. Explorer में Workspace पर माउस ले जाओ, + पर क्लिक करो और एक Folder जोड़ो। उसका नाम Bases रखो।
  2. एक Part जोड़ो। Size को 16, 1, 16 करो, Anchored चालू करो और उसे स्लेटी करो। उसे Bases में खींचो और उसका नाम Base1 रखो।
  3. Ctrl+D से उसकी तीन कॉपियाँ बनाओ। कॉपियों के नाम Base2, Base3 और Base4 रखो और हर एक को नक्शे की अलग-अलग तरफ़ ले जाओ।

और जानकारी

  • part को folder में डालने के लिए Explorer में उसका नाम खींचकर Bases नाम पर छोड़ो।
  • Ctrl+D से बनी कॉपियाँ पहले से Bases folder के अंदर होती हैं। हर एक का नाम F2 से बदलो।
  • नाम ठीक Base1, Base2, Base3 और Base4 होने चाहिए, संख्या से पहले खाली जगह के बिना।
  • चार से ज़्यादा खिलाड़ियों वाले सर्वर में base से ज़्यादा खिलाड़ी होते हैं। बाद में तुम Creator Hub पर गेम सेटिंग में सर्वर का आकार 4 कर सकते हो।
सुझाव. चारों बेस को बीच से बराबर दूरी पर रखो। तब गेम सबके लिए न्यायपूर्ण रहता है।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

3
कदम 3 / 8

gem बनाओ

  1. नक्शे के बीच में, फ़र्श से लगभग 4 studs ऊपर एक Part जोड़ो। Size को 2, 2, 2 करो, कोई चटक रंग चुनो और Material को Neon करो। उसका नाम Gem रखो।
  2. Anchored और Massless चालू करो, और CanCollide बंद करो।
  3. Gem पर माउस ले जाओ, + पर क्लिक करो और एक ProximityPrompt जोड़ो। ActionText को Take और HoldDuration को 1 करो।

हर हिस्सा क्या करता है

  • ProximityPrompt तब एक बटन दिखाता है जब खिलाड़ी पास खड़ा होता है। उसे 1 सेकंड तक दबाए रखने पर वह चालू होता है।
  • Massless चालू और CanCollide बंद होने से gem उस खिलाड़ी को धीमा नहीं करता और धक्का भी नहीं देता जो उसे लेकर चल रहा है।

और जानकारी

  • Anchored, Massless और CanCollide Properties में चेकबॉक्स हैं।
  • + पर क्लिक करके ProximityPrompt लिखो, ताकि वह मिल जाए। उस पर क्लिक करो, फिर Properties में ActionText और HoldDuration बदलो।
  • गेम में रत्न के पास खड़े होने पर E अक्षर और Take शब्द वाला एक छोटा बटन दिखता है।
  • फ़ोन पर खिलाड़ी उस बटन पर उँगली टिकाए रखते हैं।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

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)

हर हिस्सा क्या करता है

  • पहली लाइनें बेस और gem को ढूँढती हैं और याद रखती हैं कि gem कहाँ से शुरू हुआ था।
  • SetAttribute मालिक का UserId पहले खाली बेस पर लिख देता है।
  • PlayerRemoving बेस को फिर से खाली कर देता है जब उसका मालिक चला जाता है।

और जानकारी

  • स्क्रिप्ट एक नए टैब में खुलती है। कोड के अंदर क्लिक करो, Ctrl+A और फिर Ctrl+V दबाकर सब कुछ बदल दो।
  • कौन-सा base हरा होगा, यह folder में base के क्रम पर निर्भर है। अपना base ढूँढने के लिए घूमकर देखो।
  • ऊपर दाएँ कोने की खिलाड़ियों की सूची में Score 0 दिखता है।
  • अभी रत्न के पास जाकर E दबाए रखने पर कुछ नहीं होता। वह अगले कदम में आएगा।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

5
कदम 5 / 8

खिलाड़ियों को gem उठाने दो

  1. Game स्क्रिप्ट को फिर से खोलो।
  2. पिछले कदम के कोड के नीचे यह कोड पेस्ट करो।
  3. Play दबाओ, gem तक चलो और E दबाए रखो। gem उछलकर तुम्हारे सिर के ऊपर आ जाता है और तुम्हारे पीछे चलता है।
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 याद रखता है कि gem किसके पास है। जब तक वह उठाया हुआ है, कोई और उसे नहीं ले सकता।
  • WeldConstraint gem को खिलाड़ी से चिपका देता है, इसलिए वह उसके साथ चलता है।
  • resetGem weld को हटा देता है और gem को वापस बीच में रख देता है।

और जानकारी

  • स्क्रिप्ट को फिर से खोलने के लिए Explorer में Game पर डबल-क्लिक करो।
  • कोड के बिल्कुल आख़िरी अक्षर के बाद क्लिक करो और Enter दो बार दबाओ। फिर Ctrl+V दबाओ। इस बार Ctrl+A मत दबाना, वरना पहला हिस्सा बदल जाएगा।
  • रत्न उठाए रखने के दौरान तुम्हारे सिर से 4 studs ऊपर तैरता है।
  • टेस्ट करने के लिए: रत्न उठाओ, फिर जाँचो कि जब तक तुम उसे उठाए हो, Take बटन गायब रहता है।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

6
कदम 6 / 8

स्कोर और पकड़ना जोड़ो

  1. यह आख़िरी हिस्सा Game स्क्रिप्ट के बिल्कुल अंत में पेस्ट करो।
  2. Play दबाओ, gem उठाओ और दौड़कर अपने हरे बेस पर जाओ। Score 1 बढ़ता है और gem वापस बीच में आ जाता है।
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

हर हिस्सा क्या करता है

  • हर बेस तीन बातें जाँचता है: किसी खिलाड़ी ने उसे छुआ, वह खिलाड़ी gem लेकर चल रहा है, और बेस उसी का है।
  • नीचे का लूप एक सेकंड में 5 बार चलता है। अगर कोई दूसरा खिलाड़ी gem उठाने वाले के 5 studs से ज़्यादा पास आ जाता है, तो gem वापस चला जाता है।
  • अगर gem उठाने वाला गेम छोड़ देता है या नक्शे से गिर जाता है, तो लूप gem को भी रीसेट कर देता है।

और जानकारी

  • फिर से स्क्रिप्ट के बिल्कुल आख़िरी अक्षर के बाद क्लिक करो, Enter दो बार दबाओ और पेस्ट करो।
  • तैयार स्क्रिप्ट के तीन हिस्से इस क्रम में हैं: base और score, रत्न उठाना, और अंक पाना व टैग करना।
  • किसी का न होने वाला स्लेटी base कोई अंक नहीं देता। सिर्फ़ तुम्हारा अपना हरा base गिना जाता है।
  • अकेले तुम tagging टेस्ट नहीं कर सकते। वह तुम अगले कदम में दो खिलाड़ियों के साथ करोगे।
आम गलती. इस हिस्से को स्क्रिप्ट के बीच में पेस्ट करना। while लूप कभी खत्म नहीं होता, इसलिए उसके नीचे का कोई भी कोड कभी नहीं चलता।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

7
कदम 7 / 8

दो खिलाड़ियों के साथ टेस्ट करो

  1. Play बटन के बगल का छोटा मेनू खोलो और Server & Clients चुनो। खिलाड़ियों की संख्या 2 करो और Play दबाओ।
  2. Studio दो गेम विंडो खोलता है। हर एक अलग खिलाड़ी है और उसका बेस अलग है।
  3. एक विंडो में gem उठाओ। दूसरी विंडो में उस खिलाड़ी से जाकर टकराओ। gem वापस बीच में आ जाता है।
  4. मुख्य Studio विंडो में लाल Stop बटन से टेस्ट रोको, फिर मेनू को वापस Test पर कर दो।

और जानकारी

  • छोटा मेनू Studio के ऊपर Play बटन के ठीक बगल वाला तीर है।
  • दोनों गेम विंडो एक-दूसरे के ऊपर खुलती हैं। एक को खींचकर हटाओ, ताकि दोनों दिखें।
  • कीबोर्ड इस्तेमाल करने से पहले किसी विंडो के अंदर क्लिक करो। कुंजियाँ उसी विंडो में जाती हैं जिस पर तुमने आख़िरी बार क्लिक किया था।
  • दो विंडो से टेस्ट करने के लिए काफ़ी मेमोरी वाला कंप्यूटर चाहिए। अगर बहुत धीमा चले, तो पहले दूसरे प्रोग्राम बंद करो।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

8
कदम 8 / 8

इसे पब्लिश करो

  1. File → Publish to Roblox चुनो। गेम को एक नाम और छोटा सा विवरण दो।
  2. Creator Hub वेबसाइट पर अपना गेम खोलो और Maturity वाली प्रश्नावली भरो।
  3. गेम को Public करो और लिंक किसी दोस्त को भेजो।

और जानकारी

  • पहली बार पब्लिश करते समय Studio नाम और विवरण माँगता है। Create पर क्लिक करो।
  • Creator Hub वेबसाइट create.roblox.com है। उसी अकाउंट से साइन इन करो और सूची में अपने गेम पर क्लिक करो।
  • गेम को सार्वजनिक करने से पहले Roblox और जानकारी माँग सकता है, जैसे अकाउंट की उम्र की जाँच। पेज बताता है कि क्या कमी है।
  • अगर तुम 18 साल से कम के हो, तो यह कदम किसी माता-पिता के साथ मिलकर करो।
सुझाव. यह गेम दूसरे खिलाड़ियों के साथ ही मज़ेदार है। पहले मैच के लिए दो-तीन दोस्तों को उसी सर्वर में बुलाओ।
यह कदम मेरे लिए काम नहीं कर रहा

पहले ये तीन बातें जाँचो

  • हर part और स्क्रिप्ट का नाम बिल्कुल गाइड जैसा हो, बड़े और छोटे अक्षरों के साथ।
  • स्क्रिप्ट सही चीज़ के अंदर रखी हो। कोड वाले बॉक्स के ऊपर लिखा लेबल देखो।
  • Window मेनू से Output विंडो खोलो। लाल लिखावट बताती है कि स्क्रिप्ट में किस लाइन पर गड़बड़ है।

फिर भी अटके हो? हमें लिखो →

अब इसे खुद बदलो

  • जब कोई खिलाड़ी 5 अंक पर पहुँचे तो राउंड खत्म करो और हर स्कोर वापस 0 करो।
  • अलग रंग वाला दूसरा gem जोड़ो।
  • gem उठाने वाले को धीमा करो। इशारा: gem उठाने पर Humanoid.WalkSpeed को 12 करो और resetGem में वापस 16 करो।