MerchBooth 开发者模块 让您可以直接在游戏中提供 头像资产、通行证 和 开发者产品 进行销售。玩家可以浏览物品,预览自己头像上的资产,购买物品,并立即使用或装备它们——所有这些都无需离开您的游戏。这可以帮助您 变现 您的游戏,并通过销售其他创作者的物品获得 40% 的附属费用。
模块使用
安装
要在游戏中使用 MerchBooth 模块:
从 Studio 的 窗口 菜单或 主页 选项卡工具栏中,打开 工具箱 并选择 创作者商店 选项卡。

确保选择了 模型 排序,然后单击 查看所有 按钮以查看 类别。

找到并单击 包 瓦片。
找到 商品摊位 模块并单击它,或将其拖放到 3D 视图中。

在 资源管理器 窗口中,将整个 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})
添加物品
没有商品的商品摊位算什么呢?以下部分概述了如何将 头像资产、通行证 和 开发者产品 添加到您的商品摊位。
头像资产
诸如 服装和配饰 的物品必须通过其在 头像商店 的详细页面上找到的 资产 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, -- 书呆子眼镜10476359, -- 纸帽}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
通行证
添加 通行证 需要通行证 ID,这些 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 盔甲28521575, -- 冒泡盾}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
开发者产品
添加 开发者产品 需要产品 ID,这些 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, -- 法力补充1257880672, -- 治疗药水}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 实例。
local 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.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})GUI 可见性
默认情况下,商品摊位在其 UI 出现时隐藏所有 ScreenGuis 和 CoreGuis,包括聊天、排行榜和 Roblox 包含的其他内容。如果您希望禁用此行为,请在 configure 调用中将 hideOtherUis 设置为 false。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
hideOtherUis = false
})角色移动
在角色处于商品摊位时,防止其移动可能是有利的。可以通过在 configure 调用中将 disableCharacterMovement 设置为 true 来实现。
local 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 | 打开特定商品摊位物品视图的键和/或游戏手柄按钮。 |
local 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 实例,在装备时出现并播放。 |
local 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 可用于在目录视图中隐藏该物品。
有关详细信息,请参见 添加物品,因为 资产 与 游戏通行证 或 开发者产品 的用法略有不同。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Roblox 棒球帽
4819740796, -- Robox
1374269, -- 猫耳
11884330, -- 书呆子眼镜
10476359, -- 纸帽
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
endlocal ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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
endlocal ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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
endgetItems
getItems(): table
返回一个字典,表示所有当前注册的物品。每个键是物品的资产 ID(字符串),每个键的值是一个 Item。此函数只能从 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)
endremoveItem
removeItem(assetId: number)
注销之前通过 addItemAsync 添加的物品,从目录视图中移除其瓦片以及分配给它的任何 接近提示。此函数只能从 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)
endaddProximityButton
addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)
在给定的 adornee 上添加一个 接近提示,该提示将触发显示物品的购买视图,给定其资产 ID。这可以作为 3D 环境中发现物品的替代方案。
请注意,必须通过 addItemAsync 添加物品,然后才能将接近按钮分配给它。另请参见 removeProximityButton 以从对象中移除接近提示。
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
endremoveProximityButton
removeProximityButton(adornee: BasePart|Model|Attachment)
移除通过 addProximityButton 生成的 接近提示。此函数只能从 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)
endsetCatalogSort
setCatalogSort(sortFunction: function): boolean
设置在目录视图中使用的排序函数 sortFunction。提供的排序函数可以使用基于 Item 信息的逻辑,例如 price 或 title。此函数只能从 LocalScript 调用。
以下是一些对目录进行排序的示例:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)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 |
local 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 调用。
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 调用。
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)
endtoggleCatalogButton
toggleCatalogButton(enabled: boolean)
切换右侧屏幕上的目录按钮的开/关。这在实现 自定义按钮 或将商品摊位的外观限制为 区域 或 接近提示 时非常有用。只能从 LocalScript 调用。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.toggleCatalogButton(false)isMerchBoothOpen
isMerchBoothOpen(): Tuple
如果目录或物品视图打开,则返回 true。如果物品视图打开,则第二个值返回物品的资产 ID。此函数只能从 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)
endcloseMerchBooth
closeMerchBooth()
关闭商品摊位窗口。此函数只能从 LocalScript 调用。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.closeMerchBooth()isMerchBoothEnabled
isMerchBoothEnabled(): boolean
此函数可与 setEnabled 一起使用,以检查商品摊位当前是否启用。只能从 LocalScript 调用。
setEnabled
setEnabled(enabled: boolean)
设置整个商品摊位是否启用。当禁用时,此函数会移除整个 UI,包括 接近提示,并断开所有 事件。此函数只能从 LocalScript 调用。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
end事件
itemAdded
当通过 addItemAsync 添加物品时触发。此事件只能在 Script 中连接。
| 参数 | |
|---|---|
| assetId: number | 物品资产 ID。 |
| itemInfo: table | 物品信息的字典,例如 price 或 title。 |
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。 |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("物品已移除,资产 ID 为", assetId)
end)merchBoothOpened
当目录 或 物品详细视图打开时触发。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("摊位视图已打开")
end)merchBoothClosed
当目录 或 物品详细视图关闭时触发。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("摊位视图已关闭")
end)catalogViewOpened
当目录视图打开时触发。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("目录视图已打开")
end)catalogViewClosed
当目录视图关闭时触发。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("目录视图已关闭")
end)itemViewOpened
当物品详细视图打开时触发。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("物品视图已打开")
end)itemViewClosed
当物品详细视图关闭时触发。
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("物品视图已关闭")
end)