Quầy hàng

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Các mô-đun MerchBooth nhà phát triển cho phép bạn cung cấp tài sản avatar , vé truy cậpsản phẩm nhà phát triển để bán trực tiếp trong trải nghiệm của bạn.Người chơi có thể duyệt qua các mục, xem trước tài sản trên avatar của riêng họ, mua các mục và sử dụng hoặc trang bị chúng ngay lập tức - tất cả mà không rời khỏi trải nghiệm của bạn.Điều này có thể giúp bạn hóa tiền kinh nghiệm của bạn và kiếm được doanh thu thông qua phí liên kết 40% liên quan đến việc bán các vật phẩm của các nhà sáng tạo khác.

Sử dụng module

Cài đặt

Để sử dụng mô-đun MerchBooth trong một trải nghiệm:

  1. Từ tab Xem, mở Hộp công cụ và chọn tab Cửa hàng Nhà sáng tạo .

    Toolbox toggle button in Studio
  2. Hãy chắc chắn rằng kiểu sắp xếp Mô hình được chọn, sau đó nhấp vào nút Xem tất cả đối với Danh mục .

  3. Tìm và nhấp vào ô Dev Modules .

  4. Tìm mô-đun Gian hàng thương mại và nhấp vào nó, hoặc kéo và thả nó vào cửa sổ 3D.

  5. Trong cửa sổ Explorer, di chuyển toàn bộ mô hình MerchBooth vào ServerScriptService .Sau khi chạy trải nghiệm, mô-đun sẽ phân phối bản thân cho các dịch vụ khác nhau và bắt đầu chạy.

Cài đặt

Mô-đun được cài đặt sẵn để hoạt động cho hầu hết các trường hợp sử dụng, nhưng nó có thể dễ dàng được tùy chỉnh thông qua chức năng configure.Ví dụ, để tạo một chủ đề nhẹ hơn và vô hiệu hóa nút lọc mặc định Filter trong khu vực bên trái trên cùng của xem danh mục:

  1. Trong StarterPlayerScripts , tạo một mới LocalScript và đổi tên thành Cài đặt Quầy Thương mại .

  2. Sao chép mã sau vào kịch bản mới.

    LocalScript - Cài đặt gian hàng Merch

    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
    })

Thêm vật phẩm

Quầy trưng bày là gì mà không có hàng hóa? Các phần sau đây mô tả cách thêm tài sản avatar , sản phẩm phát triển vào quầy trưng bày của bạn.

Tài sản Avatar

