Menu
CoddyTech

Le minerai d’or

Leçon 5 sur 18 du cours Jeu Roblox : Tycoon d’usine de Coddy.

Un peu de chance incite les joueurs à garder un œil sur le tapis : certains minerais sont en or et valent cinq fois plus. math.random() sans argument renvoie un nombre de 0 inclus à 1 exclu : le résultat est donc inférieur à 0.1 une fois sur dix :

if math.random() < Settings.GoldChance then
	-- celui-ci est en or
end

Le minerai d’or brille (Neon) et vaut Settings.OreValue * 5. Les paramètres de cette leçon rendent l’or courant, donc tu en verras beaucoup.

Au fil du jeu, certains minerais tomberont du tapis. Debris:AddItem(ore, 20) supprime chaque minerai après 20 secondes, où qu’il ait atterri, afin que le monde ne se remplisse jamais de pièces égarées.

challenge icon

Défi

Facile

Dans dropOre :

  1. Si math.random() < Settings.GoldChance, rends le minerai doré : Color3.fromRGB(255, 200, 40), Neon et une valeur de Settings.OreValue * 5.
  2. Après avoir défini le parent du minerai, fais en sorte que le service Debris le supprime au bout de 20 secondes.

Appuie sur Play et surveille l’apparition d’or, puis clique sur Check.

Essayez vous-même

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

local tycoon = workspace.Tycoon

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

-- Chaque joueur reçoit du Cash dans le classement
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 : une petite pièce qui vaut du Cash, lâchée sous un 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)

-- Le convoyeur transporte tout ce qui repose dessus
tycoon.Conveyor.AssemblyLinearVelocity = Vector3.new(Settings.BeltSpeed, 0, 0)

-- Le collecteur transforme le minerai en Cash
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)
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Jeu Roblox : Tycoon d’usine