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

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

ค้นหาและคลิกที่ไอคอน Packages.
ค้นหาโมดูล Merch Booth และคลิกที่มัน หรือดึงและวางไปที่มุมมอง 3 มิติ.

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

ใส่โค้ดต่อไปนี้ลงในสคริปต์ใหม่.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({backgroundColor = Color3.fromRGB(220, 210, 200),textSize = 17,textFont = Enum.Font.Fondamento,textColor = Color3.fromRGB(20, 20, 20),useFilters = false})
เพิ่มสินค้า
บูธขายสินค้าจะขาดอะไรไปได้ถ้าไม่มีสินค้า? ส่วนถัดไปจะอธิบายวิธีการเพิ่ม สินทรัพย์ของอวาตาร์, บัตรผ่าน, และ ผลิตภัณฑ์สำหรับนักพัฒนา ลงในบูธขายสินค้าของคุณ
สินทรัพย์อวาตาร์
สินค้าต่างๆ เช่น เสื้อผ้าและอุปกรณ์เสริม ต้องถูกเพิ่มผ่าน asset ID ที่ตั้งอยู่ในหน้ารายละเอียดของรายการใน Avatar Shop.
สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้ลงไป.
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendคัดลอก ID สินค้าจาก URL เว็บไซต์ Avatar Shop. ตัวอย่างเช่น ID ของ Roblox Baseball Cap คือ 607702162.

วางแต่ละ ID ที่คัดลอกมาในรายการที่คั่นด้วยลูกน้ำภายในตาราง items. โดยเริ่มต้น สินค้าจะแสดงในหน้าต่างแค็ตตาล็อกในลำดับตัวอักษร แต่คุณสามารถปรับแต่งการจัดเรียงด้วยฟังก์ชัน setCatalogSort.
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {607702162, -- Roblox Baseball Cap4819740796, -- Robox1374269, -- Kitty Ears11884330, -- Nerd Glasses10476359, -- Paper Hat}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
บัตรผ่าน
การเพิ่ม บัตรผ่าน ต้องการ ID ของบัตรผ่านซึ่งสามารถหาได้ใน แดชบอร์ดผู้สร้าง.
สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้.
Script - Add Passeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendไปที่ แดชบอร์ดผู้สร้าง และเลือกประสบการณ์.
ในคอลัมน์ด้านซ้าย ภายใต้ การหาประโยชน์, เลือก บัตรผ่าน.
เลื่อนเมาส์ไปที่รูปขนาดย่อของบัตรผ่าน, คลิกปุ่ม ⋯ และเลือก คัดลอก Asset ID จากเมนูบริบท.

วางแต่ละ ID ที่คัดลอกมาในรายการที่คั่นด้วยลูกน้ำภายในตาราง items และ รวม Enum.InfoType.GamePass เป็นพารามิเตอร์ที่สองสำหรับ addItemAsync เพื่อระบุว่าสินค้าเหล่านี้เป็นบัตรผ่าน. โดยเริ่มต้น สินค้าจะปรากฏในหน้าต่างแค็ตตาล็อกในลำดับตัวอักษร แต่การจัดเรียงสามารถปรับเปลี่ยนได้ผ่าน setCatalogSort.
Script - Add Passeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {4343758, -- ColdFyre Armor28521575, -- Slime Shield}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
ผลิตภัณฑ์สำหรับนักพัฒนา
การเพิ่ม ผลิตภัณฑ์สำหรับนักพัฒนา ต้องใช้ ID ของผลิตภัณฑ์ซึ่งสามารถหาได้ใน แดชบอร์ดผู้สร้าง.
สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้.
Script - Add Developer Productslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendไปที่ แดชบอร์ดผู้สร้าง และเลือกประสบการณ์.
ในคอลัมน์ด้านซ้าย ภายใต้ การหาประโยชน์, เลือก ผลิตภัณฑ์สำหรับนักพัฒนา.
เลื่อนเมาส์ไปที่รูปขนาดย่อของผลิตภัณฑ์, คลิกปุ่ม ⋯ และเลือก คัดลอก Asset ID จากเมนูบริบท.

