ขายไอเทม

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

สำหรับขั้นตอนต่อไปของเกมส์โลจิตัลผู้เล่นจำเป็นต้องขายไอเท็มของพวกเขาเพื่อที่จะสามารถซื้อพื้นที่เพิ่มเติมในกระเป๋าของพวกเขา

การสร้างแพลตฟอร์มขาย

ผู้เล่นจะขายไอเทมของพวกเขาโดยก้าวขึ้นแพลตฟอร์มที่ให้พวกเขาทองสำหรับแต่ละรายการในกระเป๋าของพวกเขา

การติดตั้งแพลตฟอร์ม

แพลตฟอร์มสามารถเป็นส่วนใดก็ได้และจะรวมถึงสคริปที่จัดการการขาย

  1. สร้างส่วนใหม่ที่มีชื่อว่า SellPlatform ปรับแต่งมันให้เหมาะกับธีมของประสบการณ์ของคุณ

  2. ใน SellPlatform สร้างสคริปต์ใหม่ที่มีชื่อว่า SellScript และเพิ่มความคิดเห็น

  3. ใน SellScript ใส่ local sellPart = script.Parent เพื่อรับส่วนของ SellPlatform


    -- ขายรายการของผู้เล่นทั้งหมดและให้ทอง
    local sellPart = script.Parent

การจัดการอีเมนต์แสดงผล

เพื่อใช้แพลตฟอร์ม สคริปต์ต้องการฟังก์ชันเพื่อตรวจสอบว่าผู้เล่นใด ๆ สัมผัสมัน

  1. สร้างคุณสมบัติที่มีชื่อว่า onTouch() แพลตฟอร์ม


    local function onTouch(partTouched)
    local character = partTouched.Parent
    end
  2. เพื่อเปลี่ยนสถิติใด ๆ ในกระดานผู้นํา สคริปต์จําเป็นต้องรู้ว่าผู้เล่นกําลังควบคุมตัวละครนั้น ใน if ตารางอันดับGetPlayerFromCharacter() เพื่อค้นหาผู้


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
  3. ในตัวอักษรถัดไป, รับคอนเทนเนอร์ผู้นำของผู้เล่นนั้น


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- ตารางอันดับจำเป็นเพื่อรับไอเทมและเงิน
    local playerStats = player:FindFirstChild("leaderstats")
    end
  4. ในตัวอักษรต่อไป, สร้างตัวแปรเพื่อรับเงินและไอเท็มของผู้เล่น


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- ตารางอันดับจำเป็นเพื่อรับไอเทมและเงิน
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- รับไอเท็มและเงินของผู้เล่น
    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    end
    end
  5. เพื่อตรวจสอบงานของคุณ ให้เพิ่มคำพิมพ์ที่จะดำเนินการหากผู้เล่นแตะส่วนขาย


    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    print("A player touched sellPart")
  6. ในด้านล่างของสคริปต์, เชื่อมต่อ onTouch() เพื่อขายกิจกรรม Touched ของ Part


    local Players = game:GetService("Players")
    local function onTouch(partTouched)
    local character = partTouched.Parent
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- ตารางอันดับจำเป็นเพื่อรับไอเทมและเงิน
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- รับไอเท็มและเงินของผู้เล่น
    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    print("A player touched sellPart")
    end
    end
    end
    sellPart.Touched:Connect(onTouch)
  7. เล่นโครงการของคุณและขับขี่ขาย; คุณควรเห็นข้อความ "A Player touched sellPart" ในหน้าต่างการออก力

ขายไอเทม

ในประสบการณ์นี้ผู้เล่นจะได้รับ 100 ไอเท็มหลังจากได้รับเงินแล้วรายการของพวกเขาจะถูกตั้งคืน 0 เพื่อให้ผู้เล่นสำรวจโลกเพื่อของเพิ่มเติม

การเขียนส่วนขายใหม่

  1. ใต้ตัวแปรค้างต่างๆ สร้างฟังก์ชันที่มีชื่อว่า sellItems() ที่ได้รับสองตัวแปรชื่อว่า playerItems และ playerGold


    -- ขายรายการของผู้เล่นทั้งหมดและให้ทอง
    local sellPart = script.Parent
    local function sellItems(playerItems, playerGold)
    end
    local function onTouch(partTouched)
  2. เพื่อให้ผู้เล่นได้รับเงินเป็นจำนวนเงินที่เหมาะสม ให้ค่าของ playerItems และคูณด้วยจำนวนเงินที่พวกเขาควรได้รับต่อรายการ

    ในฟังก์ชัน sellItems() ให้พิมพ์ local totalSell = playerItems.Value * 100


    local function sellItems(playerItems, playerGold)
    -- รับจำนวนรายการที่ผู้เล่นมีและคูณด้วยมูลค่ารายการ
    local totalSell = playerItems.Value * 100
    end
  3. พิมพ์ playerGold.Value += totalSell เพื่อเพิ่มทองให้กับรายการที่ขายอยู่ในขณะนี้


    local function sellItems(playerItems, playerGold)
    local totalSell = playerItems.Value * 100
    -- เพิ่มจำนวนเงินที่ผู้เล่นได้รับเพื่อเงินของพวกเขา
    playerGold.Value += totalSell
    end
  4. พิมพ์ playerItems.Value = 0 นี้จะตั้งค่ารายการของผู้เล่นกลับไปที่ 0 หากรายการของผู้เล่นไม่ได้ตั้งค่ากลับไปที่ 0 สคริปต์จะให้เหรียญทองแก่ผู้เล่นโดยไม่หยุด


    local function sellItems(playerItems, playerGold)
    local totalSell = playerItems.Value * 100
    playerGold.Value += totalSell
    playerItems.Value = 0
    end
  5. ในคุณสมบัติ onTouch() ตามคำสั่งที่สอง ใต้ข้อความนี้คุณสามารถเรียกใช้ sellItems() ฟังก์ชัน ในพารามิเตอร์ sellItems() และ 1> playerGold1> เพื่อให้พวกเขาสาม


    local Players = game:GetService("Players")
    local player = Players:GetPlayerFromCharacter(character)
    if player then
    -- ตารางอันดับจำเป็นเพื่อรับไอเทมและเงิน
    local playerStats = player:FindFirstChild("leaderstats")
    if playerStats then
    -- รับไอเท็มและเงินของผู้เล่น
    local playerItems = playerStats:FindFirstChild("Items")
    local playerGold = playerStats:FindFirstChild("Gold")
    if playerItems and playerGold then
    sellItems(playerItems, playerGold)
    end
    end
    end
  6. เล่นโครงการของคุณ; ตรวจสอบว่าเมื่อผู้เล่นเหยียบบนแพลตฟอร์มพวกเขาจะเพิ่มทองและรายการของพวกเขาจะตั้งค่าเป็น 0

เคล็ดลับการแก้ปัญหา

ในขณะนี้การขายไอเทมไม่ทำงานตามที่ตั้งใจไว้ ลองใช้หนึ่งในต่อไปนี้

  • sellItems() เรียกใน วินาทีที่สอง หากสถานะที่ตรวจสอบรายการของผู้เล่น
  • Any IntValue เช่น playerItems ใช้ .Value ที่จุดสิ้นสุดถ้าคุณกำลังทำการเปลี่ยนแปลงให้กับมัน มูลค่าจะถูกเขียนเป็นตัวอักษรเสมอ
  • sellPart.Touched:Connect(onTouch) พิมพ์อยู่ที่ด้านล่างของสคริปต์
  • sellItems(playerItems, playerGold) ถูกพิมพ์ก่อนสิ้นสุดของประโยค if humanoid แล้วสาธารณะ.