Menu
CoddyTech

Satın Alma Alanı

Coddy'nin Roblox Oyunu: Fabrika Tycoon kursunda ders 8 / 22.

Nakit harcamak içindir. Bandın önündeki mavi pedlerin her biri bir şey satın alır; ilki ikinci bir damlalık satın alır. Bir ped fiyatını, dünya oluşturulurken ayarlanan Price özniteliğinden öğrenir.

Satın aldığı öğe, doğru yerde olacak şekilde ServerStorage.TycoonItems içinde bekler. Satın alma işlemi öğeyi fabrikanın Built klasörüne taşır; böylece öğe dünyaya eklenir. Ardından ped, kimsenin üzerine basamayacağı ServerStorage'a taşınır. Yok edilmez, taşınır: sonraki bir derste pedler geri getirilir.

if cash.Value >= price then
	cash.Value -= price
	pad.Parent = ServerStorage
	items.Dropper2.Parent = tycoon.Built
end

Pede dokunan her uzuv, aynı anda birkaç kez Touched olayını tetikler. İlk dokunuşla satın alma yapıldıktan sonra ped artık tycoon.Buttons içinde olmadığından, önce bunu kontrol etmek çift satın almayı önler.

challenge icon

Görev

Orta

İlk mavi pedin ikinci bir damlatıcı satın almasını sağla.

  1. Üst kısma yakın bir yere: local items = ServerStorage.TycoonItems.
  2. tycoon.Buttons.Dropper2Pad'in Touched olayında, oyuncu owner değilse veya ped tycoon.Buttons içinde değilse geri dön.
  3. Nakitleri Price özelliğindeki değere eşit veya daha fazlaysa, bu tutarı düş, pedi ServerStorage'a taşı, items.Dropper2'yi tycoon.Built içine taşı ve çalıştır.

“Oyna”ya bas, 30 Nakit kazan ve pede bas: ikinci bir damlatıcı belirir. Ardından “Kontrol et”e 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 alı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)

-- Fabrikanın üzerindeki tabela
local gui = Instance.new("SurfaceGui")
gui.Parent = tycoon.Sign

local signLabel = Instance.new("TextLabel")
signLabel.Name = "Status"
signLabel.Size = UDim2.fromScale(1, 1)
signLabel.BackgroundColor3 = Color3.fromRGB(25, 25, 35)
signLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
signLabel.TextScaled = true
signLabel.Text = "Step on the green pad to claim this factory"
signLabel.Parent = gui

local function setSign(text)
	signLabel.Text = text
end

-- Ore: dropper 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ı, cevheri 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)

-- Ders 8: Buy Pad buraya gelecek

-- Sahiplenme: pede 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
		setSign(player.Name .. "'s Factory")
		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