Roblox · Тайкун · урок 1
Тайкун — симулятор бизнеса: зарабатываешь, покупаешь, производство приносит доход само. Сегодня: здание, которое достаётся первому вошедшему, и кошелёк с экраном денег.
Синим — что добавляем на этом уроке.
Workspace └─ IndustryModel (Model) — всё производство ├─ Decoration_Items (Folder) — стены, пол │ └─ Door (Part) — полупрозрачная, CanCollide выкл. │ ├─ OwnerGui (SurfaceGui) │ │ ├─ OwnedBy (TextLabel) — «Владелец:» │ │ └─ Owner (TextLabel) — имя игрока │ └─ OwnerScript (Script) └─ Values (Folder) └─ Owner (ObjectValue) — ссылка на игрока-владельца ServerScriptService └─ Stats (Script) StarterGui └─ MoneyGui (ScreenGui) └─ MoneyFrame (Frame) └─ Money (TextLabel) └─ UpdateMoneyLocal (LocalScript)
Где: Workspace → IndustryModel → Decoration_Items → Door · Script
Зачем: Первый, кто коснулся двери, становится владельцем; его имя появляется на двери.
-- дверь, в которой лежит скрипт
local door = script.Parent
-- папка Values: Door → Decoration_Items → IndustryModel
local valuesFolder = door.Parent.Parent.Values
-- срабатывает, когда что-то касается двери
door.Touched:Connect(function(otherPart: BasePart)
-- коснулся персонаж, а владельца у здания ещё нет
if otherPart.Parent:FindFirstChildOfClass("Humanoid") and valuesFolder.Owner.Value == nil then
-- находим игрока по персонажу
local player = game.Players:GetPlayerFromCharacter(otherPart.Parent)
-- записываем игрока во владельцы
valuesFolder.Owner.Value = player
-- пишем имя владельца на двери
door.OwnerGui.Owner.Text = player.Name
-- конец проверки
end
-- конец обработчика касания
end)Где: ServerScriptService · Script
Зачем: Создаёт каждому игроку кошелёк leaderstats → Money.
-- срабатывает, когда игрок заходит в игру
game.Players.PlayerAdded:Connect(function(player)
-- создаём папку внутри игрока
local leaderstats = Instance.new("Folder", player)
-- с таким именем Roblox показывает её в таблице лидеров
leaderstats.Name = "leaderstats"
-- числовой контейнер для денег
local money = Instance.new("NumberValue", leaderstats)
-- называем его Money
money.Name = "Money"
-- стартовый баланс
money.Value = 0
-- конец обработчика
end)Где: StarterGui → MoneyGui → MoneyFrame → Money · LocalScript
Зачем: Показывает на экране, сколько у игрока денег.
-- текстовое поле Money
local moneyText = script.Parent
-- игрок, у которого открыт этот экран
local player = game.Players.LocalPlayer
-- ждём, пока сервер создаст кошелёк
local money = player:WaitForChild("leaderstats"):WaitForChild("Money")
-- функция обновления надписи
local function UpdateMoney(newMoney)
-- показываем сумму со знаком $
moneyText.Text = newMoney .. " $"
-- конец функции
end
-- сразу показываем текущий баланс
UpdateMoney(money.Value)
-- обновляем надпись при каждом изменении денег
money.Changed:Connect(UpdateMoney)Запусти Play (или Run) и убедись: