Mengumpulkan Item

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

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.

  1. 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.

  2. 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.

  3. Pastikan semua bagian terancang .

  4. Jadi item tidak dapat dihasilkan saat mereka menghilang, buat BoolValue bernama CanHarvest untuk melacak statusnya.

  5. 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.

  1. Unduh alat pemula di bawah ini.

  2. Di Explorer, di bawah Workspace, klik kanan pada StarterPack. Kemudian, pilih Masukkan dari File .

  3. Pilih file yang diunduh, starterTool.rbxm.

  4. 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.

  1. Di StarterPack, di bawah StarterTool, tambahkan naskah baru bernama ToolScript.

  2. 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 dihasilkan
    local tool = script.Parent
    local 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.

  1. Buat fungsi baru bernama onTouch() dengan parameter bernama partTouched .


    local tool = script.Parent
    local toolPart = tool.Handle
    local function onTouch(partTouched)
    end
  2. Dalam 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")
    end
  3. Sekarang 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 then
    end
    end
  4. Dalam 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 berfungsi
    print("Found an item")
    end
  5. Di 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 then
    print("Found an item")
    end
    end
    toolPart.Touched:Connect(onTouch)
  6. 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.

  1. Pertama, dapatkan pemain menggunakan alat. Dalam ToolScript, di bawah local item = toolitem , dan di atas fungsi khusus, ketik:


    local item = toolitem
    local backpack = tool.Parent
    local player = backpack.Parent
    local function onTouch(partTouched)
  2. Pada baris berikutnya, temukan statistik pemain menggunakan fungsi FindFirstChild().


    local backpack = tool.Parent
    local player = backpack.Parent
    local playerStats = player:FindFirstChild("leaderstats")
    local function onTouch(partTouched)
  3. 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.

  1. 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 then
    if canHarvest.Value == true and playerItems.Value < playerSpaces.Value then
    end
    end
    end
  2. Dalam if statement itu sendiri, tambahkan item pemain dengan mengetik playerItems.Value += 1 .


    if canHarvest then
    if canHarvest.Value == true and playerItems.Value < playerSpaces.Value then
    playerItems.Value += 1
    end
    end
  3. Mainkan 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.

  1. 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 then
    if canHarvest.Value == true and playerItems.Value < playerSpaces.Value then
    playerItems.Value += 1
    canHarvest.Value = false
    end
    end
  2. Setel 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 then
    playerItems.Value += 1
    canHarvest.Value = false
    partTouched.Transparency = 1
    partTouched.CanCollide = false
    end
  3. Ketik 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 then
    playerItems.Value += 1
    canHarvest.Value = false
    partTouched.Transparency = 1
    partTouched.CanCollide = false
    task.wait(5)
    end
  4. Setelah 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 = true
    partTouched.Transparency = 0
    partTouched.CanCollide = true
    end
  5. Mainkan 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)