บูธสินค้า

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

โมดูลนักพัฒนา MerchBooth ช่วยให้คุณสามารถเสนอ ทรัพยากรอวาตาร์ , ผ่าน และ ผลิตภัณฑ์นักพัฒนา สําหรับขายโดยตรงภายในประสบการณ์ของคุณผู้เล่นสามารถเรียกดูไอเทม ดูตัวอย่างสินทรัพย์บนอวตารของตนเอง ซื้อไอเทม และใช้หรือติดตั้งได้ทันทีโดยไม่ต้องออกจากประสบการณ์ของคุณสิ่งนี้สามารถช่วยคุณได้ สร้างรายได้ ประสบการณ์ของคุณและได้รับรายได้ผ่านค่าคอมมิชชัน 40% ที่เกี่ยวข้องกับการขายผลิตภัณฑ์ของผู้สร้างคนอื่น

การใช้งานโมดูล

การติดตั้ง

เพื่อใช้โมดูล MerchBooth ในประสบการณ์:

  1. จากแท็บ ดู เปิด กล่องเครื่องมือ และเลือกแท็บ ร้านค้าผู้สร้าง

    Toolbox toggle button in Studio
  2. ตรวจสอบให้แน่ใจว่าการจัดเรียง รูปแบบ ถูกเลือกแล้วคลิกที่ปุ่ม ดูทั้งหมด สำหรับ หมวดหมู่

  3. ค้นหาและคลิกที่แท็บ โมดูลพัฒนา

  4. ค้นหาโมดูล บูธสินค้า และคลิกหรือลากไปยังมุมมอง 3D

  5. ในหน้าต่าง สํารวจ ย้ายรูปแบบ MerchBooth ทั้งหมดไปยัง ServerScriptService เมื่อเรียกใช้ประสบการณ์แล้ว โมดูลจะแจกจ่ายตัวเองไปยังบริการต่างๆ และเริ่มทำงาน

การกำหนดค่า

โมดูลได้รับการกำหนดค่าล่วงหน้าเพื่อทำงานสำหรับกรณีการใช้งานส่วนใหญ่ แต่สามารถปรับแต่งได้ง่ายผ่านฟังก์ชัน กำหนดค่าตัวอย่างเช่น เพื่อสร้างธีมที่เบากว่าและปิดใช้งานปุ่ม กรอง เริ่มต้นในพื้นที่ด้านบนซ้ายของมุมมองแคตาล็อก:

  1. ใน StarterPlayerScripts สร้างใหม่ LocalScript และเปลี่ยนชื่อเป็น กำหนดค่าบูธ

  2. ใส่โค้ดต่อไปนี้ลงในสคริปต์ใหม่

    สคริปท้องถิ่น - กำหนดค่าบูธขายสินค้า

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    MerchBooth.configure({
    backgroundColor = Color3.fromRGB(220, 210, 200),
    textSize = 17,
    textFont = Enum.Font.Fondamento,
    textColor = Color3.fromRGB(20, 20, 20),
    useFilters = false
    })

เพิ่มรายการ

บูธสินค้าคืออะไรโดยไม่มีสินค้า? ส่วนต่อไปอธิบายวิธีเพิ่ม ทรัพยากรอวาตาร์ , ผ่าน และ ผลิตภัณฑ์นักพัฒนา ในบูธสินค้าของคุณ

ทรัพยากรอวาตาร์

รายการเช่น เสื้อผ้าและอุปกรณ์เสริม ต้องถูกเพิ่มผ่าน รหัสสินทรัพย์ ไอเท็มร้านค้าอวาตาร์

  1. สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้

    สคริปต์ - เพิ่มสินทรัพย์อวาตาร์

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. คัดลอก ID สินทรัพย์รายการจาก URL เว็บไซต์ของ ร้านอวาตาร์ของพวกเขา ตัวอย่างเช่น ID ของ หมวกเบสบอล Roblox คือ 607702162

  3. วางแต่ละรหัสที่คัดลอกไปในรายการที่แยกกับจุลภาคภายในตาราง itemsโดยค่าเริ่มต้นรายการจะปรากฏในมุมมองแคตตาล็อกในลำดับตัวอักษร แต่คุณสามารถปรับเรียงลําดับได้โดยใช้ setCatalogSort

    สคริปต์ - เพิ่มสินทรัพย์อวาตาร์

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- หมวกเบสบอล Roblox
    4819740796, -- โรบ็อก
    1374269, -- หูแมว
    11884330, -- แว่นตาเนิร์ด
    10476359, -- หมวกกระดาษ
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

