→ همه‌ی آموزش‌ها
آموزش 2

اولین tycoon ات را بساز

یک Dropper مکعب می‌سازد، یک Conveyor آن‌ها را می‌برد، یک Collector آن‌ها را به cash تبدیل می‌کند و یک دکمه Dropper دوم را می‌خرد.

رایگان60 دقیقه · مبتدی · Roblox Studio
1
قدم 1 / 9

مکان را آماده کن

  1. Roblox Studio را باز کن، روی New Experience کلیک کن و قالب Baseplate را انتخاب کن.
  2. در Explorer موس را روی Workspace ببر، روی + کلیک کن و یک Folder اضافه کن. اسمش را Tycoon بگذار.
  3. هر چیزی که در این آموزش می‌سازی داخل همین پوشه می‌رود. Explorer را مرتب نگه می‌دارد.

جزئیات بیشتر

  • قالب Baseplate در فهرست قالب‌های صفحه‌ی شروع است.
  • وقتی روی + کلیک می‌کنی، یک فهرست باز می‌شود. کلمه‌ی Folder را بنویس تا زود پیدایش کنی و رویش کلیک کن.
  • برای عوض کردن اسم پوشه، یک بار رویش کلیک کن، F2 را بزن، Tycoon را بنویس و Enter را بزن.
  • روی Mac هر جا این آموزش Ctrl می‌گوید، کلید Cmd را بزن.
نکته. هر Part را بلافاصله بعد از ساختن اسم‌گذاری کن. اسکریپت‌ها Part ها را با اسم پیدا می‌کنند، پس Part ای که هنوز اسمش Part است کار نمی‌کند.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

2
قدم 2 / 9

به هر بازیکن cash بده

  1. موس را روی ServerScriptService ببر، روی + کلیک کن و یک Script اضافه کن. اسمش را Leaderstats بگذار.
  2. خطی را که از قبل آنجاست پاک کن و این کد را بچسبان.
  3. Play را بزن. اسمت در فهرست بازیکن‌ها همراه با Cash 0 کنارش ظاهر می‌شود.
ServerScriptService > Leaderstats
local Players = game:GetService("Players")

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

	local cash = Instance.new("IntValue")
	cash.Name = "Cash"
	cash.Value = 0
	cash.Parent = stats
end)

هر بخش چه کار می‌کند

  • PlayerAdded برای هر بازیکنی که وارد می‌شود یک بار اجرا می‌شود.
  • پوشه‌ای به اسم leaderstats ویژه است. Roblox مقدارهای داخلش را در فهرست بازیکن‌ها نشان می‌دهد.
  • IntValue یک عدد کامل نگه می‌دارد. اینجا cash بازیکن را نگه می‌دارد.

جزئیات بیشتر

  • ServerScriptService در فهرست Explorer است. اسکریپت‌های داخلش روی سرور اجرا می‌شوند، جایی که بازیکن‌ها نمی‌توانند عوضشان کنند.
  • اسکریپت در یک تب جدید باز می‌شود. داخل کد کلیک کن، Ctrl+A و بعد Ctrl+V را بزن تا همه‌چیز عوض شود.
  • با کلیک روی تبی که اسم مکانت را دارد به دنیایت برگرد.
  • فهرست بازیکن‌ها در گوشه‌ی بالا سمت راست بازی است. F5 را بزن تا شروع شود و Shift+F5 را بزن تا متوقف شود.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

3
قدم 3 / 9

Dropper را بساز

  1. یک Part داخل پوشه‌ی Tycoon بگذار. Size را 4, 1, 4 کن، Anchored را روشن کن و اسمش را Dropper بگذار.
  2. با ابزار Move (Ctrl+2) حدود 10 studs بالاتر از کف ببرش.
  3. یک Script به Dropper اضافه کن و این کد را بچسبان.
  4. Play را بزن. هر 2 ثانیه یک مکعب زرد می‌افتد.
Dropper > Script
local Debris = game:GetService("Debris")
local dropper = script.Parent