วางแต่ละ ID ที่คัดลอกมาในรายการที่คั่นด้วยลูกน้ำภายในตาราง items และ รวม Enum.InfoType.Product เป็นพารามิเตอร์ที่สองสำหรับ addItemAsync เพื่อระบุว่าสินค้าเหล่านี้เป็นผลิตภัณฑ์สำหรับนักพัฒนา. โดยเริ่มต้น สินค้าจะปรากฏในหน้าต่างแค็ตตาล็อกในลำดับตัวอักษร แต่คุณสามารถปรับเปลี่ยนการจัดเรียงได้ด้วยฟังก์ชัน setCatalogSort.
Script - Add Developer Productslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {1236602053, -- Mana Refill1257880672, -- Healing Potion}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
ปุ่มแค็ตตาล็อกที่กำหนดเอง
โดยเริ่มต้น ปุ่ม แค็ตตาล็อก ที่ด้านขวาทำให้ผู้เล่นสามารถเปิดบูธได้ตลอดเวลา

ในบางกรณี อาจมีประโยชน์ที่จะ ลบ ปุ่มนี้และเชื่อมโยงกับของคุณเอง:
สร้างปุ่มใหม่ตามที่ระบุใน ปุ่ม.
สร้าง LocalScript เป็นลูกของวัตถุปุ่ม.

วางโค้ดต่อไปนี้ลงในสคริปต์ใหม่.
LocalScript - Custom Catalog Buttonlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- ลบปุ่มแค็ตตาล็อกเริ่มต้นMerchBooth.toggleCatalogButton(false)-- เชื่อมโยงปุ่มที่กำหนดเองscript.Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
พื้นที่จัดซื้อ
วิธีที่มีประโยชน์ในการกระตุ้นการซื้อในประสบการณ์ของคุณคือการแสดงบูธขายสินค้าโดยอัตโนมัติเมื่อผู้เล่นเข้ามาในพื้นที่
ในการสร้างพื้นที่จัดซื้อ:
สร้างบล็อก Anchored ที่ครอบคลุมพื้นที่การตรวจจับ ตรวจสอบให้แน่ใจว่าบล็อกนั้นสูงพอที่จะทำให้เกิดการชนกับ PrimaryPart ของโมเดลตัวละคร (HumanoidRootPart โดยค่าเริ่มต้น).

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


แทรก LocalScript ใหม่ภายใต้ StarterPlayerScripts.

