Jual barang

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

Untuk tahap berikutnya dari lingkaran permainan, pemain perlu menjual barang-barang mereka untuk emas agar mereka dapat membeli lebih banyak ruang di ransel mereka.

Buat platform jual

Pemain akan menjual barang-barang mereka dengan melangkah ke platform yang memberi mereka emas untuk setiap barang di tas mereka.

Siapkan platform

Platform bisa menjadi bagian apa pun dan akan termasuk skrip yang menangani penjualan.

  1. Buat bagian baru bernama SellPlatform. Sesuaikan agar sesuai dengan tema pengalaman Anda.

  2. Di SellPlatform, buat skrip baru bernama SellScript dan tambahkan komentar.

  3. Di SellScript, ketik local sellPart = script.Parent untuk mendapatkan bagian SellPlatform.


    -- Menjual semua barang pemain dan memberi mereka emas
    local sellPart = script.Parent

Tangani peristiwa sentuhan

Untuk menggunakan platform, skrip membutuhkan fungsi untuk memeriksa apakah ada pemain yang menyentuhnya.

  1. Buat fungsi bernama onTouch() yang memeriksa apakah pemain menyentuh platform.


    local function onTouch(partTouched)
    local character = partTouched.Parent
    end
  2. Untuk mengubah salah satu statistik di papan peringkat, skrip perlu tahu pemain mana yang mengendalikan karakter.Dalam pernyataan if, gunakan fungsi GetPlayerFromCharacter() untuk menemukan pemain.


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
  3. Di baris berikutnya, dapatkan kontainer statistik pemimpin pemain itu.


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- Mendapatkan papan peringkat pemain. Diperlukan untuk mendapatkan barang dan uang
    local playerStats = player:FindFirstChild("leaderstats")
    end
  4. Di baris berikutnya, buat variabel untuk mendapatkan uang dan barang pemain.


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- Mendapatkan papan peringkat pemain. Diperlukan untuk mendapatkan barang dan uang
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- Mendapatkan barang dan uang pemain
    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    end
    end
  5. Untuk memeriksa pekerjaan Anda, tambahkan pernyataan cetak yang akan dijalankan jika pemain menyentuh sellPart.


    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    print("A player touched sellPart")
  6. Di bagian bawah skrip, hubungkan onTouch() ke acara Touched dari sellPart.


    local Players = game:GetService("Players")
    local function onTouch(partTouched)
    local character = partTouched.Parent
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- Mendapatkan papan peringkat pemain. Diperlukan untuk mendapatkan barang dan uang
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- Mendapatkan barang dan uang pemain
    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    print("A player touched sellPart")
    end
    end
    end
    sellPart.Touched:Connect(onTouch)
  7. Mainkan proyek Anda dan melangkah di atas sellPart; Anda harus melihat pesan "A Player touched sellPart" di jendela Output.

Jual barang

Dalam pengalaman ini, seorang pemain akan mendapatkan 100 Emas untuk setiap item.Setelah mendapatkan uang, barang-barang mereka akan diatur ulang ke 0, membiarkan pemain menjelajahi dunia untuk lebih banyak barang.

Kode fungsi jual baru

  1. Di bawah variabel, buat fungsi bernama sellItems() yang mendapatkan dua parameter bernama playerItems dan playerGold .


    -- Menjual semua barang pemain dan memberi mereka emas
    local sellPart = script.Parent
    local function sellItems(playerItems, playerGold)
    end
    local function onTouch(partTouched)
  2. Untuk memberi pemain jumlah emas yang tepat, ambil nilai dari playerItems dan kalikan dengan jumlah emas yang harus mereka terima per item.Contoh ini memberikan seratus keping emas per item.

    Dalam fungsi sellItems() , ketik local totalSell = playerItems.Value * 100


    local function sellItems(playerItems, playerGold)
    -- Mendapatkan berapa banyak item yang dimiliki pemain dan mengalikannya dengan nilai item.
    local totalSell = playerItems.Value * 100
    end
  3. Ketik playerGold.Value += totalSell untuk menambahkan emas untuk item ke emas saat ini mereka.


    local function sellItems(playerItems, playerGold)
    local totalSell = playerItems.Value * 100
    -- Tambahkan berapa banyak pemain mendapatkan uang ke uang mereka
    playerGold.Value += totalSell
    end
  4. Ketik playerItems.Value = 0 .Ini mengembalikan item pemain ke 0.Jika item pemain tidak dikembalikan ke 0, skrip akan terus memberikan emas kepada pemain tanpa berhenti.


    local function sellItems(playerItems, playerGold)
    local totalSell = playerItems.Value * 100
    playerGold.Value += totalSell
    playerItems.Value = 0
    end
  5. Dalam fungsi onTouch() , di bawah pernyataan kedua , panggil fungsi sellItems().Lewati parameter, playerItems dan playerGold sehingga mereka dapat diubah.


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- Mendapatkan papan peringkat pemain. Diperlukan untuk mendapatkan barang dan uang
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- Mendapatkan barang dan uang pemain
    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    if playerItems and playerGold then
    sellItems(playerItems, playerGold)
    end
    end
    end
  6. Mainkan proyek Anda; periksa bahwa setiap kali pemain menginjak platform, emas mereka meningkat dan item diatur ke 0.

Tip Pemecahan Masalah

Pada titik ini, menjual item tidak berfungsi seperti yang diinginkan, coba salah satu dari berikut ini.

  • sellItems() dipanggil dalam kedua jika pernyataan yang memeriksa item pemain.
  • Setiap IntValue, seperti playerItems, menggunakan .Value di akhir jika Anda membuat perubahan pada itu. Nilai selalu diberi huruf besar.
  • sellPart.Touched:Connect(onTouch) ditulis di bagian bawah skrip .
  • sellItems(playerItems, playerGold) ditulis sebelum akhir jika humanoid maka pernyataan.