Menu
CoddyTech

Beanspruche die Fabrik

Lektion 6 von 18 im Kurs Roblox-Spiel: Fabrik-Tycoon von Coddy.

Ein Tycoon gehört jemandem. Das grüne Feld am Eingang beansprucht ihn: Der erste Spieler, der darauf tritt, wird zum Besitzer, die Fabrik startet und nur der Besitzer wird bezahlt. Der Besitzer ist eine Variable am Anfang des Skripts, die nil ist, bis jemand den Tycoon beansprucht:

local owner = nil

claimPad.Touched:Connect(function(hit)
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if player and not owner then
		owner = player
	end
end)

Wenn die Fabrik beansprucht wird, startet jeder Dropper darin. Die Dropper tragen ein Tag, Dropper, sodass CollectionService:GetTagged("Dropper") sie alle findet, egal, wo sie sich befinden. Gekaufte Dropper warten in ServerStorage, daher starten nur diejenigen, die sich im Workspace befinden.

Später kann die Fabrik erneut beansprucht werden, nachdem ihr Besitzer gegangen ist. Damit kein Dropper jemals zwei Schleifen ausführt, markiert startDropper einen laufenden Dropper mit einem Attribut und tut nichts, wenn dieses gesetzt ist.

Ein Schild über der Fabrik zeigt, wem sie gehört: ein SurfaceGui auf tycoon.Sign, wie auf jedem Schild.

challenge icon

Aufgabe

Mittel

Mache die Fabrik beanspruchbar:

  1. Rufe CollectionService ab und füge nahe am Anfang local owner = nil hinzu.
  2. Platziere ein Schild auf tycoon.Sign: ein SurfaceGui mit einem TextLabel namens Status, das es ausfüllt, mit weißem, skaliertem Text auf dunklem Hintergrund und dem Text Step on the green pad to claim this factory, sowie einer Funktion setSign(text).
  3. Gib in startDropper sofort zurück, wenn das Attribut Running des Droppers gesetzt ist; andernfalls setze es und lösche es, wenn die Schleife endet.
  4. Entferne die Zeile, die tycoon.Dropper startet. Wenn ein Spieler auf tycoon.ClaimPad tritt und es keinen Besitzer gibt: Mache ihn zum Besitzer, färbe das Pad grau (Color3.fromRGB(120, 120, 120), SmoothPlastic), setze das Schild auf Player1's Factory (mit seinem Name) und starte jeden getaggten Dropper im Workspace.
  5. Zahle am Sammler nur dem Besitzer aus (falls es einen gibt).

Drücke Play und beanspruche deine Fabrik, dann Check.

Probier es selbst

local Players = game:GetService("Players")
local Debris = game:GetService("Debris")
local Settings = require(game.ReplicatedStorage.Settings)

local tycoon = workspace.Tycoon

print("Ore is worth " .. Settings.OreValue .. " Cash")

-- Jeder Spieler erhält Cash auf der Bestenliste
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)

-- Ore: ein kleines Objekt, das Cash wert ist und unter einem Dropper erscheint
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

startDropper(tycoon.Dropper)

-- Das Förderband transportiert alles, was darauf liegt
tycoon.Conveyor.AssemblyLinearVelocity = Vector3.new(Settings.BeltSpeed, 0, 0)

-- Der Collector wandelt Ore in Cash um
tycoon.Collector.Touched:Connect(function(hit)
	if hit.Name == "Ore" then
		local value = hit:GetAttribute("Value")
		hit:Destroy()
		for _, player in Players:GetPlayers() do
			player.leaderstats.Cash.Value += value
		end
	end
end)
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Roblox-Spiel: Fabrik-Tycoon