ในสคริปต์ใหม่, วางโค้ดต่อไปนี้ซึ่งใช้เหตุการณ์ Touched และ TouchEnded เพื่อตรวจจับเมื่อมีตัวละครเข้า/ออกจากพื้นที่ และเรียก openMerchBooth และ closeMerchBooth เพื่อเปิด/ปิด GUI ของบูธ.
LocalScriptlocal Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- ลบปุ่มแค็ตตาล็อกเริ่มต้นMerchBooth.toggleCatalogButton(false)local function setupRegion(region: BasePart)region.Touched:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.openMerchBooth()endend)region.TouchEnded:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.closeMerchBooth()endend)end-- ทำการวนรอบผ่านพื้นที่จัดร้านที่ติดแท็กอยู่for _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(region)end-- ตรวจจับเมื่อพื้นที่จัดร้านที่ไม่ถูกสตรีมสตรีมเข้ามาCollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)
Prompt ตามระยะทาง
แทนที่จะใช้มุมมองแค็ตตาล็อก 2 มิติ คุณสามารถเพิ่ม prompt ตามระยะทาง บนวัตถุในประสบการณ์ สิ่งนี้กระตุ้นให้ผู้เล่นค้นหาสินค้าในสภาพแวดล้อม 3 มิติ, ดูตัวอย่างสินค้าบนอวาตาร์ของตนเอง, ซื้อสินค้า, และสวมใส่ได้ทันที ดู addProximityButton สำหรับรายละเอียด.
เปลี่ยนเอฟเฟกต์การสวมใส่
โดยเริ่มต้น บูธขายสินค้าจะแสดงเอฟเฟกต์ประกายทั่วไปเมื่อผู้เล่นสวมใส่สินค้าจากมัน เพื่อเปลี่ยนเอฟเฟกต์ ตั้งค่า particleEmitterTemplate เป็นอินสแตนซ์ของ ParticleEmitter ของคุณในการเรียก configure.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local myParticleEmitter = Instance.new("ParticleEmitter")myParticleEmitter.SpreadAngle = Vector2.new(22, 22)myParticleEmitter.Lifetime = NumberRange.new(0.5, 1.5)myParticleEmitter.Shape = Enum.ParticleEmitterShape.SpheremyParticleEmitter.Transparency = NumberSequence.new(0, 1)myParticleEmitter.RotSpeed = NumberRange.new(200, 200)MerchBooth.configure({particleEmitterTemplate = myParticleEmitter})
การมองเห็น GUI
โดยเริ่มต้น บูธขายสินค้าจะซ่อน ScreenGuis และ CoreGuis ทั้งหมดเมื่อ UI ของมันปรากฏขึ้น รวมถึงแชท, กระดานผู้นำ, และอื่นๆ ที่รวมอยู่ใน Roblox หากคุณต้องการปิดการทำงานนี้ให้ตั้งค่า hideOtherUis เป็น false ในการเรียก configure.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({hideOtherUis = false})
การเคลื่อนไหวของตัวละคร
อาจเป็นประโยชน์ในการป้องกันไม่ให้ตัวละครเคลื่อนไหวเมื่อพวกเขาอยู่ในบูธขายสินค้า สามารถทำได้โดยการตั้งค่า disableCharacterMovement เป็น true ในการเรียก configure.
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({disableCharacterMovement = true})
API Reference
ประเภท
รายการ
รายการในบูธขายสินค้าได้รับการแทนที่ด้วยพจนานุกรมที่มีคู่คีย์-ค่า ดังนี้ โดยสามารถรวบรวมรายการผ่านฟังก์ชัน getItems หรือเหตุการณ์ itemAdded.
| คีย์ | ประเภท | คำบรรยาย |
|---|---|---|
| assetId | number | ID แค็ตตาล็อกของรายการ, ใช้สำหรับ addItemAsync. |
| title | string | ชื่อรายการตามที่ปรากฏในแค็ตตาล็อก. |
| price | number | ราคาของรายการใน Robux. |
| description | string | คำบรรยายของรายการตามที่ปรากฏในแค็ตตาล็อก. |
| assetType | string | สตริงที่แทนประเภทอุปกรณ์เสริมของรายการ. |
| isOwned | bool | ผู้เล่นปัจจุบันมีรายการนี้อยู่หรือไม่. |
| creatorName | string | ชื่อผู้สร้างรายการตามที่แสดงในแค็ตตาล็อก. |
| creatorType | Enum.CreatorType | ประเภทของผู้สร้างสำหรับรายการ. |
Enums
MerchBooth.Controls
ใช้ร่วมกับ setControlKeyCodes เพื่อปรับเปลี่ยนปุ่มและปุ่มเกมแพดสำหรับการโต้ตอบกับบูธขายสินค้า.
| ชื่อ | สรุป |
|---|---|
| ProximityPrompts | ปุ่มและ/หรือปุ่มเกมแพดที่ใช้เปิดมุมมองรายการเมื่อมีการตั้งค่า proximity prompts. |
| OpenMerchBooth | ปุ่มและ/หรือปุ่มเกมแพดที่ใช้เปิดบูธขายสินค้า. |
| CloseMerchBooth | ปุ่มและ/หรือปุ่มเกมแพดที่ใช้ปิดบูธขายสินค้า. |
| Filter | ปุ่มและ/หรือปุ่มเกมแพดที่ใช้ฟังก์ชัน Filter ที่แสดงในพื้นที่ซ้ายบนของมุมมองแค็ตตาล็อก. |
| ViewItem | ปุ่มและ/หรือปุ่มเกมแพดที่ใช้เปิดมุมมองรายการบูธขายสินค้ารายบุคคล. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1})
ฟังก์ชัน
configure
configure(config: table)
Overrides default client-side configuration options through the following keys/values in the config table. ฟังก์ชันนี้สามารถเรียกได้จาก 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 ที่กำหนดไว้ซึ่งปรากฏและเล่นเมื่อมีการสวมใส่. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({backgroundColor = Color3.fromRGB(255, 255, 255),textSize = 16,textFont = Enum.Font.Roboto,textColor = Color3.fromRGB(20, 20, 20),hideOtherUis = false,})
addItemAsync
addItemAsync(assetId: number, productType: Enum.InfoType, hideFromCatalog: boolean)
เพิ่มรายการไปยังบูธขายสินค้าด้วยอัตโนมัติเพื่อให้มีสิทธิ์ในการซื้อในประสบการณ์, assetId คือ ID สินค้าของรายการ, productType คือ Enum.InfoType ของรายการ, และ hideFromCatalog สามารถใช้เพื่อซ่อนรายการในมุมมองแค็ตตาล็อก.
ดูรายละเอียดเกี่ยวกับ การเพิ่มสินค้า เนื่องจากการใช้งานจะแตกต่างกันเล็กน้อยสำหรับ สินทรัพย์ กับ บัตรผ่าน หรือ ผลิตภัณฑ์สำหรับนักพัฒนา.
Script - Add Avatar Assets
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Roblox Baseball Cap
4819740796, -- Robox
1374269, -- Kitty Ears
11884330, -- Nerd Glasses
10476359, -- Paper Hat
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Add Passes
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
4343758, -- ColdFyre Armor
28521575, -- Slime Shield
}
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
Script - Add Developer Products
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
1236602053, -- Mana Refill
1257880672, -- Healing Potion
}
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
getItems
getItems(): table
คืนค่าพจนานุกรมที่แสดงถึงรายการที่ลงทะเบียนทั้งหมดในปัจจุบัน คีย์แต่ละคีย์คือ ID สินค้าของรายการในรูปแบบสตริง และค่าของแต่ละคีย์คือ รายการ. ฟังก์ชันนี้สามารถเรียกได้จาก Script เท่านั้น.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local items = MerchBooth.getItems()
print(items)
end
removeItem
removeItem(assetId: number)
ยกเลิกการลงทะเบียนรายการที่เพิ่มขึ้นก่อนหน้านี้ด้วย addItemAsync โดยการลบแผ่นในมุมมองแค็ตตาล็อกและ prompt proximity prompts ที่เชื่อมโยงกับมัน ฟังก์ชันนี้สามารถเรียกได้จาก Script เท่านั้น.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- หลังจากเวลาผ่านไป, ลบรายการ
task.wait(5)
MerchBooth.removeItem(4819740796)
end
addProximityButton
addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)
เพิ่ม prompt ตามระยะทาง บน adornee ที่กำหนดซึ่งจะกระตุ้นการแสดงมุมมองการซื้อของรายการที่มี ID สินค้าตามที่กำหนด สิ่งนี้สามารถใช้เป็นทางเลือกสำหรับมุมมองแค็ตตาล็อก 2 มิติ กระตุ้นให้ผู้เล่นค้นหาสินค้าในสภาพแวดล้อม 3 มิติ
โปรดทราบว่ารายการต้องถูกเพิ่มผ่าน addItemAsync ก่อนถึงจะสามารถกำหนดปุ่ม proximity ให้กับมันได้ ดู removeProximityButton เพื่อยกเลิกการทำ prompt ระยะใกล้จากวัตถุ.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.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
removeProximityButton
removeProximityButton(adornee: BasePart|Model|Attachment)
ลบ prompt ตามระยะทาง ที่สร้างผ่าน addProximityButton. ฟังก์ชันนี้สามารถเรียกได้จาก Script เท่านั้น.
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.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
-- หลังจากเวลาผ่านไป, ลบ prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end
setCatalogSort
setCatalogSort(sortFunction: function): boolean
ตั้งค่าฟังก์ชันการจัดเรียง sortFunction ที่จะใช้ในมุมมองแค็ตตาล็อก ฟังก์ชันการจัดเรียงที่ให้มาสามารถใช้ตรรกะที่อิงจากข้อมูล รายการ เช่น ราคา หรือ ชื่อ. ฟังก์ชันนี้สามารถเรียกได้จาก LocalScript เท่านั้น.
นี่คือตัวอย่างการจัดเรียงแค็ตตาล็อก:
Price Low-to-High
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Price High-to-Low
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Price Low-to-High & Alphabetical
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return if a.price == b.price then a.title < b.title else a.price < b.price
end)
setControlKeyCodes
setControlKeyCodes(control: MerchBooth.Controls, keyCodes: table)
กำหนดค่าแป้นพิมพ์และปุ่มสำหรับการโต้ตอบกับบูธขายสินค้า พารามิเตอร์แรกต้องเป็น enum MerchBooth.Controls และพารามิเตอร์ที่สองเป็นตารางที่ประกอบด้วยคีย์ keyboard และ/หรือ gamepad พร้อมกับ enum Enum.KeyCode ที่เกี่ยวข้อง.
| Enum (control) | ค่าพื้นฐาน keyCodes คีย์/ค่า |
|---|---|
| MerchBooth.Controls.ProximityPrompts | keyboard = Enum.KeyCode.E gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.OpenMerchBooth | gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.CloseMerchBooth | gamepad = Enum.KeyCode.ButtonB |
| MerchBooth.Controls.Filter | gamepad = Enum.KeyCode.ButtonX |
| MerchBooth.Controls.ViewItem | gamepad = Enum.KeyCode.ButtonA |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1,})
openMerchBooth
openMerchBooth()
เปิดหน้าต่างบูธขายสินค้า (หากปิด) และนำทางไปที่มุมมองแค็ตตาล็อก ฟังก์ชันนี้สามารถเรียกได้จาก LocalScript เท่านั้น.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
MerchBooth.openMerchBooth()
openItemView
openItemView(itemId: number)
นำทางไปยังมุมมองรายการเดียวของ itemId ที่ให้มา, โดยเปิดหน้าต่างบูธขายสินค้า หากปัจจุบันมันถูกปิด ฟังก์ชันนี้สามารถเรียกได้จาก LocalScript เท่านั้น.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end
toggleCatalogButton
toggleCatalogButton(enabled: boolean)
เปิด/ปิดปุ่มแค็ตตาล็อกที่ด้านขวาของหน้าจอ สิ่งนี้มีประโยชน์เมื่อเรียกใช้งาน ปุ่มที่กำหนดเอง หรือควบคุมการแสดงบูธขายสินค้าถึง พื้นที่ หรือ prompt ตามระยะทาง. สามารถเรียกใช้ฟังก์ชันนี้จาก LocalScript เท่านั้น.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.toggleCatalogButton(false)
isMerchBoothOpen
isMerchBoothOpen(): Tuple
คืนค่า true หากมุมมองแค็ตตาล็อกหรือมุมมองรายการเปิดอยู่ หากมุมมองรายการเปิดอยู่, จะส่งคืน ID สินค้าของรายการเป็นค่าที่สอง ฟังก์ชันนี้สามารถเรียกได้จาก LocalScript เท่านั้น.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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
closeMerchBooth
closeMerchBooth()
ปิดหน้าต่างบูธขายสินค้า ฟังก์ชันนี้สามารถเรียกได้จาก LocalScript เท่านั้น.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.closeMerchBooth()
isMerchBoothEnabled
isMerchBoothEnabled(): boolean
ฟังก์ชันนี้อาจใช้ร่วมกับ setEnabled เพื่อตรวจสอบว่าสถานะของบูธขายสินค้าถูกเปิดหรือปิดอยู่. สามารถเรียกได้จาก LocalScript เท่านั้น.
setEnabled
setEnabled(enabled: boolean)
ตั้งค่าว่าบูธขายสินค้าทั้งหมดจะถูกเปิดหรือปิด. เมื่อปิด, ฟังก์ชันนี้จะลบ UI ทั้งหมด รวมถึง prompt ตามระยะทาง และตัดการเชื่อมโยงเหตุการณ์ทั้งหมด. ฟังก์ชันนี้สามารถเรียกได้จาก LocalScript เท่านั้น.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
เหตุการณ์
itemAdded
เกิดขึ้นเมื่อมีการเพิ่มรายการผ่าน addItemAsync. เหตุการณ์นี้เชื่อมโยงได้เฉพาะใน Script.
| พารามิเตอร์ | |
|---|---|
| assetId: number | ID สินค้าของรายการ. |
| itemInfo: table | พจนานุกรมของข้อมูล รายการ เช่น ราคา หรือ ชื่อ. |
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Item added with asset ID of", assetId)
print(itemInfo)
end)
itemRemoved
เกิดขึ้นเมื่อมีการลบรายการผ่าน removeItem. เหตุการณ์นี้เชื่อมโยงได้เฉพาะใน Script.
| พารามิเตอร์ | |
|---|---|
| assetId: number | ID สินค้าของรายการ. |
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Item removed with asset ID of", assetId)
end)
merchBoothOpened
เกิดขึ้นเมื่อเปิดมุมมองแค็ตตาล็อก หรือ มุมมองรายละเอียดรายการ.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)
merchBoothClosed
เกิดขึ้นเมื่อปิดมุมมองแค็ตตาล็อก หรือ มุมมองรายละเอียดรายการ.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)
catalogViewOpened
เกิดขึ้นเมื่อเปิดมุมมองแค็ตตาล็อก.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)
catalogViewClosed
เกิดขึ้นเมื่อปิดมุมมองแค็ตตาล็อก.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)
itemViewOpened
เกิดขึ้นเมื่อเปิดมุมมองรายละเอียดรายการ.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)
itemViewClosed
เกิดขึ้นเมื่อปิดมุมมองรายละเอียดรายการ.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)