ผ่าน

การเพิ่ม ผ่าน ต้องใช้รหัสผ่านที่สามารถตั้งอยู่ใน แดชบอร์ดของผู้สร้าง

  1. สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้

    สคริปต์ - เพิ่มบัตรผ่าน

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. นําทางไปที่ แดชบอร์ดผู้สร้าง และเลือกประสบการณ์

  3. ในคอลัมน์ด้านซ้าย, ภายใต้ การสร้างรายได้ , เลือก ผ่าน

  4. เลื่อนเมาส์ไปที่ภาพขนาดย่อของบัตรผ่าน, คลิกปุ่ม และเลือก คัดลอก ID ทรัพยากร จากเมนูบริบท

  5. ใส่แต่ละรหัสที่คัดลอกไปในรายการที่แยกกับจุลภาคภายในตาราง items และ **** รวมถึง Enum.InfoType.GamePass ในฐานะพารามิเตอร์ที่สองสำหรับ addItemAsync เพื่อระบุว่ารายการจะผ่านโดยค่าเริ่มต้นรายการจะปรากฏในมุมมองแคตตาล็อกในลำดับตัวอักษร แต่การจัดเรียงสามารถปรับแต่งได้โดยใช้ setCatalogSort

    สคริปต์ - เพิ่มบัตรผ่าน

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- เกราะ ColdFyre
    28521575, -- โล่สไลม์
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
    end)
    if not success then
    warn(errorMessage)
    end
    end

ผลิตภัณฑ์นักพัฒนา

การเพิ่มผลิตภัณฑ์นักพัฒนา ต้องใช้รหัสผลิตภัณฑ์ที่สามารถตั้งอยู่ใน แดชบอร์ดของผู้สร้าง

  1. สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้

    สคริปต์ - เพิ่มผลิตภัณฑ์นักพัฒนา

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. นําทางไปที่ แดชบอร์ดผู้สร้าง และเลือกประสบการณ์

  3. ในคอลัมน์ด้านซ้าย, ภายใต้ การสร้างรายได้ , เลือก ผลิตภัณฑ์นักพัฒนา .

  4. ภาพขนาดย่อ, คลิกปุ่ม และเลือก คัดลอก ID ทรัพยากร จากเมนูบริบท

  5. ใส่แต่ละรหัสที่คัดลอกมาในรายการที่แยกกับจุลภาคภายในตาราง items และ และ รวม Enum.InfoType.Product เป็นพารามิเตอร์ที่สองสำหรับ addItemAsync เพื่อระบุว่ารายการเป็นผลิตภัณฑ์ของผู้พัฒนาโดยค่าเริ่มต้นรายการจะปรากฏในมุมมองแคตตาล็อกในลำดับตัวอักษร แต่คุณสามารถปรับเรียงลําดับได้โดยใช้ setCatalogSort

    สคริปต์ - เพิ่มผลิตภัณฑ์นักพัฒนา

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- เติมมานา
    1257880672, -- ยารักษา
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
    end)
    if not success then
    warn(errorMessage)
    end
    end

ปุ่มแคตตาล็อกที่กำหนดเอง

โดยค่าเริ่มต้น, ปุ่มแคตตาล็อกด้านขวา เปิดให้ผู้เล่นเปิดบูธได้ตลอดเวลา

ในบางกรณีอาจเป็นประโยชน์ที่จะ ลบ เป็นเจ้าของ:

  1. สร้างปุ่มใหม่ตามที่ระบุไว้ใน ปุ่ม

  2. สร้าง LocalScript เป็นลูกของวัตถุปุ่ม

  3. ใส่โค้ดต่อไปนี้ลงในสคริปต์ใหม่

    สคริปท์ท้องถิ่น - ปุ่มแคตตาล็อกที่กำหนดเอง

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- ลบปุ่มสารบัญเริ่มต้น
    MerchBooth.toggleCatalogButton(false)
    -- เชื่อมต่อปุ่มที่กําหนดเอง
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

