Roblox · Тайкун · урок 2
Лента везёт предметы в корзину, каждый предмет добавляет деньги в кассу производства.
Синим — что добавляем на этом уроке.
ServerStorage └─ ItemsToDrop (Folder) └─ Candy (Part) — Anchored выкл. └─ Gain (NumberValue) — сколько $ приносит предмет Workspace └─ IndustryModel (Model) ├─ Values (Folder) │ ├─ Owner (ObjectValue) │ └─ Gain (NumberValue) — деньги в кассе ├─ Dropped_Items (Folder) — сюда падают предметы └─ Owned_Items (Folder) — купленное оборудование └─ CandyDropper (Model) ├─ Conveyor (Part) — лента ├─ SpawnPart (Part) — невидимый, CanCollide выкл. ├─ Catcher (Part) — корзина в конце ленты └─ CandyDropperScript (Script)
Где: Workspace → IndustryModel → Owned_Items → CandyDropper · Script
Зачем: Каждые 5 с создаёт предмет над лентой; когда предмет падает в корзину, добавляет его цену в кассу.
-- модель конвейера
local candyDropper = script.Parent
-- производство: CandyDropper → Owned_Items → IndustryModel
local tycoon = candyDropper.Parent.Parent
-- папка для упавших предметов
local droppedFolder = tycoon.Dropped_Items
-- касса производства
local gainValue = tycoon.Values.Gain
-- точка, где появляется предмет
local spawnPart = candyDropper.SpawnPart
-- корзина в конце ленты
local catcher = candyDropper:WaitForChild("Catcher")
-- серверное хранилище
local SS = game:GetService("ServerStorage")
-- образец предмета
local candy = SS.ItemsToDrop:WaitForChild("Candy")
-- удаление по таймеру
local Debris = game:GetService("Debris")
-- каждые 5 секунд
while task.wait(5) do
-- копируем предмет
local candyClone = candy:Clone()
-- ставим над лентой
candyClone.Position = spawnPart.Position
-- кладём в мир
candyClone.Parent = droppedFolder
-- упал мимо ленты — сам исчезнет через 30 с
Debris:AddItem(candyClone, 30)
-- за этот предмет ещё не платили
local paid = false
-- следим за касаниями предмета
candyClone.Touched:Connect(function(otherPart)
-- предмет в корзине, оплаты ещё не было
if otherPart == catcher and not paid then
-- платим один раз
paid = true
-- цена предмета — в кассу
gainValue.Value += candyClone.Gain.Value
-- пауза 1 секунда
task.wait(1)
-- удаляем предмет
candyClone:Destroy()
-- конец проверки
end
-- конец обработчика касания
end)
-- следующий предмет
endЗапусти Play (или Run) и убедись: