Menu
CoddyTech

Máy thu gom

Bài học 4 trên 22 trong khóa học Game Roblox: nhà máy tycoon của Coddy.

Ở cuối băng chuyền, khối màu xanh phát sáng là bộ thu gom. Khi quặng chạm vào khối này, quặng sẽ được đổi thành tiền mặt: bộ thu gom đọc giá trị của quặng, phá hủy quặng rồi trả tiền.

collector.Touched:Connect(function(hit)
	if hit.Name == "Ore" then
		local value = hit:GetAttribute("Value")
		hit:Destroy()
		-- Trả số tiền tương ứng với value
	end
end)

Trước tiên, hãy kiểm tra tên: người chơi và những thứ khác cũng có thể chạm vào bộ thu gom. Đọc giá trị trước khi phá hủy quặng. Hiện tại, bộ thu gom trả tiền cho mọi người chơi trong trò chơi; ở chương tiếp theo, chỉ chủ sở hữu nhà máy mới được trả tiền.

challenge icon

Thử thách

Dễ

Đổi quặng thành Cash tại bộ thu màu xanh lá.

  1. Kết nối tycoon.Collector.Touched; chỉ xử lý khi tên của bộ phận là Ore.
  2. Đọc thuộc tính Value, rồi xóa nó.
  3. Cộng giá trị đó vào Cash của mọi người chơi.

Nhấn Chơi: mỗi quặng biến mất khi vào bộ thu và Cash của bạn tăng thêm 10. Sau đó nhấn Kiểm tra.

Tự làm thử

local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)

local tycoon = workspace.Tycoon

print("Ore is worth " .. Settings.OreValue .. " Cash")

-- Mỗi người chơi có Cash trên bảng xếp hạng
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: khối nhỏ có giá trị Cash, rơi xuống dưới dropper
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)

-- Băng chuyền vận chuyển mọi thứ nằm trên nó
tycoon.Conveyor.AssemblyLinearVelocity = Vector3.new(Settings.BeltSpeed, 0, 0)

-- Bài học 4: Đặt Collector ở đây

Tất cả bài học trong Game Roblox: nhà máy tycoon

Tự luyện tập: Playground Roblox