Menu
CoddyTech

Bir Yığını Böl

Coddy'nin Roblox Oyunu: Evcil Hayvan Simülatörü kursunda ders 3 / 18.

Oyuncular yığınlara tıklayarak onları kırar. Bir parçanın içindeki ClickDetector, yeterince yakında olan oyuncu tıkladığında sunucuda MouseClick olayını tetikler.

Her tıklama, yığının Health değerini 1 azaltır. Değer 0'a ulaştığında yığın kırılır: oyuncu yığının Value değerini jeton olarak alır ve yığın yok edilir.

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

Tıklama, spawnPile içinde bağlanır ve spawnPile'ın altında tanımlanan hitPile'ı çağırır. Bir işlev yalnızca önceden tanımlanmış yerel bir adı kullanabilir; bu nedenle önce, her ikisinin de üstünde local hitPile bildirimini yap ve daha sonra function hitPile(player, pile) ile işlevi tanımla.

challenge icon

Görev

Kolay
  1. spawnPile işlevinin üstünde local hitPile bildirimini yap.
  2. spawnPile içinde yığına bir ClickDetector ekle ve MouseClick olayını hitPile(player, pile) işlevine bağla.
  3. spawnPile işlevinin altında function hitPile(player, pile) yaz: Health özniteliğinden 1 çıkar; hâlâ 0'ın üzerindeyse değeri kaydet ve dur; aksi takdirde yığının Value değerini oyuncunun Coins değerine ekle ve yığını yok et.

Play'e bas ve bir yığına üç kez tıkla. Ardından Check'e bas.

Kendin dene

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")

-- Her oyuncu, liderlik tablosunda Coins kazanır
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)

-- Bir noktadaki para yığını: ServerStorage.CoinPile öğesinin, sağlık
-- ve değer bilgileri öznitelik olarak ayarlanmış bir kopyası
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

-- Meadow içindeki her noktada bir yığın
for _, spot in workspace.Zones.Meadow.Spawns:GetChildren() do
	spawnPile(spot)
end
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Roblox Oyunu: Evcil Hayvan Simülatörü bölümündeki tüm dersler