Le distributeur
Leçon 2 sur 18 du cours Jeu Roblox : Tycoon d’usine de Coddy.
L’argent commence avec le minerai. La boîte grise au-dessus du convoyeur, workspace.Tycoon.Dropper, lâche une petite pièce chaque seconde. Chaque minerai porte sa valeur sous forme d’attribut, une valeur nommée que tu peux stocker sur n’importe quelle instance :
ore:SetAttribute("Value", 10)
print(ore:GetAttribute("Value")) --> 10La chute se produit indéfiniment : c’est donc une boucle. Une boucle qui attend bloquerait le reste du script. La boucle du distributeur s’exécute donc en parallèle, dans task.spawn, et s’arrête si le distributeur quitte le monde :
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)Une nouvelle pièce n’est pas ancrée, sauf si tu l’ancrés ; le minerai tombe donc tout seul du distributeur.
Défi
FacileFais tomber du minerai du distributeur :
- Près du début :
local tycoon = workspace.Tycoon. - Écris
dropOre(dropper): une Part de 1 × 1 × 1 nomméeOre, grise (Color3.fromRGB(150, 150, 160)), située 2.5 studs sous le distributeur, avec un attributValuedéfini surSettings.OreValue, et dont le parent est workspace. - Écris
startDropper(dropper): dans untask.spawn, tant que le distributeur se trouve dans workspace, fais tomber un minerai et attendsSettings.DropIntervalsecondes. - Appelle
startDropper(tycoon.Dropper).
Appuie sur Play : le minerai s'accumule sous le distributeur. Puis clique sur Check.
Essayez vous-même
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Ore is worth " .. Settings.OreValue .. " Cash")
-- Chaque joueur reçoit des 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)
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.