Membeli Upgrade

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

Ini membawa kita ke tahap terakhir dari game loop - membeli upgrade. Dengan membiarkan pemain membeli upgrade yang meningkatkan ukuran tas item mereka, mereka dapat menghasilkan lebih banyak item per perjalanan dan mendapatkan lebih banyak emas.

Menciptakan Toko

Setiap toko akan memiliki tombol yang pemain klik untuk membeli tas item yang lebih besar. Toko itu sendiri akan menjadi bagian dengan SurfaceGUI, item yang memungkinkan teks ditulis di bagian.

Membuat Tanda

  1. Di Workspace, buat model baru bernama Toko.

  2. Di Toko, buat bagian blok baru bernama BuyButton.

  3. Di BuyButton, tambahkan Surface GUI baru dengan mengklik + dan menggulir ke GUI.

  4. Dalam GUI Permukaan, tambahkan Label Teks baru bernama BuyText. Label kecil akan muncul di suatu tempat di bagian.

  5. Tergantung pada cara bagian dibuat, label dapat berada di tempat lain. Jika Anda tidak melihat teks di samping yang Anda inginkan, masuk ke SurfaceGUI dan temukan property Wajah. Perubah properti itu sampai Anda melihat label teks.

Mengubah Teks Tanda

Saat ini, TextLabel sangat kecil dan sulit bagi pemain untuk melihat. Ini perlu di-scale up.

  1. Di properti BuyText, klik panah di samping Ukuran . Perubah Offset untuk X (kiri dan kanan) dan Y (naik dan turun) menjadi 0.

  2. Ubah skala X dan Y ke 0,5 untuk membuat segi empat.

  3. Gulir ke atas di properti LabelText dan klik panah kiri dari AnchorPoint . Ketik 0,5 untuk X dan Y. Ini menggeser bagian label Anda keluar dari pandangan tetapi Anda akan menempatkannya dengan benar di lain waktu.

  4. Gulir-down di properties dan buka Posisi . Ganti skala X dan Y ke 0.5 sehingga kotak berada di tengah.

  5. Dalam properti Beli Teks, geser ke bawah dan ganti Teks menjadi sesuatu yang menjelaskan. kejadian: "Buy Larger Bag: 100 gold" .

  6. Periksa TextScaled untuk menjadi di . Ini secara otomatis menyesuaikan teks Anda sehingga sesuai dengan kotak.

Menambahkan Detektor Klik

Pengguna akan membeli item dengan mengklik toko daripada hanya menyentuhnya. Skrip akan menggunakan detektor klik untuk memberi tahu jika seorang pengguna mengklik tanda toko. KlikDetektor adalah objek yang memungkinkan pengguna untuk berinteraksi dengan sesuatu di lingkungan, seperti membuka pintu.

  1. Di tombol Beli, tambahkan ClickDetector.

  2. Di BuyButton, tambahkan naskah baru bernama BuyScript dan berikan komentar deskriptif.

  3. Di BuyScript, buat variabel untuk menyimpan bagian tombol dan klik detector.


    -- Mari pemain mengklik tombol untuk membeli peningkatan yang meningkatkan Spaces
    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
  4. Buat fungsi baru bernama giveUpgrade() yang mendapatkan parameter bernama player . Fungsi akan meningkatkan ruang pemain setiap kali mereka mengklik tombol.


    local buyButton = script.Parent
    local clickDetector = buyButton.ClickDetector
    local function giveUpgrade(player)
    end
  5. Setelah fungsi, tulis connect click detector's MouseClick event ke function giveUpgrade() .


    local function giveUpgrade(player)
    end
    clickDetector.MouseClick:Connect(giveUpgrade)
  6. Tambahkan pernyataan cetak dalam giveUpgrade() untuk menguji fungsi.


    local function giveUpgrade(player)
    print("Someone clicked the button.")
    end
  7. Mainkan proyek Anda. Klik tombol dan periksa bahwa Anda melihat teks di Jendela Keluar.

Tips Troubleshoot

Masalah: Anda tidak dapat mengklik tombol atau mouse cursor tidak muncul di tombol.

  • Pastikan bahwa objek ClickDetector adalah anak dari bagian yang ingin Anda klik.
  • Periksa bahwa karakter Anda cukup dekat dengan tombol. Atau, pastikan alat tidak dilengkapi.

Membeli Upgrade

Dengan tombol yang berfungsi, saatnya untuk menambahkan kode ke giveUpgrade untuk menghapus emas pemain dalam tukaran tas yang ditingkatkan.

Menambahkan Variabel Peningkatan

Setiap peningkatan akan memiliki dua variabel: biaya peningkatan dan berapa banyak ruang yang tersedia.

  1. Di BuyScript, di bawah local clickDetector, buat dua variabel:

    • newSpace : Berapa banyak ruang yang ditambahkan peningkatan saat dibeli.
    • upgradeCost : Biaya perbaikan tunggal

    -- Variabel untuk upgrade
    local newSpaces = 10
    local upgradeCost = 100

Memberikan Upgrade

Sebelum menjual pemain upgrade, Anda perlu memeriksa apakah mereka memiliki cukup uang. Jika mereka melakukannya, Anda akan menambahkan ke jumlah maksimum ruang mereka.

  1. Dalam giveUpgrade() , ketik berikut untuk mendapatkan statistik pemain sehingga Anda dapat mengakses variabel emas dan ruang mereka.


    local function giveUpgrade(player)
    print("Someone clicked the button")
    -- Dapatkan papan peringkat pemain untuk mendapatkan IntValue lainnya
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- Mendapatkan uang dan ruang pemain untuk membuat perubahan
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    end
    end
  2. Setelah menulis variabel untuk ruang, buat pernyataan if untuk menentukan apakah nilai playerGold lebih besar atau sama dengan biaya peningkatan.


    local function giveUpgrade(player)
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    local playerGold = playerStats:FindFirstChild("Gold")
    local playerSpaces = playerStats:FindFirstChild("Spaces")
    -- Memeriksa apakah pemain memiliki cukup uang untuk upgrade
    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    end
    end
    end
  3. Dalam pernyataan if, kurangi biaya upgradedari emas pemain.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    -- Kurangkan biaya item dari uang pemain
    playerGold.Value -= upgradeCost
    end
  4. Pada baris berikutnya, tambahkan jumlah ruang pemain saat ini bersama dengan ruang baru yang diberikan per upgrade.


    if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
    playerGold.Value -= upgradeCost
    playerSpaces.Value += newSpaces
    end
  5. Mainkan proyek Anda dan periksa papan peringkat untuk melihat apakah peningkatan ruang bekerja.

Tips Troubleshoot

Pada titik ini, peningkatan tidak berfungsi seperti yang diharapkan, coba salah satu dari berikut.

  • Pastikan apa pun di () dari FindFirstChild() memiliki kutipan di kedua sisi, seperti player stats .
  • Periksa bahwa setiap string dalam FindFirstChild sama persis dengan nama IntValue di script PlayerSetup. Misalnya, jika kode Anda menggunakan Rubies sebagai uang, Anda harus memiliki FindFirstChild("Rubies") .
  • Pastikan bahwa giveUpgrade() di atas clickDetector.MouseClick .

Selesaikan Skrip BuyScript

Versi lengkap dari script dapat diacak di bawah ini.


-- Mari pemain mengklik tombol untuk membeli upgrade yang meningkatkan MaxSpaces
local buyButton = script.Parent
local clickDetector = buyButton.ClickDetector
-- Variabel untuk upgrade
local newSpaces = 10
local upgradeCost = 100
local function giveUpgrade(player)
print("Someone clicked the button")
-- Dapatkan papan peringkat pemain untuk mendapatkan IntValue lainnya
local playerStats = player:FindFirstChild("leaderstats")
if playerStats then
-- Mendapatkan uang dan ruang pemain untuk membuat perubahan
local playerGold = playerStats:FindFirstChild("Gold")
local playerSpaces = playerStats:FindFirstChild("Spaces")
-- Memeriksa apakah pemain memiliki cukup uang untuk upgrade
if playerGold and playerSpaces and playerGold.Value >= upgradeCost then
print("Player can buy item")
-- Kurangkan biaya item dari uang pemain
playerGold.Value -= upgradeCost
playerSpaces.Value += newSpaces
end
end
end
clickDetector.MouseClick:Connect(giveUpgrade)