Podajnik
Lekcja 2 z 18 w kursie Gra Roblox: Fabryka Tycoon w Coddy.
Pieniądze zaczynają się od rudy. Szare pudełko nad taśmociągiem, workspace.Tycoon.Dropper, upuszcza mały element co sekundę. Każda ruda przechowuje swoją wartość jako atrybut, czyli nazwaną wartość, którą możesz zapisać w dowolnym obiekcie:
ore:SetAttribute("Value", 10)
print(ore:GetAttribute("Value")) --> 10Upuszczanie trwa bez końca, więc jest to pętla. Pętla, która czeka, wstrzymywałaby resztę skryptu, dlatego pętla podajnika działa równolegle, w task.spawn, i zatrzymuje się, jeśli podajnik kiedykolwiek opuści świat:
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)Nowa część nie jest zakotwiczona, dopóki jej nie zakotwiczysz, więc ruda sama wypada z podajnika.
Wyzwanie
ŁatwySpraw, aby podajnik upuszczał rudę:
- Blisko początku:
local tycoon = workspace.Tycoon. - Napisz
dropOre(dropper): Part o wymiarach 1 na 1 na 1, nazwanyOre, szary (Color3.fromRGB(150, 150, 160)), 2.5 studa poniżej podajnika, z atrybutemValueustawionym naSettings.OreValue, którego rodzicem jest workspace. - Napisz
startDropper(dropper): wtask.spawn, dopóki podajnik znajduje się w workspace, upuszczaj rudę i czekajSettings.DropIntervalsekund. - Wywołaj
startDropper(tycoon.Dropper).
Naciśnij Play: pod podajnikiem gromadzi się ruda. Następnie naciśnij Check.
Spróbuj swoich sił
local Players = game:GetService("Players")
local Settings = require(game.ReplicatedStorage.Settings)
print("Ore is worth " .. Settings.OreValue .. " Cash")
-- Każdy gracz otrzymuje Cash w tabeli wyników
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)
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.