while true do
	task.wait(2)

	local cube = Instance.new("Part")
	cube.Name = "Cube"
	cube.Size = Vector3.new(1.5, 1.5, 1.5)
	cube.Color = Color3.fromRGB(255, 200, 60)
	cube.Position = dropper.Position - Vector3.new(0, 2, 0)
	cube.Parent = workspace

	Debris:AddItem(cube, 20)
end

هر بخش چه کار می‌کند

  • Instance.new با کد یک Part جدید می‌سازد.
  • Position مکعب را 2 studs زیر Dropper می‌گذارد.
  • Debris هر مکعب را بعد از 20 ثانیه پاک می‌کند، پس مکعب‌های قدیمی روی هم نمی‌ریزند.

جزئیات بیشتر

  • برای گذاشتن قطعه داخل پوشه، اسمش را در Explorer روی اسم Tycoon بکش.
  • با ابزار Move فلش سبز را به بالا بکش. فیلد Position در Properties ارتفاع را در عدد وسط نشان می‌دهد.
  • مکعب 2 studs زیر دراپر ظاهر می‌شود و بعد می‌افتد. اگر دراپر خیلی پایین باشد، مکعب‌ها زیرش روی هم تلنبار می‌شوند.
  • اولین مکعب 2 ثانیه بعد از شروع بازی می‌آید.
اشتباه رایج. مکعبی ظاهر نمی‌شود: ببین اسکریپت داخل Dropper باشد و Dropper هم Anchored باشد.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

4
قدم 4 / 9

Conveyor را اضافه کن

  1. یک Part بگذار، Size را 6, 1, 30 کن، Anchored را روشن کن و اسمش را Conveyor بگذار.
  2. آن را روی کف طوری بگذار که یک سرش درست زیر Dropper باشد.
  3. یک Script به Conveyor اضافه کن و این کد را بچسبان.
  4. Play را بزن. مکعب‌ها روی Conveyor می‌افتند و رویش سر می‌خورند.
Conveyor > Script
local conveyor = script.Parent

conveyor.AssemblyLinearVelocity = conveyor.CFrame.LookVector * 8

هر بخش چه کار می‌کند

  • AssemblyLinearVelocity به Roblox می‌گوید چیزهای روی Part با چه سرعتی حرکت کنند.
  • LookVector جهتی است که جلوی Part به آن نگاه می‌کند. عدد 8 سرعت است، به studs در ثانیه.

جزئیات بیشتر

  • هر قطعه یک جلو دارد. نوار نقاله مکعب‌ها را به سمت جلویش هل می‌دهد.
  • ضلع بلند نوار نقاله، یعنی همان 30 studs، باید از دراپر دور شود و به جایی برود که جمع‌کننده می‌ایستد.
  • خود نوار نقاله حرکت نمی‌کند. فقط چیزهای رویش می‌لغزند.
  • اگر مکعب‌ها از کنار می‌افتند، نوار نقاله را پهن‌تر کن یا دراپر را به وسطش ببر.
اشتباه رایج. مکعب‌ها به سمت اشتباه می‌روند: Conveyor را با ابزار Rotate (Ctrl+4) به اندازه‌ی 180 درجه بچرخان.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

5
قدم 5 / 9

مکعب‌ها را جمع کن

  1. یک Part سر دیگر Conveyor بگذار. Size را 6, 4, 1 کن، Anchored را روشن کن، سبزش کن و اسمش را Collector بگذار.
  2. آن را مثل یک دیوار صاف بایستان تا مکعب‌ها به آن بخورند.
  3. یک Script به Collector اضافه کن و این کد را بچسبان.
  4. Play را بزن. هر مکعبی که به Collector برسد 5 تا به Cash اضافه می‌کند.
Collector > Script
local Players = game:GetService("Players")
local collector = script.Parent

collector.Touched:Connect(function(hit)
	if hit.Name ~= "Cube" then return end
	hit:Destroy()

	for _, player in ipairs(Players:GetPlayers()) do
		local stats = player:FindFirstChild("leaderstats")
		if stats then
			stats.Cash.Value += 5
		end
	end
end)

