Menu
CoddyTech

Einen Haufen teilen

Lektion 3 von 18 im Kurs Roblox-Spiel: Haustiersimulator von Coddy.

Spieler zerstören Haufen, indem sie darauf klicken. Ein ClickDetector innerhalb eines Parts löst auf dem Server MouseClick aus, wobei der Spieler, der geklickt hat, übergeben wird, wenn er nah genug ist.

Jeder Klick zieht dem Haufen 1 von seiner Health ab. Wenn sie 0 erreicht, zerbricht der Haufen: Der Spieler erhält seinen Value in Münzen, und der Haufen wird zerstört.

local health = pile:GetAttribute("Health") - 1
if health > 0 then
	pile:SetAttribute("Health", health)
	return
end
-- kaputt

Der Klick wird innerhalb von spawnPile verbunden und ruft hitPile auf, das unterhalb von spawnPile geschrieben wird. Eine Funktion kann nur einen lokalen Namen verwenden, der bereits deklariert wurde. Deklariere also zuerst local hitPile oberhalb von beiden und ergänze die Funktion später mit function hitPile(player, pile).

challenge icon

Aufgabe

Einfach
  1. Füge oberhalb von spawnPile die Deklaration local hitPile ein.
  2. Füge in spawnPile dem Haufen einen ClickDetector hinzu und verbinde sein MouseClick mit hitPile(player, pile).
  3. Schreibe unterhalb von spawnPile function hitPile(player, pile): Ziehe 1 vom Health-Attribut ab; wenn es weiterhin über 0 liegt, speichere den Wert und beende die Funktion; andernfalls addiere den Value des Haufens zu den Coins des Spielers und zerstöre den Haufen.

Klicke auf Play und klicke dreimal auf einen Haufen. Klicke dann auf Check.

Probier es selbst

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

local piles = workspace.Piles

print("A Meadow pile gives " .. Settings.PileValue .. " coins")

-- Jeder Spieler erhält Coins auf der Bestenliste
Players.PlayerAdded:Connect(function(player)
	local leaderstats = Instance.new("Folder")
	leaderstats.Name = "leaderstats"
	leaderstats.Parent = player

	local coins = Instance.new("IntValue")
	coins.Name = "Coins"
	coins.Parent = leaderstats
end)

-- Ein Münzhaufen an einem spot: eine Kopie von ServerStorage.CoinPile mit Gesundheit
-- und Wert als Attribute
local function spawnPile(spot)
	local pile = ServerStorage.CoinPile:Clone()
	pile.Position = spot.Position
	pile:SetAttribute("MaxHealth", Settings.PileHealth)
	pile:SetAttribute("Health", Settings.PileHealth)
	pile:SetAttribute("Value", Settings.PileValue)
	pile.Parent = piles
	return pile
end

-- Ein Haufen an jedem spot in Meadow
for _, spot in workspace.Zones.Meadow.Spawns:GetChildren() do
	spawnPile(spot)
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: Haustiersimulator