โมดูลนักพัฒนา MerchBooth ช่วยให้คุณสามารถเสนอ ทรัพยากรอวาตาร์ , ผ่าน และ ผลิตภัณฑ์นักพัฒนา สําหรับขายโดยตรงภายในประสบการณ์ของคุณผู้เล่นสามารถเรียกดูไอเทม ดูตัวอย่างสินทรัพย์บนอวตารของตนเอง ซื้อไอเทม และใช้หรือติดตั้งได้ทันทีโดยไม่ต้องออกจากประสบการณ์ของคุณสิ่งนี้สามารถช่วยคุณได้ สร้างรายได้ ประสบการณ์ของคุณและได้รับรายได้ผ่านค่าคอมมิชชัน 40% ที่เกี่ยวข้องกับการขายผลิตภัณฑ์ของผู้สร้างคนอื่น
การใช้งานโมดูล
การติดตั้ง
เพื่อใช้โมดูล MerchBooth ในประสบการณ์:
ตรวจสอบให้แน่ใจว่าการจัดเรียง รูปแบบ ถูกเลือกแล้วคลิกที่ปุ่ม ดูทั้งหมด สำหรับ หมวดหมู่
ค้นหาและคลิกที่แท็บ โมดูลพัฒนา
ค้นหาโมดูล บูธสินค้า และคลิกหรือลากไปยังมุมมอง 3D
ในหน้าต่าง สํารวจ ย้ายรูปแบบ MerchBooth ทั้งหมดไปยัง ServerScriptService เมื่อเรียกใช้ประสบการณ์แล้ว โมดูลจะแจกจ่ายตัวเองไปยังบริการต่างๆ และเริ่มทำงาน
การกำหนดค่า
โมดูลได้รับการกำหนดค่าล่วงหน้าเพื่อทำงานสำหรับกรณีการใช้งานส่วนใหญ่ แต่สามารถปรับแต่งได้ง่ายผ่านฟังก์ชัน กำหนดค่าตัวอย่างเช่น เพื่อสร้างธีมที่เบากว่าและปิดใช้งานปุ่ม กรอง เริ่มต้นในพื้นที่ด้านบนซ้ายของมุมมองแคตาล็อก:
ใน StarterPlayerScripts สร้างใหม่ LocalScript และเปลี่ยนชื่อเป็น กำหนดค่าบูธ
ใส่โค้ดต่อไปนี้ลงในสคริปต์ใหม่
สคริปท้องถิ่น - กำหนดค่าบูธขายสินค้า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})
เพิ่มรายการ
บูธสินค้าคืออะไรโดยไม่มีสินค้า? ส่วนต่อไปอธิบายวิธีเพิ่ม ทรัพยากรอวาตาร์ , ผ่าน และ ผลิตภัณฑ์นักพัฒนา ในบูธสินค้าของคุณ
ทรัพยากรอวาตาร์
รายการเช่น เสื้อผ้าและอุปกรณ์เสริม ต้องถูกเพิ่มผ่าน รหัสสินทรัพย์ ไอเท็มร้านค้าอวาตาร์
สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้
สคริปต์ - เพิ่มสินทรัพย์อวาตาร์local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendคัดลอก ID สินทรัพย์รายการจาก URL เว็บไซต์ของ ร้านอวาตาร์ของพวกเขา ตัวอย่างเช่น ID ของ หมวกเบสบอล Roblox คือ 607702162
วางแต่ละรหัสที่คัดลอกไปในรายการที่แยกกับจุลภาคภายในตาราง itemsโดยค่าเริ่มต้นรายการจะปรากฏในมุมมองแคตตาล็อกในลำดับตัวอักษร แต่คุณสามารถปรับเรียงลําดับได้โดยใช้ setCatalogSort
สคริปต์ - เพิ่มสินทรัพย์อวาตาร์local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {607702162, -- หมวกเบสบอล Roblox4819740796, -- โรบ็อก1374269, -- หูแมว11884330, -- แว่นตาเนิร์ด10476359, -- หมวกกระดาษ}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
ผ่าน
การเพิ่ม ผ่าน ต้องใช้รหัสผ่านที่สามารถตั้งอยู่ใน แดชบอร์ดของผู้สร้าง
สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้
สคริปต์ - เพิ่มบัตรผ่านlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendนําทางไปที่ แดชบอร์ดผู้สร้าง และเลือกประสบการณ์
ในคอลัมน์ด้านซ้าย, ภายใต้ การสร้างรายได้ , เลือก ผ่าน
เลื่อนเมาส์ไปที่ภาพขนาดย่อของบัตรผ่าน, คลิกปุ่ม ⋯ และเลือก คัดลอก ID ทรัพยากร จากเมนูบริบท
ใส่แต่ละรหัสที่คัดลอกไปในรายการที่แยกกับจุลภาคภายในตาราง items และ **** รวมถึง Enum.InfoType.GamePass ในฐานะพารามิเตอร์ที่สองสำหรับ addItemAsync เพื่อระบุว่ารายการจะผ่านโดยค่าเริ่มต้นรายการจะปรากฏในมุมมองแคตตาล็อกในลำดับตัวอักษร แต่การจัดเรียงสามารถปรับแต่งได้โดยใช้ setCatalogSort
สคริปต์ - เพิ่มบัตรผ่านlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {4343758, -- เกราะ ColdFyre28521575, -- โล่สไลม์}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
ผลิตภัณฑ์นักพัฒนา
การเพิ่มผลิตภัณฑ์นักพัฒนา ต้องใช้รหัสผลิตภัณฑ์ที่สามารถตั้งอยู่ใน แดชบอร์ดของผู้สร้าง
สร้าง Script ภายใน ServerScriptService และวางโค้ดต่อไปนี้
สคริปต์ - เพิ่มผลิตภัณฑ์นักพัฒนาlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendนําทางไปที่ แดชบอร์ดผู้สร้าง และเลือกประสบการณ์
ในคอลัมน์ด้านซ้าย, ภายใต้ การสร้างรายได้ , เลือก ผลิตภัณฑ์นักพัฒนา .
ภาพขนาดย่อ, คลิกปุ่ม ⋯ และเลือก คัดลอก ID ทรัพยากร จากเมนูบริบท
ใส่แต่ละรหัสที่คัดลอกมาในรายการที่แยกกับจุลภาคภายในตาราง 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 dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
ปุ่มแคตตาล็อกที่กำหนดเอง
โดยค่าเริ่มต้น, ปุ่มแคตตาล็อกด้านขวา เปิดให้ผู้เล่นเปิดบูธได้ตลอดเวลา

