MerchBooth 開發者模組 讓你在自己的體驗中直接提供 虛擬物品、通行證 和 開發者產品 進行銷售。玩家可以瀏覽商品、在自己的虛擬角色上預覽物品、購買商品,並立即使用或裝備這些物品——所有這些都不需要離開你的體驗。這可以幫助你 獲得收入,並通過銷售其他創作者的物品獲得 40% 的聯盟費用。
模組使用
安裝
要在體驗中使用 MerchBooth 模組:
從 Studio 的 視窗 菜單或 首頁 標籤工具欄中,打開 工具箱,然後選擇 創作者商店 標籤。

確保選擇了 模型 排序,然後單擊 查看全部 按鈕以查看 類別。

定位並單擊 包裝 磚塊。
找到 商品展位 模組並單擊它,或將它拖放到 3D 視圖中。

在 檢視器 窗口中,將整個 MerchBooth 模組移動到 ReplicatedStorage。運行體驗時,模組將開始運行。
配置
該模組預配置以支持大多數使用情況,但可以通過 configure 函數輕鬆自定義。例如,要創建更簡約的主題並禁用目錄視圖左上角的默認 過濾 按鈕:
在 StarterPlayerScripts 中創建一個新的 LocalScript 並將其重命名為 配置商品展位。

將以下代碼粘貼到新腳本中。
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})
添加物品
沒有商品的商品展位還算什麼?下面的部分將概述如何將 虛擬物品、通行證 和 開發者產品 添加到你的商品展位中。
虛擬物品
像 服裝和配飾 這樣的物品必須通過其位於 虛擬物品商店 的詳細頁面上的 資產 ID 添加。
在 ServerScriptService 中創建一個 Script 並將以下代碼粘貼到其中。
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從其 虛擬物品商店 網站 URL 中複製物品資產 ID。例如,Roblox 棒球帽 的 ID 是 607702162。

將每個複製的 ID 粘貼到 items 表中的逗號分隔列表中。默認情況下,物品會按字母順序顯示在目錄視圖中,但你可以使用 setCatalogSort 進行排序自定義。
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {607702162, -- Roblox 棒球帽4819740796, -- Robox1374269, -- 小貓耳11884330, -- Nerd 眼鏡10476359, -- 紙帽}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
通行證
添加 通行證 需要通行證 ID,可以在 創作者儀表板 中找到。
在 ServerScriptService 中創建一個 Script 並將以下代碼粘貼到其中。
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瀏覽 創作者儀表板 並選擇你的體驗。
在左側列中,在 獲利化 下選擇 通行證。
懸停在通行證縮略圖上,單擊 ⋯ 按鈕,然後從上下文菜單中選擇 複製資產 ID。

將每個複製的 ID 粘貼到 items 表中的逗號分隔列表中 並 在 addItemAsync 的第二個參數中包含 Enum.InfoType.GamePass 以表示這些項目是通行證。默認情況下,物品按字母順序顯示在目錄視圖中,但可以通過 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,可以在 創作者儀表板 中找到。
在 ServerScriptService 中創建一個 Script 並將以下代碼粘貼到其中。
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瀏覽 創作者儀表板 並選擇你的體驗。
在左側列中,在 獲利化 下選擇 開發者產品。
懸停在產品的縮略圖上,單擊 ⋯ 按鈕,然後從上下文菜單中選擇 複製資產 ID。

將每個複製的 ID 粘貼到 items 表中的逗號分隔列表中 並 在 addItemAsync 的第二個參數中包含 Enum.InfoType.Product 以表示這些項目是開發者產品。默認情況下,物品按字母順序顯示在目錄視圖中,但可以使用 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)
可購買區域
自動顯示商品展位的一個有效方法是當玩家進入某個區域時。
要創建可購買區域:
使用該區塊屬性的 標籤 部分,將標籤 ShopRegion 應用於該區塊,以便 CollectionService 偵測到它。
將該部分的 Transparency 設置為最大值以隱藏它,並禁用其 CanCollide 和 CanQuery 屬性,以防止物體與其物理碰撞,並且射線檢測時不會檢測到它。


在 StarterPlayerScripts 下插入一個新的 LocalScript。