هر بخش چه کار می‌کند

  • اسکریپت هر چیزی را که اسمش Cube نیست نادیده می‌گیرد. پاهای تو حساب نمی‌شوند.
  • Destroy مکعب را از بازی پاک می‌کند.
  • حلقه به هر بازیکن سرور 5 cash می‌دهد. تایکونی که برای هر زمین یک صاحب دارد یک درس پیشرفته است.

جزئیات بیشتر

  • Size 6, 4, 1 از قبل ایستاده است: 6 پهنا، 4 ارتفاع و 1 ضخامت. آن را مثل یک دروازه‌ی بسته سر نوار نقاله بگذار.
  • لبه‌ی پایینش باید نوار نقاله را لمس کند تا هیچ مکعبی نتواند از زیرش رد شود.
  • برای سبز کردنش روی فیلد Color در Properties کلیک کن.
  • برای آزمایش: F5 را بزن و فهرست بازیکن‌ها را تماشا کن. هر بار که یک مکعب به دیوار می‌رسد Cash به اندازه‌ی 5 بالا می‌رود.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

6
قدم 6 / 9

Dropper دوم را آماده کن

  1. Dropper را انتخاب کن و Ctrl+D را بزن. اسم کپی را Dropper2 بگذار و کنار اولی ببرش، هنوز بالای Conveyor.
  2. Dropper2 را از Workspace بکش داخل ServerStorage.
  3. از دنیای بازی ناپدید می‌شود. چیزهای داخل ServerStorage همان‌جا منتظر می‌مانند تا یک اسکریپت آن‌ها را برگرداند.

جزئیات بیشتر

  • کپی دقیقاً روی اصل می‌نشیند. آن را با ابزار Move کنار بکش تا هر دو را ببینی.
  • اسم کپی را با F2 عوض کن. اسم باید Dropper2 باشد، با D بزرگ و بدون فاصله.
  • ServerStorage در فهرست Explorer است. اسم Dropper2 را روی آن بکش.
  • اسکریپت داخل کپی هم با آن آمده است. لازم نیست دوباره اضافه‌اش کنی.
نکته. اسکریپت‌های داخل ServerStorage اجرا نمی‌شوند. برای همین Dropper دوم ساکت می‌ماند تا کسی آن را بخرد.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

7
قدم 7 / 9

یک دکمه‌ی خرید اضافه کن

  1. یک Part روی کف نزدیک Conveyor بگذار. Size را 4, 1, 4 کن، Anchored را روشن کن، آبی روشنش کن و اسمش را BuyDropper بگذار.
  2. یک Script به BuyDropper اضافه کن و این کد را بچسبان.
  3. برای برچسب زدن به دکمه، موس را روی BuyDropper ببر، روی + کلیک کن و یک BillboardGui اضافه کن. Size آن را {0, 200}, {0, 50} و StudsOffset آن را 0, 3, 0 بگذار.
  4. یک TextLabel داخل BillboardGui اضافه کن. Size آن را {1, 0}, {1, 0} کن، TextScaled را روشن کن و این متن را بنویس: Second dropper - 50
BuyDropper > Script
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")

local button = script.Parent
local PRICE = 50
local bought = false

button.Touched:Connect(function(hit)
	if bought then return end

	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or stats.Cash.Value < PRICE then return end

	bought = true
	stats.Cash.Value -= PRICE
	ServerStorage.Dropper2.Parent = workspace
	button:Destroy()
end)

هر بخش چه کار می‌کند

  • PRICE قیمت است. عدد را عوض کن تا دکمه ارزان‌تر یا گران‌تر شود.
  • اسکریپت چک می‌کند که یک بازیکن واقعی به دکمه خورده باشد و بازیکن cash کافی داشته باشد.
  • گذاشتن Dropper2 داخل workspace آن را روشن می‌کند. اسکریپتش همان لحظه شروع به کار می‌کند.