Các mặt hàng như quần áo và phụ kiện phải được thêm vào thông qua ID tài sản của họ nằm trên trang chi tiết của mặt vật phẩmtrong Cửa hàng Avatar.

  1. Tạo một Script bên trong ServerScriptService và dán mã sau.

    Script - Thêm tài sản Avatar

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("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. Sao chép ID tài sản mục từ URL trang web Cửa hàng Avatar của họ. Ví dụ, ID của Mũ bóng chày Roblox607702162 .

  3. Sao chép mỗi ID được sao chép vào một danh sách có dấu phân cách trong bảng items.Mặc định, các mục xuất hiện trong cửa sổ danh mục theo thứ tự bảng chữ cái, nhưng bạn có thể tùy chỉnh sắp xếp bằng cách sử dụng setCatalogSort.

    Script - Thêm tài sản Avatar

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Mũ bóng chày Roblox
    4819740796, -- Robox
    1374269, -- Tai Mèo
    11884330, -- Kính Nerd
    10476359, -- Mũ giấy
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Vượt qua

Thêm yêu cầu ID vé có thể được tìm thấy trong Bảng điều khiển Nhà sáng tạo.

  1. Tạo một Script bên trong ServerScriptService và dán mã sau.

    Script - Thêm các thẻ truy cập

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("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. Di chuyển đến Bảng điều khiển Nhà sáng tạo và chọn trải nghiệm.

  3. Trong cột bên trái, dưới Monetization , hãy chọn Passes .

  4. Vượt qua nút hình nhỏ, nhấp vào nút và chọn Sao chép ID tài sản từ menu ngữ cảnh.

  5. Sao chép mỗi ID vào một danh sách có dấu phân cách trong bảng và bao gồm như tham số thứ hai cho addItemAsync để chỉ ra rằng các mục được truyền.Mặc định, các mục sẽ xuất hiện trong cửa sổ danh mục theo thứ tự bảng chữ cái, nhưng việc sắp xếp có thể được tùy chỉnh thông qua setCatalogSort .

    Script - Thêm các thẻ truy cập

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- Áo giáp ColdFyre
    28521575, -- Khiên Chất Bôi
    }
    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

Sản phẩm của nhà phát triển

Thêm sản phẩm nhà phát triển yêu cầu ID sản phẩm có thể được tìm thấy trong Bảng điều khiển Nhà sáng tạo.

  1. Tạo một Script bên trong ServerScriptService và dán mã sau.

    Script - Thêm sản phẩm nhà phát triển

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("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. Di chuyển đến Bảng điều khiển Nhà sáng tạo và chọn trải nghiệm.

  3. Trong cột bên trái, dưới Monetization , hãy chọn Sản phẩm Nhà phát triển .

  4. Vượt qua hình ảnh hình nhỏcủa một sản phẩm, nhấp vào nút và chọn Sao chép ID tài sản từ menu ngữ cảnh.

  5. Sao chép mỗi ID vào một danh sách có dấu phân cách trong bảng và bao gồm như tham số thứ hai cho addItemAsync để chỉ ra rằng các mục là sản phẩm của nhà phát triển.Mặc định, các mục xuất hiện trong cửa sổ danh mục theo thứ tự bảng chữ cái, nhưng bạn có thể tùy chỉnh sắp xếp bằng cách sử dụng setCatalogSort .

    Script - Thêm sản phẩm nhà phát triển

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Nạp Năng Lượng
    1257880672, -- Thuốc hồi máu
    }
    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

Nút danh mục tùy chỉnh

Mặc định, một nút catalogue bên phải cho phép người chơi mở quầy bất cứ lúc nào .

Trong một số trường hợp, có thể hữu ích khi xóa nút này và kết nối của sở hữubạn:

  1. Tạo một nút mới như được mô tả trong Nút.

  2. Tạo một LocalScript như con của đối tượng nút.

  3. Sao chép mã sau vào kịch bản mới.

    LocalScript - Nút Catalog tùy chỉnh

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Loại bỏ nút danh mục mặc định
    MerchBooth.toggleCatalogButton(false)
    -- Kết nối nút tùy chỉnh
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Khu vực có thể mua sắm

Một cách hữu ích để kích hoạt việc mua hàng trong trải nghiệm của bạn là tự động hiển thị gian hàng thương mại khi một người chơi bước vào khu vực.

Để tạo một khu vực có thể mua sắm:

  1. Tạo một khối Anchored bao gồm khu vực phát hiện.Hãy chắc chắn rằng khối cao đủ để va chạm với PrimaryPart của mô hình nhân vật ( HumanoidRootPart theo mặc định).

    Khối để phát hiện khi người chơi tiếp cận phía trước quầy cửa hàng
  2. Sử dụng phần Thẻ của các thuộc tính của khối, hoặc Trình soạn thảo Thẻ của Studio, áp dụng thẻ cho khối để được phát hiện.

  3. Đặt phần của Transparency ở mức tối đa để che nó khỏi người chơi trong trải nghiệm.Cũng vô hiệu hóa các thuộc tính CanCollideCanQuery của nó để các đối tượng không va chạm vật lý với nó và phát bắn không phát hiện nó.

  4. Thêm một cái mới LocalScript dưới StarterPlayerScripts .

  5. Trong kịch bản mới, sao chép mã sau đây sử dụng các sự kiện TouchedTouchEnded để phát hiện khi các nhân vật vào/rời khu vực và gọi openMerchBoothcloseMerchBooth để mở/đóng gian hàng GUI.

    Tập lệnh địa phương

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Loại bỏ nút danh mục mặc định
    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
    -- Lặp qua các khu vực cửa hàng được gắn thẻ hiện có
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Phát hiện khi khu vực cửa hàng không phát sóng chảy vào
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Thông báo cảm biến gần

Là một lựa chọn thay thế cho cái nhìn catalogue 2D, bạn có thể thêm thông báo cảm biến vào các đối tượng trong kinh nghiệm.Điều này khuyến khích người chơi khám phá các vật phẩm trong môi trường 3D, xem trước chúng trên avatar của riêng họ, mua chúng và trang bị chúng ngay lập tức.Xem thêm nút gần để có chi tiết.

Thay đổi hiệu ứng trang bị

Mặc định, quầy thương mại hiển thị một hiệu ứng lấp lánh chung khi một người chơi trang bị một vật phẩm từ nó.Để thay đổi hiệu ứng, hãy đặt particleEmitterTemplate đến instance riêng của bạn của một ParticleEmitter trong một cuộc gọi tùy chỉnh.

LocalScript - Cài đặt gian hàng Merch

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.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})

