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ıkTı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.
Görev
KolayspawnPileişlevinin üstündelocal hitPilebildirimini yap.spawnPileiçinde yığına bir ClickDetector ekle veMouseClickolayınıhitPile(player, pile)işlevine bağla.spawnPileişlevinin altındafunction 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
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.