جزئیات بیشتر

  • بازیکن‌ها با راه رفتن روی دکمه می‌خرند، پس آن را روی زمین بگذار تا دسترسی راحت باشد.
  • برای Size و StudsOffset روی فیلد در Properties کلیک کن، عددها را دقیقاً همان‌طور که نشان داده شده با پرانتزها و ویرگول‌ها بنویس و Enter را بزن.
  • Text یک ویژگی TextLabel است. روی فیلد Text کلیک کن، کلمه‌ها را بنویس و Enter را بزن.
  • برچسب بالای دکمه شناور است. اگر نمی‌بینی‌اش، عدد وسط StudsOffset را بالاتر ببر.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

8
قدم 8 / 9

کل چرخه را امتحان کن

  1. F5 را بزن. ببین مکعب‌ها می‌افتند، روی Conveyor می‌روند و به cash تبدیل می‌شوند.
  2. صبر کن تا 50 cash داشته باشی، بعد روی دکمه‌ی آبی بایست.
  3. Dropper دوم ظاهر می‌شود، دکمه ناپدید می‌شود و cash ات دو برابر سریع‌تر زیاد می‌شود.
  4. برای توقف Shift+F5 را بزن. اگر چیزی کار نکرد، پنجره‌ی Output را از منوی Window باز کن و نوشته‌ی قرمز را بخوان.

جزئیات بیشتر

  • برای رسیدن به 50 پول 10 مکعب لازم است، یعنی دست‌کم 20 ثانیه.
  • بعد از خرید، Cash به اندازه‌ی 50 کم می‌شود. این درست است. تو پول دراپر را دادی.
  • دکمه بعد از خرید از بین می‌رود، پس نمی‌شود دو بار خریدش.
  • اگر دراپر دوم جای اشتباه ظاهر شد، بازی را متوقف کن، Dropper2 را از ServerStorage به Workspace بکش، جابه‌جایش کن و دوباره به ServerStorage بکش.
اشتباه رایج. Cash هیچ‌وقت عوض نمی‌شود: Part های در حال افتادن باید دقیقاً Cube اسم داشته باشند، همان‌طور که در اسکریپت Dropper است.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

9
قدم 9 / 9

منتشرش کن

  1. File → Publish to Roblox را انتخاب کن. به بازی یک اسم و یک توضیح کوتاه بده.
  2. در سایت Creator Hub بازی‌ات را باز کن و پرسشنامه‌ی Maturity را پر کن.
  3. بازی را روی Public بگذار و لینکش را برای یک دوست بفرست.

جزئیات بیشتر

  • بار اول که منتشر می‌کنی، Studio اسم و توضیح می‌خواهد. روی Create کلیک کن.
  • Creator Hub همان وب‌سایت create.roblox.com است. با همان حساب وارد شو و در فهرست روی بازی‌ات کلیک کن.
  • ممکن است Roblox قبل از عمومی شدن بازی چیزهای بیشتری بخواهد، مثلاً تأیید سن حساب. صفحه می‌گوید چه چیزی کم است.
  • اگر زیر 18 سال داری، این قدم را با یکی از والدینت انجام بده.
نکته. پیشرفت هنوز ذخیره نمی‌شود. وقتی بازیکن می‌رود، cash اش از بین می‌رود. ذخیره‌ی داده یک درس پیشرفته است.
این قدم برای من کار نمی‌کند

اول این سه چیز را بررسی کن

  • اسم هر قطعه و اسکریپت دقیقاً مثل آموزش است، با همان حروف بزرگ.
  • اسکریپت داخل شیء درست است. به برچسب بالای کادر کد نگاه کن.
  • پنجره‌ی Output را از منوی Window باز کن. متن قرمز اسکریپت و خطی را که مشکل دارد نشان می‌دهد.

هنوز گیر کرده‌ای؟ برای ما بنویس ←

حالا خودت تغییرش بده

  • هر مکعب را به جای 5، ده cash ارزش بده.
  • یک Dropper سوم اضافه کن که 200 cash قیمت دارد.
  • Dropper دوم را از اولی سریع‌تر کن. کدام عدد را عوض می‌کنی؟