Tầm nhìn GUI

Mặc định, gian hàng thương mại che tất cả ScreenGuisCoreGuis khi UI xuất hiện, bao gồm cả trò chuyện, bảng xếp hạng và những thứ khác bởi Roblox bao gồm.Nếu bạn muốn vô hiệu hóa hành vi này, hãy đặt hideOtherUis đến false trong một cuộc gọi cấu hình.

LocalScript - Cài đặt gian hàng Merch

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

Di chuyển nhân vật

Nó có thể là lợi thế để ngăn chặn một nhân vật di chuyển trong khi họ ở trong gian hàng bán hàng.Điều này có thể được thực hiện bằng cách đặt disableCharacterMovement đến true trong một cuộc gọi tùy chỉnh.

LocalScript - Cài đặt gian hàng Merch

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

Tham chiếu API

Loại

Vật phẩm

Các mặt hàng trong gian hàng bán lẻ được đại diện bởi một từ điển với các cặp chìa khóa-giá trị sau.Các mục có thể được thu thập thông qua chức năng getItems hoặc sự kiện itemadded.

Nhân vật chínhLoạiMô tả
assetIdsốID Catalog của vật phẩm, như được chuyển đến addItemAsync.
titlechuỗiTiêu đề mục như xuất hiện trong danh mục.
pricesốGiá vật phẩm trong Robux.
descriptionchuỗiMô tả vật phẩm như xuất hiện trong danh mục.
assetTypechuỗiChuỗi đại diện cho đánh máyphụ kiện của vật phẩm.
isOwnedboolLiệu người chơi hiện tại có sở hữu vật phẩm hay không.
creatorNamechuỗiNgười tạo mục như được hiển thị trong danh mục.
creatorTypeEnum.CreatorTypeLoại tạo cho vật phẩm.

Danh sách

Booth Merch.Điều khiển

Sử dụng cùng với setControlKeyCodes để tùy chỉnh các phím và nút gamepad để tương tác với gian hàng bán hàng.

TênTổng quát
ProximityPromptsNút chính và/hoặc gamepad để mở xem mục khi thông báo cảm biến gần được cấu hình.
OpenMerchBoothNút chính và/hoặc gamepad để mở gian hàng thương mại.
CloseMerchBoothNút chính và/hoặc gamepad để đóng gian hàng thương mại.
FilterNút chìa khóa và/hoặc gamepad để sử dụng mặc định Bộ lọc kéo xuống ở phía trên bên trái của khu vực xem danh mục.
ViewItemNút chính và/hoặc gamepad để mở một cái nhìn cụ thể về vật phẩm gian hàng thương mại.
Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})

Chức năng

điều chỉnh

điều chỉnh(config: table )

Thay thế các tùy chọn cấu hình mặc định bên khách thông qua các chìa khóa/giá trị sau trong bảng config .Chức năng này chỉ có thể được gọi từ một LocalScript .

Nhân vật chínhMô tảMặc định
backgroundColorMàu nền chính của cửa sổ ( Color3 ).[0, 0, 0]
cornerRadiusBán kính góc cho cửa sổ chính ( UDim ).(0, 16)
cornerRadiusSmallBán kính góc cho các thành phần bên trong cửa sổ ( UDim ).(0, 8)
textFontPhông chữ của "văn bản chính" như giá, mô tả và thông tin chung khác ( Enum.Font ).Gotham
textSizeKích thước của văn bản chính.14
textColorMàu của văn bản chính ( Color3 ).[255, 255, 255]
secondaryTextColorMàu được sử dụng cho một số biến thể của văn bản chính ( Color3 ).[153, 153, 158]
headerFontPhông chữ của văn bản tiêu đề được sử dụng cho tiêu đề của cửa sổ ( Enum.Font ).GothamMedium
headerTextSizeKích thước của văn bản tiêu đề được sử dụng cho tiêu đề của cửa sổ.18
titleFontPhông chữ của văn bản tiêu đề được sử dụng cho tên của mục trên trang chi tiết của mục ( Enum.Font ).GothamBold
titleTextSizeKích thước của văn bản tiêu đề được sử dụng cho tên của vật phẩm trên trang chi tiết vật phẩm.28
buttonColorMàu nền cho nút lớn hơn trong trạng thái có thể nhấp vào, chẳng hạn như nút mua chính trong xem mục ( Color3 ).[255, 255, 255]
buttonTextColorMàu văn bản cho nút lớn hơn trong trạng thái có thể nhấp vào, chẳng hạn như nút mua chính trong xem mục ( Color3 ).[0, 0, 0]
secondaryButtonColorMàu nền cho các nút nhỏ hơn như nút giá trong cửa sổ xem danh mục hoặc nút Thử trên ( Color3 ).[34, 34, 34]
secondaryButtonTextColorMàu văn bản cho các nút nhỏ hơn như nút giá trong cửa sổ danh mục hoặc nút Thử trên ( Color3 ).[255, 255, 255]
inactiveButtonColorMàu nền cho tất cả các nút trong trạng thái không thể nhấp ( Color3 ).[153, 153, 158]
inactiveButtonTextColorMàu văn bản cho tất cả các nút trong trạng thái không thể nhấp ( Color3 ).[255, 255, 255]
particleEmitterTemplateTùy chọn tùy chỉnh ParticleEmitter ví dụ xuất hiện và chơi trên equip.
Tập lệnh địa phương

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,
})

thêm mục Async

addItemAsync(assetId: number , productType: Enum.InfoType , hideFromCatalog: boolean )

Thêm một vật phẩm vào gian hàng một cách không đồng bộ để nó có thể được mua trong trải nghiệm.assetId là ID tài sản của mục, productType là menu Enum.InfoType của mục, và hideFromCatalog có thể được sử dụng để ẩn mục trong cái nhìn catalogue.

Xem Thêm vật phẩm để có chi tiết, vì cách sử dụng khác nhau cho tài sản so với thẻ trò chơi hoặc sản phẩm nhà phát triển .

Script - Thêm tài sản Avatar

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Mũ bóng chày Roblox
4819740796, -- Robox
1374269, -- Tai Mèo
11884330, -- Kính Nerd
10476359, -- Mũ giấy
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Thêm các thẻ truy cập

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- Áo giáp ColdFyre
28521575, -- Khiên Chất Bôi
}
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 - Thêm sản phẩm nhà phát triển

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Nạp Năng Lượng
1257880672, -- Thuốc hồi máu
}
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

nhận các mục

nhận vật phẩm(): table

Trả về một từ điển đại diện cho tất cả các mục đã đăng ký hiện tại.Mỗi chìa khóa là ID tài sản của một vật phẩmdưới dạng chuỗi, và giá trị của mỗi chìa khóa là một Vật phẩm.Chức năng này chỉ có thể được gọi từ một Script .

Tập lệnh

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

xóa mục

xóa mục(assetId: number)

Xóa một vật phẩm đã được thêm trước đó với addItemAsync, xóa gạch men của nó trong cái nhìn danh mục và bất kỳ lời nhắc cảm biến gần được gán cho nó.Chức năng này chỉ có thể được gọi từ một Script .

Tập lệnh

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Sau một thời gian, xóa vật phẩm
task.wait(5)
MerchBooth.removeItem(4819740796)
end

thêmProximityButton

thêmProximityButton(adornee: BasePart | Model | Attachment , assetId: number )

Thêm một thông báo cảm biến trên đường truyền được cho adornee sẽ kích hoạt hiển thị quan điểm mua hàng của một vật phẩm, dựa trên ID tài sản của nó.Nó có thể được sử dụng như một lựa chọn thay thế cho cái nhìn catalogue 2D, khuyến khích người chơi khám phá các vật phẩm trong môi trường 3D.

Lưu ý rằng một mục phải được thêm qua addItemAsync trước khi một nút gần có thể được gán cho nó.Xem thêm removeProximityButton để xóa lời nhắc cảm biến từ một đối tượng.

Tập lệnh

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

Loại bỏ nút cảm biến gần

xóaProximityButton(adornee: BasePart | Model | Attachment)

Loại bỏ một thông báo cảm biến gần được tạo ra thông qua thêm nút cảm biến gần. Chức năng này chỉ có thể được gọi từ một Script .

Tập lệnh

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
-- Sau một thời gian, xóa lời nhắc
task.wait(5)
MerchBooth.removeProximityButton(item)
end

thiết lậpCatalogSort

setCatalogSort(sortFunction: function ): boolean

