Menu
CoddyTech

Golderz

Lektion 5 von 22 im Kurs Roblox-Spiel: Fabrik-Tycoon von Coddy.

Ein bisschen Glück hält die Spieler am Förderband: Manches Erz ist Gold und fünfmal so viel wert. math.random() ohne Argumente gibt eine Zahl von 0 bis (aber nicht einschließlich) 1 zurück, sie liegt also in einem von zehn Fällen unter 0,1:

if math.random() < Settings.GoldChance then
	-- Dieses Exemplar ist aus Gold
end

Golderz leuchtet (Neon) und ist Settings.OreValue * 5 wert.

Während der Laufzeit des Spiels wird manches Erz vom Förderband fallen. Debris:AddItem(ore, 20) entfernt jedes Erz nach 20 Sekunden, egal, wo es gelandet ist, sodass die Welt sich nie mit herumliegenden Teilen füllt.

challenge icon

Aufgabe

Einfach

Färbe jedes zehnte Erz golden und räume herumliegendes Erz auf.

  1. Färbe das Erz in dropOre goldfarben, wenn math.random() < Settings.GoldChance gilt: Verwende Color3.fromRGB(255, 200, 40), setze das Material auf Neon und den Wert auf Settings.OreValue * 5.
  2. Rufe nach dem Festlegen des übergeordneten Objekts für das Erz Debris:AddItem(ore, 20) auf.

Drücke auf „Spielen“: Ab und zu fährt ein leuchtendes Golderz über das Förderband und bringt 50 ein. Klicke dann auf „Prüfen“.

Probier es selbst

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

local tycoon = workspace.Tycoon

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

-- Jeder Spieler erhält Cash auf der Bestenliste
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: ein kleines Teil, das Cash wert ist und unter einem Dropper abgeworfen wird
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)
	-- Lektion 5: Gold Ore kommt hierhin
	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)

-- Das Förderband transportiert alles, was darauf liegt
tycoon.Conveyor.AssemblyLinearVelocity = Vector3.new(Settings.BeltSpeed, 0, 0)

-- Der Sammler wandelt Ore in Cash um
tycoon.Collector.Touched:Connect(function(hit)
	if hit.Name == "Ore" then
		local value = hit:GetAttribute("Value")
		hit:Destroy()
		for _, player in Players:GetPlayers() do
			player.leaderstats.Cash.Value += value
		end
	end
end)

Alle Lektionen in Roblox-Spiel: Fabrik-Tycoon

Übe selbstständig: Roblox-Playground