ภูมิภาคที่ซื้อได้

วิธีที่มีประโยชน์ในการขับเคลื่อนการซื้อในประสบการณ์ของคุณคือการแสดงบูธสินค้าอัตโนมัติเมื่อผู้เล่นเข้าสู่พื้นที่

เพื่อสร้างภูมิภาคที่ซื้อได้:

  1. สร้างบล็อก Anchored ที่ครอบคลุมภูมิภาคการตรวจจับตรวจสอบให้แน่ใจว่าบล็อกสูงพอที่จะชนกับ PrimaryPart ของโมเดลตัวละคร ( HumanoidRootPart โดยค่าเริ่มต้น)

    บล็อกเพื่อตรวจสอบเมื่อผู้เล่นเข้าใกล้หน้าเคาน์เตอร์ร้านค้า
  2. โดยใช้ส่วน แท็ก ของคุณสมบัติของบล็อกหรือ เครื่องแก้แท็กของ Studio ใช้แท็ก ShopRegion กับบล็อกเพื่อให้ CollectionService ตรวจพบ

  3. ตั้งค่าส่วน Transparency ให้สูงสุดเพื่อซ่อนมันจากผู้เล่นในประสบการณ์ยังปิดใช้งานคุณสมบัติ CanCollide และ CanQuery ของมันเพื่อให้วัตถุไม่ชนกับมันและรังสีไม่ตรวจพบมัน

  4. ใส่ใหม่ LocalScript ภายใต้ StarterPlayerScripts

  5. ในสคริปต์ใหม่ให้วางโค้ดต่อไปนี้ซึ่งใช้เหตุการณ์ Touched และ TouchEnded เพื่อตรวจสอบว่าตัวละครเข้าสู่ภูมิภาคหรือออกจากภูมิภาคและเรียก openMerchBooth และ closeMerchBooth เพื่อเปิด/ปิดบูธ GUI

    สคริปท์ท้องถิ่น

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- ลบปุ่มสารบัญเริ่มต้น
    MerchBooth.toggleCatalogButton(false)
    local function setupRegion(region: BasePart)
    region.Touched:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.openMerchBooth()
    end
    end)
    region.TouchEnded:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.closeMerchBooth()
    end
    end)
    end
    -- เรียกร้องผ่านภูมิภาคร้านค้าที่มีแท็กอยู่แล้ว
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- ตรวจจับเมื่อภูมิภาคร้านค้าที่ไม่ได้สตรีมมาถูกสตรีมใน
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

คําเตือนความใกล้ชิด

เป็นทางเลือกสำหรับการดูแคตตาล็อก 2D คุณสามารถเพิ่ม คําเตือนระยะไกล บนวัตถุในประสบการณ์สิ่งนี้ส่งเสริมให้ผู้เล่นค้นพบไอเทมในสภาพแวดล้อม 3D ดูตัวอย่างบนอวตารของตนเองซื้อพวกเขาและสวมใส่พวกเขาทันทีดู เพิ่มปุ่มความใกล้ชิด สำหรับรายละเอียด

เปลี่ยนเอฟเฟกต์การติดตั้ง

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

สคริปท้องถิ่น - กำหนดค่าบูธขายสินค้า

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local myParticleEmitter = Instance.new("ParticleEmitter")
myParticleEmitter.SpreadAngle = Vector2.new(22, 22)
myParticleEmitter.Lifetime = NumberRange.new(0.5, 1.5)
myParticleEmitter.Shape = Enum.ParticleEmitterShape.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})

การมองเห็น GUI

โดยค่าเริ่มต้นแผงขายสินค้าจะซ่อนทั้งหมด ScreenGuis และ CoreGuis เมื่อ UI ปรากฏ รวมถึงการแชท ตารางอันดับและอื่นๆ ที่ Roblox รวมไว้หากต้องการปิดการใช้งานพฤติกรรมนี้ ให้ตั้ง hideOtherUis เป็น false ในการเรียก กำหนดค่า

สคริปท้องถิ่น - กำหนดค่าบูธขายสินค้า

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
hideOtherUis = false
})