Đặt chức năng sắp xếp sortFunction để được sử dụng trong cái nhìn danh mục.Chức năng sắp xếp được cung cấp có thể sử dụng logic dựa trên thông tin Vật phẩm như price hoặc title .Chức năng này chỉ có thể được gọi từ một LocalScript .

Dưới đây là một số ví dụ để sắp xếp danh mục:

Giá Thấp đến Cao

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Giá từ cao đến thấp

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Giá Thấp đến Cao & Theo chữ cái

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)

setControlKeyCodes Đặt mã điều khiển

setControlKeyCommands(control: MerchBooth.Controls , keyCommands: table )

Cài đặt các giá trị phím và nút cho các tương tác với gian hàng thương mại.Tham số đầu tiên phải là một enum MerchBooth.Controls và tham số thứ hai là một bảng chứa các chìa khóa keyboard và/hoặc gamepad với các nút enumerate tương ứng Enum.KeyCode.

Enum ( control )Mặc định keyCodes Chìa khóa/Giá trị
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
Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

openMerchBooth

openMerchBooth()

Mở cửa sổ quầy hàng thương mại (nếu đã đóng) và điều hướng đến cái nhìn catalogue. Chức năng này chỉ có thể được gọi từ một LocalScript .

Tập lệnh địa phương

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()

mởItemView

openItemView(itemId: number )

Chuyển hướng đến cái nhìn đơn lẻ của vật phẩm được cho itemId , mở cửa sổ gian hàng thương mại nếu nó hiện đang đóng.Chức năng này chỉ có thể được gọi từ một LocalScript .

Tập lệnh địa phương

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

toggleCatalogButton

切换目录按钮(启用: boolean )

Bật/tắt nút danh mục ở bên phải màn hình.Điều này hữu ích khi triển khai một nút tùy chỉnh hoặc giới hạn sự xuất hiện của gian hàng thương mại ở khu vực hoặc lời nhắc cảm biến .Chỉ có thể được gọi từ một LocalScript .

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.toggleCatalogButton(false)

isMerchBoothOpen là

isMerchBoothOpen(): Tuple

Trả về true nếu cả danh mục hoặc xem mục được mở.Nếu xem mục được mở, ID tài sản của vật phẩmđược trả lại là giá trị thứ hai.Chức năng này chỉ có thể được gọi từ một LocalScript .

Tập lệnh địa phương

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

đóng gian hàng MerchBooth

đóng gian hàng()

Đóng cửa sổ gian hàng thương mại. Chức năng này chỉ có thể được gọi từ một LocalScript .

Tập lệnh địa phương

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

được bật isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Chức năng này có thể được sử dụng song song với setEnabled để kiểm tra xem quầy bán hàng hiện đang được bật hay không.Chỉ có thể được gọi từ một LocalScript .

bột được kích hoạt

setEnabled(enabled: boolean )

Xác định xem toàn bộ gian hàng thương mại có được bật khởi hay không.Khi bị vô hiệu hóa, chức năng này xóa toàn bộ giao diện người dùng, bao gồm lời nhắc cảm biến và tách tất cả các sự kiện ra khỏi.Chức năng này chỉ có thể được gọi từ một LocalScript .

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
end

Sự kiện

đã thêm mục

Bắt lửa khi một mục được thêm qua addItemAsync. Sự kiện này chỉ có thể được kết nối trong một Script .

Tham số
assetId: numberID tài sản mục.
thông tin vật phẩm: tableTừ điển của Thông tin vật phẩm như price hoặc title .
Tập lệnh

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)

mục đã bị xóa

Nổ khi một vật phẩm bị xóa thông qua removeItem. Sự kiện này chỉ có thể được kết nối trong một Script .

Tham số
assetId: numberID tài sản mục.
Tập lệnh

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)

gian hàng đã mở

Bắt lửa khi cả hồ sơ hoặc chi tiết chi tiết được mở.

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)

gian hàng đã đóng

Bắt lửa khi cả hồ sơ hoặc chi tiết chi tiết bị đóng.

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)

catalogViewOpened đã mở

Bắt lửa khi xem danh mục được mở.

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)

catalogViewClosed đã đóng

Bắt lửa khi xem danh mục được đóng.

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)

itemViewMở

Bắt lửa khi mở chi tiết vật phẩm.

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)

itemViewĐã đóng

Bắt lửa khi chi tiết về mục được đóng.

Tập lệnh địa phương

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)