→ تمام گائیڈز
گائیڈ 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 فولڈر کے اندر ہوتی ہیں۔ ہر ایک کا نام F2 سے بدلو۔
  • نام بالکل Base1, Base2, Base3 اور Base4 ہونے چاہییں، نمبر سے پہلے خالی جگہ کے بغیر۔
  • چار سے زیادہ کھلاڑیوں والے سرور میں بیسز سے زیادہ کھلاڑی ہوتے ہیں۔ بعد میں تم 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 دباؤ تاکہ سب کچھ بدل جائے۔
  • کون سا بیس سبز ہوتا ہے، یہ فولڈر میں بیسز کی ترتیب پر منحصر ہے۔ اپنا بیس ڈھونڈنے کے لیے گھوم کر دیکھو۔
  • اوپر دائیں کونے میں کھلاڑیوں کی فہرست 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 جوڑ ہٹا دیتا ہے اور 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 دو بار دباؤ اور پیسٹ کرو۔
  • مکمل اسکرپٹ کے تین حصے اس ترتیب میں ہیں: بیسز اور اسکور، نگینہ لینا، اور پوائنٹ لینا اور ٹیگ کرنا۔
  • سرمئی بیس جو کسی کا نہیں اسے کوئی پوائنٹ نہیں دیتا۔ صرف تمہارا اپنا سبز بیس گنتا ہے۔
  • اکیلے تم ٹیگ کرنے کو نہیں آزما سکتے۔ یہ اگلے قدم میں دو کھلاڑیوں کے ساتھ کرو گے۔
عام غلطی. اس حصے کو اسکرپٹ کے بیچ میں پیسٹ کر دینا۔ 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 کر دو۔