การเคลื่อนที่ของตัวละคร

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

สคริปท้องถิ่น - กำหนดค่าบูธขายสินค้า

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
disableCharacterMovement = true
})

การอ้างอิง API

ประเภท

รายการ

รายการในบูธสินค้าจะถูกแทนที่ด้วยสารานุกรมที่มีคู่คีย์-ค่าต่อไปนี้รายการสามารถรวบรวมผ่านฟังก์ชัน getItems หรืออีเวนต์ itemadded

กุญแจประเภทคําอธิบาย
assetIdจํานวนID ไอเท็มaddItemAsync
titleสตริงชื่อรายการตามที่ปรากฏในคลังสินค้า
priceจํานวนราคาไอเทมใน Robux
descriptionสตริงคำอธิบายรายการตามที่ปรากฏในคลังสินค้า
assetTypeสตริงสตริงที่แทนที่ประเภทอุปกรณ์เสริมของไอเทม
isOwnedบูลว่าผู้เล่นปัจจุบันเป็นเจ้าของไอเทมหรือไม่
creatorNameสตริงผู้สร้างรายการตามที่แสดงในคลังเอกสาร
creatorTypeEnum.CreatorTypeไอเท็ม

เอนุม

ตัวควบคุม MerchBooth

ใช้ร่วมกับ setControlKeyCodes เพื่อปรับแต่งแป้นคีย์และปุ่มเกมเพดสำหรับการโต้ตอบกับบูธสินค้า

ชื่อสรุป
ProximityPromptsปุ่มกุญแจและ/หรือเกมแพดเพื่อเปิดดูรายการเมื่อ คําเตือนระยะไกล ได้รับการกำหนดค่า
OpenMerchBoothปุ่มกุญแจและ/หรือเกมแพดเพื่อเปิดบูธสินค้า
CloseMerchBoothปุ่มกุญแจและ/หรือเกมแพดเพื่อปิดบูธสินค้า
Filterปุ่มกุญแจและ/หรือเกมแพดเพื่อใช้การกรองเริ่มต้น Filter ดึงลงในพื้นที่ด้านบนซ้ายของมุมมองแคตตาล็อก
ViewItemปุ่มกุญแจและ/หรือเกมแพดเพื่อเปิดดูรายการมุมมองบูธสินค้าเฉพาะ
สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})

ฟังก์ชัน

กำหนดค่า

กำหนดค่า (config: table )

ยกเลิกตัวเลือกการกำหนดค่าด้านลูกค้าเริ่มต้นผ่านตัวแปรหลัก/ค่าต่อไปนี้ในตาราง configฟังก์ชันนี้สามารถโทรได้เฉพาะจาก LocalScript

