Menu
CoddyTech

Pecahkan Tumpukan

Pelajaran 3 dari 18 dalam kursus Game Roblox: Simulator Hewan Peliharaan di Coddy.

Pemain memecahkan tumpukan dengan mengekliknya. ClickDetector di dalam sebuah bagian memicu MouseClick di server, dengan pemain yang mengeklik, saat mereka cukup dekat.

Setiap klik mengurangi Health tumpukan sebanyak 1. Saat nilainya mencapai 0, tumpukan itu pecah: pemain mendapat koin sebanyak Value-nya, lalu tumpukan itu dihancurkan.

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

Klik dihubungkan di dalam spawnPile, lalu memanggil hitPile, yang ditulis di bawah spawnPile. Sebuah fungsi hanya dapat menggunakan nama lokal yang sudah dideklarasikan, jadi deklarasikan local hitPile terlebih dahulu, sebelum keduanya, lalu isi nanti dengan function hitPile(player, pile).

challenge icon

Tantangan

Mudah
  1. Di atas spawnPile, deklarasikan local hitPile.
  2. Di dalam spawnPile, tambahkan ClickDetector ke pile dan hubungkan MouseClick-nya ke hitPile(player, pile).
  3. Di bawah spawnPile, tulis function hitPile(player, pile): kurangi atribut Health sebanyak 1; jika nilainya masih di atas 0, simpan nilainya lalu hentikan; jika tidak, tambahkan Value dari pile ke Coins milik pemain lalu hancurkan pile.

Tekan Play dan klik pile tiga kali. Lalu tekan Periksa.

Coba sendiri

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

-- Setiap pemain mendapat Coins di papan peringkat
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)

-- Tumpukan koin di sebuah lokasi: salinan ServerStorage.CoinPile dengan kesehatannya
-- dan nilainya sebagai atribut
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

-- Satu tumpukan di setiap lokasi di Meadow
for _, spot in workspace.Zones.Meadow.Spawns:GetChildren() do
	spawnPile(spot)
end
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Game Roblox: Simulator Hewan Peliharaan

Latihan sendiri: Playground Roblox