Der Dropper
Lektion 2 von 18 im Kurs Roblox-Spiel: Fabrik-Tycoon von Coddy.
Geld beginnt mit Erz. Die graue Box über dem Förderband, workspace.Tycoon.Dropper, lässt jede Sekunde ein kleines Teil fallen. Jedes Erz enthält seinen Wert als Attribut, einem benannten Wert, den du in jeder Instanz speichern kannst:
ore:SetAttribute("Value", 10)
print(ore:GetAttribute("Value")) --> 10Das Fallenlassen geschieht für immer, also ist es eine Schleife. Eine Schleife, die wartet, würde den Rest des Skripts aufhalten. Daher läuft die Schleife des Dropper parallel dazu in task.spawn und stoppt, falls der Dropper jemals die Welt verlässt:
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)Ein neues Part ist nicht verankert, sofern du es nicht verankerst. Daher fällt das Erz von selbst aus dem Dropper.
Aufgabe
EinfachLass den Dropper Erz fallen lassen:
- Nahe dem Anfang:
local tycoon = workspace.Tycoon. - Schreibe
dropOre(dropper): ein 1 × 1 × 1 großes Part namensOre, grau (Color3.fromRGB(150, 150, 160)), 2.5 Studs unter dem Dropper, mit einem AttributValue, das aufSettings.OreValuegesetzt ist, und als untergeordnetes Objekt von workspace. - Schreibe
startDropper(dropper): innerhalb einestask.spawn, solange sich der Dropper in workspace befindet, Erz fallen lassen undSettings.DropIntervalSekunden warten. - Rufe
startDropper(tycoon.Dropper)auf.
Drücke Play: Unter dem Dropper sammelt sich Erz an. Dann Check.
Probier es selbst
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
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)
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.