กุญแจคําอธิบายค่าเริ่มต้น
backgroundColorสีพื้นหลังหลักของหน้าต่าง ( Color3 ).[0, 0, 0]
cornerRadiusรัศมีมุมสำหรับหน้าต่างหลัก ( UDim ).(0, 16)
cornerRadiusSmallรัศมีมุมสำหรับองค์ประกอบภายในหน้าต่าง ( UDim ).(0, 8)
textFontฟอนต์ของ "ข้อความหลัก" เช่นราคาคำอธิบายและข้อมูลทั่วไปอื่น ๆ ( Enum.Font ).Gotham
textSizeขนาดของข้อความหลัก14
textColorสีของข้อความหลัก ( Color3 ).[255, 255, 255]
secondaryTextColorสีที่ใช้สำหรับบางการแปลงของข้อความหลัก ( Color3 ).[153, 153, 158]
headerFontฟอนต์ของข้อความหัวข้อที่ใช้สำหรับชื่อหน้าต่าง ( Enum.Font ).GothamMedium
headerTextSizeขนาดของข้อความหัวข้อที่ใช้สำหรับชื่อหน้าต่าง18
titleFontฟอนต์ของข้อความหัวข้อที่ใช้สำหรับชื่อรายการบนหน้ารายละเอียดรายการ ( Enum.Font ).GothamBold
titleTextSizeขนาดของข้อความหัวข้อที่ใช้สำหรับชื่อรายการบนหน้ารายละเอียดรายการ28
buttonColorสีพื้นหลังสำหรับปุ่มขนาดใหญ่ในสถานะที่คลิกได้ เช่น ปุ่มซื้อหลักในมุมมองรายการ ( Color3 )[255, 255, 255]
buttonTextColorสีข้อความสำหรับปุ่มขนาดใหญ่ในสถานะที่คลิกได้ เช่น ปุ่มซื้อหลักในมุมมองรายการ ( Color3 )[0, 0, 0]
secondaryButtonColorสีพื้นหลังสำหรับปุ่มขนาดเล็กเช่นปุ่มราคาในมุมมองแคตตาล็อกหรือปุ่ม ลองใช้ ( Color3 ).[34, 34, 34]
secondaryButtonTextColorสีข้อความสำหรับปุ่มขนาดเล็กเช่นปุ่มราคาในมุมมองแคตตาล็อกหรือปุ่ม ลองใช้ ( Color3 ).[255, 255, 255]
inactiveButtonColorสีพื้นหลังสำหรับปุ่มทั้งหมดในสถานะที่ไม่สามารถคลิกได้ ( Color3 ).[153, 153, 158]
inactiveButtonTextColorสีข้อความสำหรับปุ่มทั้งหมดในสถานะที่ไม่สามารถคลิกได้ ( Color3 ).[255, 255, 255]
particleEmitterTemplateกำหนดเองได้เลือก ParticleEmitter ตัวอย่างที่ปรากฏและเล่นบนอุปกรณ์
สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.configure({
backgroundColor = Color3.fromRGB(255, 255, 255),
textSize = 16,
textFont = Enum.Font.Roboto,
textColor = Color3.fromRGB(20, 20, 20),
hideOtherUis = false,
})

เพิ่มไอเทม Async

เพิ่มรายการAsync(assetId: number , productType: Enum.InfoType , hideFromCatalog: boolean )

เพิ่มรายการไปยังบูธสินค้าโดยไม่สynchronous เพื่อให้มันสามารถซื้อได้ในประสบการณ์assetId ไอเท็ม, productType เป็นรายการ Enum.InfoType ของไอเทม, และ hideFromCatalog สามารถใช้เพื่อซ่อนไอเทมในมุมมองแคตตาล็อก

ดู เพิ่มรายการ สำหรับรายละเอียดเกี่ยวกับการใช้งานที่แตกต่างกันเล็กน้อยสำหรับ สินทรัพย์ กับ เกมผ่าน หรือ ผลิตภัณฑ์นักพัฒนา

สคริปต์ - เพิ่มสินทรัพย์อวาตาร์

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- หมวกเบสบอล Roblox
4819740796, -- โรบ็อก
1374269, -- หูแมว
11884330, -- แว่นตาเนิร์ด
10476359, -- หมวกกระดาษ
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
สคริปต์ - เพิ่มบัตรผ่าน

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- เกราะ ColdFyre
28521575, -- โล่สไลม์
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
warn(errorMessage)
end
end
สคริปต์ - เพิ่มผลิตภัณฑ์นักพัฒนา

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- เติมมานา
1257880672, -- ยารักษา
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
warn(errorMessage)
end
end

รับไอเทม

รับไอเทม:: table

คืนสารานุกรมที่แทนที่ไอเทมทั้งหมดที่ลงทะเบียนอยู่ในปัจจุบันแต่ละคีย์เป็นรหัสสินทรัพย์ของไอเทมในรูปของสตริงและมูลค่าของแต่ละคีย์คือ รายการฟังก์ชันนี้สามารถโทรได้เฉพาะจาก Script

สคริปต์

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local items = MerchBooth.getItems()
print(items)
end

ลบรายการ

ลบรายการ(assetId: number )

ยกเลิกการลงทะเบียนรายการที่เพิ่มไว้ก่อนหน้านี้ด้วย addItemAsync ลบแท็กของมันในมุมมองแคตตาล็อกและใดๆ คําเตือนความใกล้เคียง ที่ได้รับมอบหมายให้มันฟังก์ชันนี้สามารถโทรได้เฉพาะจาก Script

สคริปต์

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- หลังจากระยะเวลาหนึ่ง ไอเท็ม
task.wait(5)
MerchBooth.removeItem(4819740796)
end

