الجامع
الدرس 4 من 18 في دورة لعبة Roblox: تايكون المصنع على Coddy.
في نهاية الحزام، الكتلة الخضراء المتوهجة هي المُحصِّل. عندما يلمسها خام، يتحول الخام إلى نقود: يقرأ المُحصِّل قيمة الخام، ثم يتلف الخام ويدفع المبلغ.
collector.Touched:Connect(function(hit)
if hit.Name == "Ore" then
local value = hit:GetAttribute("Value")
hit:Destroy()
-- ادفع القيمة
end
end)تحقّق من الاسم أولًا: يمكن للاعبين وأي شيء آخر لمس المُحصِّل أيضًا. اقرأ القيمة قبل إتلاف الخام. في الوقت الحالي، يدفع المُحصِّل لكل لاعب في اللعبة؛ وفي الفصل التالي، لن يحصل على المال إلا مالك المصنع.
التحدي
سهلاربط tycoon.Collector.Touched: عندما يكون اسم الجزء الذي لمسه Ore، اقرأ السمة Value الخاصة به، ودمّره، ثم أضف القيمة إلى رصيد Cash لكل لاعب.
اضغط على Play وشاهد رصيد Cash وهو يزداد، ثم اضغط على Check.
جرّب بنفسك
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
local tycoon = workspace.Tycoon
print("Ore is worth " .. Settings.OreValue .. " Cash")
-- يحصل كل لاعب على Cash في لوحة الصدارة
Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local cash = Instance.new("IntValue")
cash.Name = "Cash"
cash.Parent = leaderstats
end)
-- Ore: قطعة صغيرة تساوي Cash، تسقط أسفل آلة الإسقاط
local function dropOre(dropper)
local ore = Instance.new("Part")
ore.Name = "Ore"
ore.Size = Vector3.new(1, 1, 1)
ore.Color = Color3.fromRGB(150, 150, 160)
ore.Position = dropper.Position - Vector3.new(0, 2.5, 0)
ore:SetAttribute("Value", Settings.OreValue)
ore.Parent = workspace
end
local function startDropper(dropper)
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)
end
startDropper(tycoon.Dropper)
-- ينقل الحزام الناقل كل ما يستقر عليه
tycoon.Conveyor.AssemblyLinearVelocity = Vector3.new(Settings.BeltSpeed, 0, 0)
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.