在新腳本中,粘貼如下所示的代碼,該代碼使用 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)
接近提示
作為 2D 目錄視圖的替代方案,你可以在遊戲中的物件上添加 接近提示。這鼓勵玩家在 3D 環境中發現物品,並在自己的虛擬角色上預覽它們、購買它們並立即裝備它們。詳細信息請參見 addProximityButton。
更改裝備效果
默認情況下,商品展位在玩家從中裝備物品時顯示一種通用的閃光效果。要更改此效果,請在 configure 調用中將 particleEmitterTemplate 設置為自己的 ParticleEmitter 實例。
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 可見性
默認情況下,商品展位在其 UI 出現時隱藏所有 ScreenGuis 和 CoreGuis,包括聊天、排行榜和 Roblox 包含的其他項目。如果你想禁用此行為,請在 configure 調用中將 hideOtherUis 設置為 false。
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({hideOtherUis = false})
角色移動
在玩家處於商品展位中時阻止角色移動可能是有益的。這可以通過在 configure 調用中將 disableCharacterMovement 設置為 true 來實現。
LocalScript - ConfigureMerchBoothlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)MerchBooth.configure({disableCharacterMovement = true})
API 參考
類型
物品
商品展位中的物品用以下鍵值對表示的字典表示。可以通過 getItems 函數或 itemAdded 事件獲取物品。
| 鍵 | 類型 | 描述 |
|---|---|---|
| assetId | number | 物品的目錄 ID,如傳遞給 addItemAsync 一樣。 |
| title | string | 物品在目錄中顯示的標題。 |
| price | number | 物品的價格(以 Robux 為單位)。 |
| description | string | 物品的描述,按目錄中的顯示方式。 |
| assetType | string | 表示物品配飾類型的字符串。 |
| isOwned | bool | 當前玩家是否擁有該物品。 |
| creatorName | string | 目錄中顯示的物品創作者。 |
| creatorType | Enum.CreatorType | 物品的創作者類型。 |
列舉
MerchBooth.Controls
與 setControlKeyCodes 一起使用來自定義與商品展位交互的鍵和遊戲手柄按鈕。
| 名稱 | 摘要 |
|---|---|
| ProximityPrompts | 鍵和/或遊戲手柄按鈕,用於在配置接近提示時打開物品視圖。 |
| OpenMerchBooth | 鍵和/或遊戲手柄按鈕,用於打開商品展位。 |
| CloseMerchBooth | 鍵和/或遊戲手柄按鈕,用於關閉商品展位。 |
| 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)
通過 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 實例。 |
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 棒球帽
4819740796, -- Robox
1374269, -- 小貓耳
11884330, -- Nerd 眼鏡
10476359, -- 紙帽
}
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 字符串,每個鍵的值是 Item。此函數只能從 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 添加的物品,移除其在目錄視圖中的區塊和任何分配給它的 接近提示。此函數只能從 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)
在給定的 adornee 上添加一個 接近提示,該提示將觸發顯示物品的購買視圖,根據其資產 ID。這可以作為 2D 目錄視圖的替代方案,鼓勵玩家在 3D 環境中發現物品。
請注意,必須通過 addItemAsync 先添加物品,才能將接近按鈕分配給它。另請參閱 removeProximityButton 以從對象中移除接近提示。
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)
移除通過 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
-- 過一些時間後,移除此提示
task.wait(5)
MerchBooth.removeProximityButton(item)
end
setCatalogSort
setCatalogSort(sortFunction: function): boolean
將排序函數 sortFunction 設置為在目錄視圖中使用。提供的排序函數可以使用基於 Item 信息的邏輯,如 price 或 title。此函數只能從 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)
配置與商品展位交互的鍵和按鈕值。第一個參數必須是一個 MerchBooth.Controls 列舉,第二個參數是一個表,包含鍵 keyboard 和/或 gamepad 及相應的 Enum.KeyCode 列舉。
| 列舉 (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)
開關右側屏幕上的目錄按鈕。這在實施 自定義按鈕 或限製商品展位出現於 區域 或 接近提示 時非常有用。只能從 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,包括 接近提示,並斷開所有 事件。此函數只能從 LocalScript 調用。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
事件
itemAdded
當通過 addItemAsync 添加物品時觸發。該事件只能在 Script 中連接。
Script
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("物品添加,資產 ID 為", 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("物品移除,資產 ID 為", assetId)
end)
merchBoothOpened
當目錄 或 物品詳細視圖打開時觸發。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("展位視圖已開啟")
end)
merchBoothClosed
當目錄 或 物品詳細視圖關閉時觸發。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("展位視圖已關閉")
end)
catalogViewOpened
當目錄視圖打開時觸發。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("目錄視圖已開啟")
end)
catalogViewClosed
當目錄視圖關閉時觸發。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("目錄視圖已關閉")
end)
itemViewOpened
當物品詳細視圖被打開時觸發。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("物品視圖已開啟")
end)
itemViewClosed
當物品詳細視圖關閉時觸發。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("物品視圖已關閉")
end)