เพิ่มปุ่มความใกล้ชิด

เพิ่มปุ่มความใกล้ชิด(adornee: BasePart | Model | Attachment , รหัสสินค้า: number )

เพิ่มการแจ้งเตือนระยะใกล้ เหนือ adornee ที่กำหนดที่จะเรียกการแสดงมุมมองการซื้อของไอเทมโดยใช้รหัสสินทรัพย์ของมันสิ่งนี้สามารถใช้เป็นทางเลือกสำหรับการดูแคตตาล็อก 2D ส่งเสริมให้ผู้เล่นค้นพบไอเทมในสภาพแวดล้อม 3D

โปรดทราบว่าต้องเพิ่มรายการผ่าน addItemAsync ก่อนที่จะสามารถกำหนดปุ่มความใกล้เคียงให้กับมันได้ดูเพิ่มเติม ลบปุ่มความใกล้เคียง เพื่อลบคำเตือนความใกล้เคียงจากวัตถุ

สคริปต์

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
end

ลบปุ่มความใกล้ชิด

ลบปุ่มความใกล้ชิด(adornee: BasePart | Model | Attachment )

ลบคําเตือนระยะ ใกล้ ที่สร้างผ่าน เพิ่มปุ่มระยะใกล้ ฟังก์ชันนี้สามารถเรียกได้เฉพาะจาก Script

สคริปต์

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- หลังจากระยะเวลาหนึ่ง ลบคำเตือน
task.wait(5)
MerchBooth.removeProximityButton(item)
end

ตั้งค่าCatalogSort

ตั้งค่าแคตตาล็อกเรียงลําดับ(ฟังก์ชันการเรียงลําดับ: function ): boolean

ตั้งฟังก์ชันการจัดเรียง sortFunction ให้ใช้ในมุมมองแคตตาล็อกฟังก์ชันการจัดเรียงที่ให้มาสามารถใช้โลจิกที่ขึ้นอยู่กับข้อมูล รายการ เช่น price หรือ titleฟังก์ชันนี้สามารถเรียกได้เฉพาะจาก LocalScript

นี่คือตัวอย่างบางส่วนสำหรับการจัดเรียงแคตตาล็อก:

ราคาต่ำไปสูง

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
ราคาสูงไปต่ํา

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
ราคาต่ำไปสูงและตามตัวอักษร

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return if a.price == b.price then a.title < b.title else a.price < b.price
end)

ตั้งค่าโค้ดควบคุมกุญแจ

ตั้งค่าคีย์ควบคุม (ควบคุม: MerchBooth.Controls , คีย์ควบคุม: table )

กำหนดค่ากุญแจและปุ่มค่าสำหรับการโต้ตอบกับบูธขายสินค้าพารามิเตอร์แรกต้องเป็นเอนทิตี MerchBooth.Controls เอนทิตีและพารามิเตอร์ที่สองเป็นตารางที่มีกุญแจ keyboard และ/หรือ gamepad ด้วยเอนทิตี Enum.KeyCode ที่เหมาะสม

Enum ( control )ค่าเริ่มต้น keyCodes คีย์/ค่า
MerchBooth.Controls.ProximityPromptskeyboard = Enum.KeyCode.E``gamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.OpenMerchBoothgamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.CloseMerchBoothgamepad = Enum.KeyCode.ButtonB
MerchBooth.Controls.Filtergamepad = Enum.KeyCode.ButtonX
MerchBooth.Controls.ViewItemgamepad = Enum.KeyCode.ButtonA
สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

เปิดบูธสินค้า

เปิดบูธสินค้า()

เปิดหน้าต่างบูธสินค้า (ถ้าปิด) และนําทางไปยังมุมมองแคตตาล็อก ฟังก์ชันนี้สามารถโทรได้เฉพาะจาก LocalScript

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
MerchBooth.openMerchBooth()

เปิดดูรายการ

openItemView(itemId: number )

นําไปสู่มุมมองรายการเดียวของรายการที่กำหนด itemId เปิดหน้าต่างบูธสินค้าถ้าปัจจุบันปิดอยู่ฟังก์ชันนี้สามารถโทรได้เฉพาะจาก LocalScript

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end

