Tetaskan Telur
Pelajaran 9 dari 18 dalam kursus Game Roblox: Simulator Hewan Peliharaan di Coddy.
Telur putih di dekat titik spawn memiliki ProximityPrompt: dekati telur itu, lalu Roblox akan menampilkan "Hatch" dengan tombol yang harus ditahan (E, atau ketukan di ponsel). Saat pemain menahannya cukup lama, prompt memicu Triggered di server, dengan pemain sebagai argumen:
workspace.Egg.ProximityPrompt.Triggered:Connect(function(player)
end)Server memeriksa harganya, mengambil koin, lalu memberikan hewan peliharaan. Hewan peliharaan berupa StringValue yang menyimpan namanya, di dalam folder Pets milik pemain. Semua yang server tempatkan di dalam pemain akan direplikasi ke client pemain tersebut, sehingga daftar hewan peliharaan di pelajaran berikutnya tahu apa yang harus ditampilkan.
Tantangan
Sedang- Saat pemain bergabung, berikan juga Folder bernama
Petskepada mereka. - Tulis
givePet(player, name): buat StringValue bernamaPetdengan Value berupa nama, di dalam Pets milik pemain, lalu kembalikan nilainya. - Hubungkan
workspace.Egg.ProximityPrompt.Triggered: jika pemain memiliki koin kurang dariSettings.EggPrice, hentikan proses; jika tidak, kurangi koin sejumlah harga, berikanCatkepada mereka, lalu cetakPlayer1 hatched a Cat(Name mereka).
Tekan Play, kumpulkan 25 koin, lalu tahan E di dekat telur. Setelah itu, tekan Periksa.
Coba sendiri
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")
local Settings = require(game.ReplicatedStorage.Settings)
local remotes = game.ReplicatedStorage.Remotes
local piles = workspace.Piles
local pileSpot = {} -- setiap tumpukan -> tempatnya berdiri
local lastHit = {} -- setiap pemain -> waktu pukulan terakhirnya
print("A Meadow pile gives " .. Settings.PileValue .. " coins")
-- Setiap pemain mendapat Coins di leaderboard
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 suatu tempat: salinan ServerStorage.CoinPile dengan kesehatan
-- 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.HealthGui.Label.Text = pile:GetAttribute("Health") .. "/" .. pile:GetAttribute("MaxHealth")
pileSpot[pile] = spot
pile.Parent = piles
return pile
end
-- Satu pukulan mengurangi kesehatan tumpukan sebesar 1;
-- saat mencapai 0, tumpukan hancur dan memberikan nilainya
local function hitPile(player, pile)
local health = pile:GetAttribute("Health") - 1
if health > 0 then
pile:SetAttribute("Health", health)
pile.HealthGui.Label.Text = health .. "/" .. pile:GetAttribute("MaxHealth")
return
end
player.leaderstats.Coins.Value += pile:GetAttribute("Value")
local spot = pileSpot[pile]
pileSpot[pile] = nil
pile:Destroy()
-- tumpukan baru di tempat yang sama beberapa detik kemudian
task.delay(Settings.RespawnTime, spawnPile, spot)
end
-- Satu tumpukan di setiap tempat di Meadow
for _, spot in workspace.Zones.Meadow.Spawns:GetChildren() do
spawnPile(spot)
end
-- client meminta untuk memukul tumpukan. Jangan pernah percaya client: siapa pun bisa mengirim
-- remote ini dengan apa saja, dari mana saja, secepat yang mereka mau.
remotes.Hit.OnServerEvent:Connect(function(player, pile)
-- tumpukan yang asli
if typeof(pile) ~= "Instance" or pile.Parent ~= piles then
return
end
-- dalam jangkauan
local character = player.Character
local root = character and character:FindFirstChild("HumanoidRootPart")
if not root or (root.Position - pile.Position).Magnitude > Settings.Reach then
return
end
-- tidak terlalu cepat
local now = time()
if lastHit[player] and now - lastHit[player] < Settings.HitCooldown then
return
end
lastHit[player] = now
hitPile(player, pile)
end)
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Game Roblox: Simulator Hewan Peliharaan
3Telur dan Hewan Peliharaan
Tetaskan TelurLatihan sendiri: Playground Roblox