商品摊位

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

MerchBooth 开发者模块 让您可以直接在游戏中提供 头像资产通行证开发者产品 进行销售。玩家可以浏览物品,预览自己头像上的资产,购买物品,并立即使用或装备它们——所有这些都无需离开您的游戏。这可以帮助您 变现 您的游戏,并通过销售其他创作者的物品获得 40% 的附属费用。

模块使用

安装

要在游戏中使用 MerchBooth 模块:

  1. 从 Studio 的 窗口 菜单或 主页 选项卡工具栏中,打开 工具箱 并选择 创作者商店 选项卡。

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

  3. 找到并单击 瓦片。

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

  5. 资源管理器 窗口中,将整个 MerchBooth 模型移动到 ReplicatedStorage。运行游戏时,模块将开始运行。

配置

该模块已预配置以适用于大多数用例,但可以通过 configure 函数轻松自定义。例如,要创建一个更轻的主题并禁用目录视图左上角的默认 过滤器 按钮:

  1. StarterPlayerScripts 中,创建一个新的 LocalScript 并将其重命名为 ConfigureMerchBooth

  2. 将以下代码粘贴到新脚本中。

    LocalScript - ConfigureMerchBooth
    local 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 添加。

  1. ServerScriptService 中创建一个 Script 并粘贴以下代码。

    Script - Add Avatar Assets
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. 从其 头像商店 网站 URL 中复制物品资产 ID。例如,Roblox 棒球帽 的 ID 是 607702162

  3. 将每个复制的 ID 粘贴到 items 表中的逗号分隔列表中。默认情况下,物品在目录视图中按字母顺序显示,但您可以使用 setCatalogSort 自定义排序。

    Script - Add Avatar Assets
    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
    end

通行证

添加 通行证 需要通行证 ID,这些 ID 可以在 创作者仪表板 中找到。

  1. ServerScriptService 中创建一个 Script 并粘贴以下代码。

    Script - Add Passes
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. 将每个复制的 ID 粘贴到 items 表中的逗号分隔列表中 addItemAsync 的第二个参数中包含 Enum.InfoType.GamePass 以指示这些物品是通行证。默认情况下,物品将在目录视图中按字母顺序显示,但可以通过 setCatalogSort 自定义排序。

    Script - Add Passes
    local 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
    end

开发者产品

添加 开发者产品 需要产品 ID,这些 ID 可以在 创作者仪表板 中找到。

  1. ServerScriptService 中创建一个 Script 并粘贴以下代码。

    Script - Add Developer Products
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. 将每个复制的 ID 粘贴到 items 表中的逗号分隔列表中 addItemAsync 的第二个参数中包含 Enum.InfoType.Product 以指示这些物品是开发者产品。默认情况下,物品在目录视图中按字母顺序显示,但您可以使用 setCatalogSort 自定义排序。

    Script - Add Developer Products
    local 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
    end

自定义目录按钮

默认情况下,右侧的 目录按钮 允许玩家随时打开摊位。

在某些情况下,可能需要 移除 此按钮并连接您自己的按钮:

  1. 按照 按钮 中的说明创建一个新按钮。

  2. 创建一个 LocalScript 作为按钮对象的子项。

  3. 将以下代码粘贴到新脚本中。

    LocalScript - Custom Catalog Button
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- 移除默认目录按钮
    MerchBooth.toggleCatalogButton(false)
    -- 连接自定义按钮
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

可购物区域

在游戏中推动购买的一种有效方式是,当玩家进入某个区域时自动显示商品摊位。

要创建可购物区域:

  1. 创建一个 Anchored 块,包围检测区域。确保该块足够高,以便与角色模型的 PrimaryPart 碰撞(默认是 HumanoidRootPart)。

    检测玩家接近商店柜台前面的块
  2. 使用块属性的 标签 部分,将标签 ShopRegion 应用到该块,以便 CollectionService 检测到它。

  3. 将部件的 Transparency 设置为最大值,以便在游戏中隐藏它。同时禁用其 CanCollideCanQuery 属性,以便物体不会与其物理碰撞,射线检测也不会检测到它。

  4. StarterPlayerScripts 下插入一个新的 LocalScript

  5. 在新脚本中,粘贴以下代码,该代码使用 TouchedTouchEnded 事件来检测角色何时进入/离开该区域,并调用 openMerchBoothcloseMerchBooth 来打开/关闭摊位 GUI。

    LocalScript
    local 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.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 环境中发现物品,在自己的头像上预览它们,购买它们,并立即装备它们。有关详细信息,请参见 addProximityButton

更改装备效果

默认情况下,商品摊位在玩家从中装备物品时显示通用的闪烁效果。要更改效果,请在 configure 调用中将 particleEmitterTemplate 设置为您自己的 ParticleEmitter 实例。

LocalScript - ConfigureMerchBooth
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 出现时隐藏所有 ScreenGuisCoreGuis,包括聊天、排行榜和 Roblox 包含的其他内容。如果您希望禁用此行为,请在 configure 调用中将 hideOtherUis 设置为 false

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

角色移动

在角色处于商品摊位时,防止其移动可能是有利的。可以通过在 configure 调用中将 disableCharacterMovement 设置为 true 来实现。

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

API 参考

类型

物品

商品摊位中的物品由一个字典表示,包含以下键值对。可以通过 getItems 函数或 itemAdded 事件收集物品。

类型描述
assetIdnumber物品的目录 ID,作为参数传递给 addItemAsync
titlestring物品在目录中显示的标题。
pricenumber物品的价格,以 Robux 为单位。
descriptionstring物品在目录中显示的描述。
assetTypestring表示物品配件类型的字符串。
isOwnedbool当前玩家是否拥有该物品。
creatorNamestring物品在目录中显示的创建者。
creatorTypeEnum.CreatorType物品的创建者类型。

枚举

MerchBooth.Controls

setControlKeyCodes 一起使用,以自定义与商品摊位交互的键和游戏手柄按钮。

名称摘要
ProximityPrompts当配置了 接近提示 时,用于打开物品视图的键和/或游戏手柄按钮。
OpenMerchBooth打开商品摊位的键和/或游戏手柄按钮。
CloseMerchBooth关闭商品摊位的键和/或游戏手柄按钮。
Filter用于在目录视图左上角使用默认 过滤器 下拉菜单的键和/或游戏手柄按钮。
ViewItem打开特定商品摊位物品视图的键和/或游戏手柄按钮。
LocalScript
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 实例,在装备时出现并播放。
LocalScript
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 可用于在目录视图中隐藏该物品。

有关详细信息,请参见 添加物品,因为 资产游戏通行证开发者产品 的用法略有不同。

Script - Add Avatar Assets
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
end
Script - Add Passes
local 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
end
Script - Add Developer Products
local 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
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。这可以作为 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 信息的逻辑,例如 pricetitle。此函数只能从 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.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
LocalScript
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 调用。

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 调用。

LocalScript
local 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 调用。

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

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

此函数可与 setEnabled 一起使用,以检查商品摊位当前是否启用。只能从 LocalScript 调用。

setEnabled

setEnabled(enabled: boolean)

设置整个商品摊位是否启用。当禁用时,此函数会移除整个 UI,包括 接近提示,并断开所有 事件。此函数只能从 LocalScript 调用。

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物品信息的字典,例如 pricetitle
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)
©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。