Dengan papan peringkat yang dibuat, pemain memerlukan sesuatu untuk dikumpulkan. Untuk itu, Anda perlu menciptakan item 3D untuk pemain untuk ditemukan di dunia. Di bawah ini adalah video proses pemain menyiapkan item.
Membangun Item
Item dalam pengalaman adalah model 3D yang pemain gunakan alat untuk menghasilkan. Setiap item, setelah dihasilkan, menghilang dan kemudian muncul kembali setelah jumlah waktu yang terbatas.
Untuk item ini, mengacu pada dokumen desain permainan Anda. Seri ini menggunakan kristal sebagai contoh.
Buat objek, baik menggunakan bagian atau objek yang ditemukan oleh pengguna yang dipercaya di Pasar.
Jika diinginkan, unduh bagian kristal dengan link ini link. Untuk menambahkannya, klik kanan di Workspace dan pilih Guncang dari File.
Jika menggunakan bagian Anda sendiri, kumpulkan semua bagian menjadi satu Model . Salah satu cara melakukan ini adalah dengan mengSelect semua item, mengklik kanan pada bagian, dan mengSelect Grup . Ini meng создаsikan model yang mengatur bagian Anda.
Pastikan semua bagian terancang .
Jadi item tidak dapat dihasilkan saat mereka menghilang, buat BoolValue bernama CanHarvest untuk melacak statusnya.
Di Properties for CanHarvest, periksa kotak Nilai . Meninjau kotak nilai membuat boeing benar, yang berarti pemain dapat menghasilkan item.
Membuat Alat
Pemain memerlukan sesuatu seperti kapak atau sebuah pelle untuk mengumpulkan item dengan. Di Roblox, item yang pemain dapat melengkapi dan menggunakan disebut alat . Pelajaran ini menggunakan alat pemula dengan semua bagian dan animasi yang sudah dibuat sehingga Anda dapat menyesuaikan nanti.
Menambahkan Alat
Untuk pemain untuk menggunakan alat pemula, unduh dan letakkan di StarterPack.
Di Explorer, di bawah Workspace, klik kanan pada StarterPack. Kemudian, pilih Masukkan dari File .
Pilih file yang diunduh, starterTool.rbxm.
Tes proyek Anda. Pemain harus dilengkapi dengan alat ini begitu mereka mulai. Dalam game, tekan 1 untuk menggunakan atau menempatkan alat. Klik kiri untuk menyetirnya.
Mengkode Alat
Jika alat mengenai objek yang dapat dihasilkan dan pemain memiliki cukup ruang di tas mereka, jumlah item pemain meningkat 1 di papan peringkat. Mengambil item menghilangkan selama beberapa detik dan menjadi tidak dapat diserbu selama beberapa detik sebelum muncul kembali. Ini menggairahkan pemain untuk menjelajahi untuk menemukan lebih banyak item, bukan hanya mengklik item yang sama.
Mengatur skrip
Pada titik ini, tambahkan skrip ke alat ini. Skrip ini menangani apa yang terjadi ketika alat menyentuh objek yang dapat dihasilkan.
Di StarterPack, di bawah StarterTool, tambahkan naskah baru bernama ToolScript.
Dalam script, tulis komentar deskriptif di atas, dan kemudian buat variabel untuk menyimpan bagian alat dan alat itu sendiri.
-- Memberi pemain item saat mereka menyentuh bagian yang dapat dihasilkanlocal tool = script.Parentlocal toolPart = tool.Handle
Memeriksa untuk Item
Setiap kali alat menyentuh objek, itu memeriksa apakah objek itu memiliki CanHarvest di dalam dan apakah boolean di set ke Benar.
Buat fungsi baru bernama onTouch() dengan parameter bernama partTouched .
local tool = script.Parentlocal toolPart = tool.Handlelocal function onTouch(partTouched)endDalam fungsi itu, buat variabel lokal bernama canHarvest. Kemudian, gunakan fungsi FindFirstChild() untuk melihat apakah ada CanHarvest Boolean di bagian tersebut.
local function onTouch(partTouched)local canHarvest = partTouched:FindFirstChild("CanHarvest")endSekarang skrip perlu memeriksa apakah ada yang ditemukan dan jika ya, eksekuti kode. Untuk melakukan ini, buat pernyataan if di mana kondisi adalah canHarvest. Jika ada sesuatu yang ada di canHarvest, pernyataan ini mengevaluasi ke benar.
local function onTouch(partTouched)local canHarvest = partTouched:FindFirstChild("CanHarvest")if canHarvest thenendendDalam pernyataan if, tambahkan pernyataan cetak untuk melihat apakah script bekerja. Anda dapat menulis logika untuk menghasilkan item setelah Anda yakin itu bekerja.
if canHarvest then-- Digunakan untuk menguji jika kode berfungsiprint("Found an item")endDi bawah fungsi 's end pernyataan, tambahkan toolPart.Touched:Connect(onTouch) . Ini memungkinkan script untuk memeriksa apakah ada yang menyentuh alat (atau dalam kasus ini, tangannya) dan jika demikian, memanggil onTouch() .
local function onTouch(partTouched)local canHarvest = partTouched:FindFirstChild("CanHarvest")if canHarvest thenprint("Found an item")endendtoolPart.Touched:Connect(onTouch)Mainkan proyek dan gunakan alat pada item yang dapat dihasilkan (klik kiri untuk menyetir). Pastikan Anda melihat pesan "Menemukan item" di Jendela Keluar.
Tips Troubleshoot
Jika Anda tidak melihat pesan tersebut, coba tips berikut.
- Jika Anda menggunakan bagian dan meshes yang disesuaikan, mungkin terjadi kesalahan. Skrip hanya berfungsi jika objek CanHarvest adalah anak dari bagian yang di sentuh alat.
- Pastikan alat ini ada di StarterPack, bukan di Workspace.
- Periksa apakah bagian itu terancang.
Mendapatkan Statistik Pemain
Sebelum meningkatkan item pemain, alat harus menemukan lokasi berapa banyak item yang dimiliki pemain di papan peringkat pemain itu. Setelah alat memiliki akses ke papan peringkat, itu dapat mengubah jumlah item pemain.
Pertama, dapatkan pemain menggunakan alat. Dalam ToolScript, di bawah local item = toolitem , dan di atas fungsi khusus, ketik:
local item = toolitemlocal backpack = tool.Parentlocal player = backpack.Parentlocal function onTouch(partTouched)Pada baris berikutnya, temukan statistik pemain menggunakan fungsi FindFirstChild().
local backpack = tool.Parentlocal player = backpack.Parentlocal playerStats = player:FindFirstChild("leaderstats")local function onTouch(partTouched)Di bawah local playerStats, buat variabel untuk menyimpan statistik item dan ruang.
local playerStats = player:FindFirstChild("leaderstats")local playerItems = playerStats:FindFirstChild("Items")local playerSpaces = playerStats:FindFirstChild("Spaces")
Memeriksa untuk Objek yang Dapat Dipanen
Sekarang script alat memiliki variabel playerItems dan playerSpaces yang dibuat, Anda dapat mulai memberi pemain item. Gunakan fungsi yang dibuat untuk memeriksa apakah objek yang menyentuh alat dapat dihasilkan, dan apakah pemain memiliki cukup ruang di tas mereka untuk meningkatkan item yang ditunjukkan di papan peringkat dengan satu.
Skrip akan memerlukan if statement dengan dua kondisi untuk dipenuhi. Mulai dengan menciptakan if statement, lalu tambahkan kondisi berikut, yang terhubung dengan kata kunci and.
- canHarvest.Value == true
- playerItems.Value < playerSpaces.Value
local function onTouch(partTouched)local canHarvest = partTouched.Parent:FindFirstChild("CanHarvest")if canHarvest thenif canHarvest.Value == true and playerItems.Value < playerSpaces.Value thenendendendDalam if statement itu sendiri, tambahkan item pemain dengan mengetik playerItems.Value += 1 .
if canHarvest thenif canHarvest.Value == true and playerItems.Value < playerSpaces.Value thenplayerItems.Value += 1endendMainkan proyek Anda; gunakan alat Anda untuk menghasilkan item dan memeriksa bahwa jumlah item meningkat.
Mengatur ulang Item
Ketika item dihasilkan, itu akan diatur ulang dalam dua cara:
- Item akan menghilang dan tidak dapat diinteraksi
- Dapat menetapkan CanHarvest ke false
Item kemudian akan kembali normal setelah waktu yang singkat. Dengan cara ini, pemain hanya mendapatkan satu item untuk setiap panen, dan perlu mencari di sekitar lebih banyak saat resets asli.
Di bawah di mana item ditambahkan, tetapkan canHarvest ke false. Dengan membuat nilai canHarvest false segera setelah pemain mengharvest item, script tidak akan memberikan lebih dari satu item per alat yang dihantam.
if canHarvest thenif canHarvest.Value == true and playerItems.Value < playerSpaces.Value thenplayerItems.Value += 1canHarvest.Value = falseendendSetel nilai ke false, atur Transparansi bagian menjadi 1 (tidak terlihat), dan CanCollide menjadi false, yang berarti pemain tidak dapat menyentuhnya.
if canHarvest.Value == true and playerItems.Value < playerSpaces.Value thenplayerItems.Value += 1canHarvest.Value = falsepartTouched.Transparency = 1partTouched.CanCollide = falseendKetik task.wait(5) untuk memberikan waktu bagi item untuk reset. 5 adalah angka yang direkomendasikan, dan mungkin berbeda untuk berapa lama Anda ingin untuk pengalaman Anda.
if canHarvest.Value == true and playerItems.Value < playerSpaces.Value thenplayerItems.Value += 1canHarvest.Value = falsepartTouched.Transparency = 1partTouched.CanCollide = falsetask.wait(5)endSetelah menunggu, lakukan sebaliknya dari kode sebelumnya, dengan menetapkan CanHarvest ke benar dan mengatur ulang Transparency dan CanCollide ke nilai asli mereka.
task.wait(5)canHarvest.Value = truepartTouched.Transparency = 0partTouched.CanCollide = trueendMainkan proyek dan periksa:
- Pemain hanya mendapatkan 1 item untuk menghasilkan item.
- Item menghilang dan kemudian muncul kembali setelah lima detik.
Tips Troubleshoot
Pada saat ini, jika salah satu dari check tidak lulus mencoba salah satu dari berikut.
- Periksa apakah Transparency dan CanCollide benar-benar diketik dan dikapitalisasi dengan benar.
- Pastikan menggunakan canHarvest.Value dan bukan canHarvest = true.
Selesaikan Script Alat
Versi lengkap dari script dapat diacak di bawah ini.
local toolPart = script.Parent
local tool = toolPart.Parent
local backpack = tool.Parent
local player = backpack.Parent
local playerStats = player:FindFirstChild("leaderstats")
local playerItems = playerStats:FindFirstChild("Items")
local playerSpaces = playerStats:FindFirstChild("Spaces")
local function onTouch(partTouched)
local canHarvest = partTouched:FindFirstChild("CanHarvest")
if canHarvest then
if canHarvest.Value == true and playerItems.Value < playerSpaces.Value then
playerItems.Value += 1
canHarvest.Value = false
-- Reset bagianTouched, item yang dihasilkan
partTouched.Transparency = 1
partTouched.CanCollide = false
task.wait(5)
-- Buat item yang dihasilkan kembali dan dapat digunakan lagi
canHarvest.Value = true
partTouched.Transparency = 0
partTouched.CanCollide = true
end
end
end
toolPart.Touched:Connect(onTouch)