สลับปุ่มแคตตาล็อก

เปิด/ปิดปุ่มแคตตาล็อก(เปิดใช้งาน: boolean )

สลับบน/ออกปุ่มสารบัญที่ด้านขวาของหน้าจอนี่มีประโยชน์เมื่อใช้งานปุ่มที่กําหนดเอง หรือจํากัดการปรากฏตัวของบูธสินค้าให้อยู่ใน ภูมิภาค หรือ คําเตือนความใกล้เคียง สามารถเรียกได้เฉพาะจาก LocalScript เท่านั้น

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.toggleCatalogButton(false)

เปิดบูธสินค้าหรือไม่

เป็นMerchBoothOpen(): Tuple

ส่งคืน true ไอเท็มID สินทรัพย์ของรายการจะถูกส่งคืนเป็นค่าที่สองฟังก์ชันนี้สามารถโทรได้เฉพาะจาก LocalScript

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
local isOpen, itemId = MerchBooth.isMerchBoothOpen()
print(isOpen, itemId)
end

ปิดบูธสินค้า

ปิดบูธสินค้า()

ปิดหน้าต่างบูธสินค้า ฟังก์ชันนี้สามารถเรียกได้เฉพาะจาก LocalScript

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.closeMerchBooth()

เปิดใช้งานบูธสินค้า isMerchBoothEnabled

เปิดใช้งานบูธสินค้าแล้ว:: boolean

ฟังก์ชันนี้สามารถใช้ร่วมกับ setEnabled เพื่อตรวจสอบว่าบูธสินค้าถูกเปิดใช้งานหรือไม่สามารถเรียกได้เฉพาะจาก LocalScript เท่านั้น

ตั้งค่าเปิดใช้งาน

ตั้งค่าเปิดใช้งาน (enabled: boolean )

ตั้งค่าว่าบูธสินค้าทั้งหมดจะเปิดใช้งานหรือไม่เมื่อปิดใช้งานฟังก์ชันนี้จะลบ UI ทั้งหมดรวมถึง คําเตือนระยะใกล้ และตัดการเชื่อมต่อกับทุก เหตุการณ์ฟังก์ชันนี้สามารถโทรได้เฉพาะจาก LocalScript

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
end

อีเวนต์

เพิ่มรายการ

จะเกิดไฟไหม้เมื่อมีการเพิ่มรายการผ่าน addItemAsync อีเวนต์นี้สามารถเชื่อมต่อได้เฉพาะใน Script

พารามิเตร
รหัสสินทรัพย์: numberID สินทรัพย์รายการ
ข้อมูลรายการ: tableสารานุกรมของ รายการ ข้อมูลเช่น price หรือ title .
สคริปต์

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Item added with asset ID of", assetId)
print(itemInfo)
end)

ลบรายการ

จะเกิดไฟไหม้เมื่อไอเทมถูกลบผ่าน removeItem อีเว้นท์นี้สามารถเชื่อมต่อได้เฉพาะใน Script

พารามิเตร
รหัสสินทรัพย์: numberID สินทรัพย์รายการ
สคริปต์

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemRemoved:Connect(function(assetId)
print("Item removed with asset ID of", assetId)
end)

แผงค้าเปิดแล้ว

จะเกิดไฟไหม้เมื่อรายละเอียดของแคตตาล็อก หรือ ถูกเปิด

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)

บูธปิด

ไฟเมื่อรายละเอียดของแคตตาล็อก หรือ ถูกปิด

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)

แคตตาล็อกมุมมองเปิด

จะเกิดไฟไหม้เมื่อมุมมองแคตตาล็อกถูกเปิด

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)

แคตตาล็อกมุมมองปิด

เกิดไฟไหม้เมื่อมุมมองแคตตาล็อกถูกปิด

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)

ไอเทมดูเปิดแล้ว

เกิดไฟไหม้เมื่อมุมมองรายละเอียดของไอเทมถูกเปิด

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)

ไอเทมดูปิด

เกิดไฟไหม้เมื่อมุมมองรายละเอียดของไอเทมถูกปิด

สคริปท์ท้องถิ่น

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)

ในหน้านี้