ในบางกรณีอาจเป็นประโยชน์ที่จะ ลบ เป็นเจ้าของ:
สร้างปุ่มใหม่ตามที่ระบุไว้ใน ปุ่ม
สร้าง LocalScript เป็นลูกของวัตถุปุ่ม
ใส่โค้ดต่อไปนี้ลงในสคริปต์ใหม่
สคริปท์ท้องถิ่น - ปุ่มแคตตาล็อกที่กำหนดเองlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- ลบปุ่มสารบัญเริ่มต้นMerchBooth.toggleCatalogButton(false)-- เชื่อมต่อปุ่มที่กําหนดเองscript.Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
ภูมิภาคที่ซื้อได้
วิธีที่มีประโยชน์ในการขับเคลื่อนการซื้อในประสบการณ์ของคุณคือการแสดงบูธสินค้าอัตโนมัติเมื่อผู้เล่นเข้าสู่พื้นที่
เพื่อสร้างภูมิภาคที่ซื้อได้:
สร้างบล็อก Anchored ที่ครอบคลุมภูมิภาคการตรวจจับตรวจสอบให้แน่ใจว่าบล็อกสูงพอที่จะชนกับ PrimaryPart ของโมเดลตัวละคร ( HumanoidRootPart โดยค่าเริ่มต้น)
บล็อกเพื่อตรวจสอบเมื่อผู้เล่นเข้าใกล้หน้าเคาน์เตอร์ร้านค้า โดยใช้ส่วน แท็ก ของคุณสมบัติของบล็อกหรือ เครื่องแก้แท็กของ Studio ใช้แท็ก ShopRegion กับบล็อกเพื่อให้ CollectionService ตรวจพบ
ตั้งค่าส่วน Transparency ให้สูงสุดเพื่อซ่อนมันจากผู้เล่นในประสบการณ์ยังปิดใช้งานคุณสมบัติ CanCollide และ CanQuery ของมันเพื่อให้วัตถุไม่ชนกับมันและรังสีไม่ตรวจพบมัน
ใส่ใหม่ LocalScript ภายใต้ StarterPlayerScripts
ในสคริปต์ใหม่ให้วางโค้ดต่อไปนี้ซึ่งใช้เหตุการณ์ 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.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)
คําเตือนความใกล้ชิด
เป็นทางเลือกสำหรับการดูแคตตาล็อก 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.SpheremyParticleEmitter.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 | สตริง | ผู้สร้างรายการตามที่แสดงในคลังเอกสาร |
creatorType | Enum.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.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 |
สคริปท์ท้องถิ่น
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 thenMerchBooth.setEnabled(false)end
อีเวนต์
เพิ่มรายการ
จะเกิดไฟไหม้เมื่อมีการเพิ่มรายการผ่าน addItemAsync อีเวนต์นี้สามารถเชื่อมต่อได้เฉพาะใน Script
พารามิเตร | |
---|---|
รหัสสินทรัพย์: number | ID สินทรัพย์รายการ |
ข้อมูลรายการ: 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
พารามิเตร | |
---|---|
รหัสสินทรัพย์: number | ID สินทรัพย์รายการ |
สคริปต์
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)