Tabela
Coddy'nin Roblox Oyunu: Fabrika Tycoon kursunda ders 7 / 22.
Fabrikanın üzerindeki tabela, fabrikanın kime ait olduğunu belirtir. Bir parçanın yüzeyindeki metin, parçanın içinde bulunan ve bir TextLabel içeren bir SurfaceGui'dir. Adlandırılmış etiketleri yeniden bulmak kolaydır ve küçük bir işlev, tabeladaki her değişikliği tek bir yerde tutar:
local gui = Instance.new("SurfaceGui")
gui.Parent = tycoon.Sign
local signLabel = Instance.new("TextLabel")
signLabel.Name = "Status"
signLabel.Size = UDim2.fromScale(1, 1)
signLabel.TextScaled = true
signLabel.Text = "Opening soon"
signLabel.Parent = guiUDim2.fromScale(1, 1) etiketi tüm yüzeyi kaplayacak şekilde boyutlandırır ve TextScaled sözcükleri yüzeye sığdırır.
Görev
OrtaFabrikanın kime ait olduğunu belirten bir tabelayı fabrikanın üzerine yerleştir.
tycoon.Signiçine, fabrikayı kaplayan veStatusadında bir TextLabel içeren bir SurfaceGui ekle; metni ölçekli olsun veStep on the green pad to claim this factoryyazsın.- Bu etiketin Text özelliğini ayarlayan
setSign(text)fonksiyonunu yaz. - Fabrika sahiplenildiğinde
setSign(player.Name .. "'s Factory")çağır.
“Oyna” düğmesine bas ve yeşil platforma bas: tabelada adın görünür. Ardından “Kontrol et” düğmesine bas.
Kendin dene
local Players = game:GetService("Players")
local CollectionService = game:GetService("CollectionService")
local Debris = game:GetService("Debris")
local Settings = require(game.ReplicatedStorage.Settings)
local tycoon = workspace.Tycoon
local owner = nil
print("Ore is worth " .. Settings.OreValue .. " Cash")
-- Her oyuncu liderlik tablosunda Cash kazanır
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)
-- Ders 7: Sign buraya yerleştirilir
-- Ore: dropper'ın altına bırakılan, Cash değerinde küçük bir parça
local function dropOre(dropper)
local ore = Instance.new("Part")
ore.Name = "Ore"
ore.Size = Vector3.new(1, 1, 1)
ore.Color = Color3.fromRGB(150, 150, 160)
ore.Position = dropper.Position - Vector3.new(0, 2.5, 0)
ore:SetAttribute("Value", Settings.OreValue)
if math.random() < Settings.GoldChance then
ore.Color = Color3.fromRGB(255, 200, 40)
ore.Material = Enum.Material.Neon
ore:SetAttribute("Value", Settings.OreValue * 5)
end
ore.Parent = workspace
Debris:AddItem(ore, 20)
end
local function startDropper(dropper)
task.spawn(function()
while dropper:IsDescendantOf(workspace) do
dropOre(dropper)
task.wait(Settings.DropInterval)
end
end)
end
-- Konveyör, üzerinde duran her şeyi taşır
tycoon.Conveyor.AssemblyLinearVelocity = Vector3.new(Settings.BeltSpeed, 0, 0)
-- Toplayıcı, Ore'yi Cash'e dönüştürür
tycoon.Collector.Touched:Connect(function(hit)
if hit.Name == "Ore" then
local value = hit:GetAttribute("Value")
hit:Destroy()
if owner then
owner.leaderstats.Cash.Value += value
end
end
end)
-- Sahiplenme: platforma ilk basan oyuncu fabrikanın sahibi olur
local claimPad = tycoon.ClaimPad
claimPad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player and not owner then
owner = player
claimPad.Color = Color3.fromRGB(120, 120, 120)
claimPad.Material = Enum.Material.SmoothPlastic
for _, dropper in CollectionService:GetTagged("Dropper") do
if dropper:IsDescendantOf(workspace) then
startDropper(dropper)
end
end
end
end)
Roblox Oyunu: Fabrika Tycoon bölümündeki tüm dersler
Kendi başına pratik yap: Roblox playground