상점 부스

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

MerchBooth개발자 모듈을 사용하면 아바타 자산을 제공하고, 패스를 판매하고, 개발자 제품을 직접 판매할 수 있습니다. 플레이어는 아이템을 검색하고

모듈 사용

설치

경험에서 MerchBooth 모듈을 사용하려면:

  1. 보기 탭에서 도구 상자를 엽니다. 그리고 크리에이터 스토어 탭을 선택합니다.

    Toolbox toggle button in Studio
  2. 모델 정렬을 선택한 다음 모두 보기 버튼을 클릭하여 범주 에 대한 전체 보기를 클릭하십시오.

  3. 찾아 클릭하십시오 개발자 모듈 타일.

  4. 의류 가판대 모듈을 찾아 클릭하거나 3D 뷰에 드래그 앤 드롭하세요.

  5. In the 탐색기 창에서, the entire MerchBooth 모델을 ServerScriptService 로 이동합니다. 경험을 실행할 때, 모듈은 다양한 서비스에 배포되고 시작하기 시작합니다.

구성

모듈은 대부분의 사용 사례에 대해 작동하도록 미리 구성되지만, 구성 함수를 통해 쉽게 사용자 정의할 수 있습니다. 예를 들어, 더 라이트 테마를 생성하고 카탈로그 뷰의 왼쪽 상단 구역에 있는 기본 필터 버튼을 비활성화하려면:

  1. In StarterPlayerScripts , create a new LocalScript and rename it to ConfigureMerchBooth .

  2. 다음 코드를 새 스크립트에 붙여넣습니다.

    로컬 스크립트 - ConfigureMerchBooth

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

아이템 추가

의류 없는 상점은 무엇입니까? 다음 섹션에서는 아바타 자산, 패스, 및 개발자 제품을 상품 보관대에 추가하는 방법을 설명합니다.

아바타 자산

의류 및 액세서리와 같은 아이템은 아이템 세부 페이지에 있는 아바타 상점에서 자산 ID를 통해 추가해야 합니다.

  1. 서버스크립트 서비스 내에서 Script를 생성하고 다음 코드를 붙여넣습니다.

    스크립트 - 아바타 자산 추가

    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. 아바타 상점의 웹 사이트 URL에서 아이템 자산 ID를 복사합니다. 예를 들어, Roblox 야구 모자의 ID는 607702162입니다.

  3. 각 복사한 ID를 알파벳 순으로 items 테이블 내의 쉼표 구분 목록에 붙여넣습니다. 기본적으로 항목은 카탈로그 뷰에 나타나지만, setCatalogSort 를 사용하여 정렬을 사용자 정의할 수 있습니다.

    스크립트 - 아바타 자산 추가

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Roblox 야구 모자
    4819740796, -- Roblox
    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가 필요합니다.

  1. 서버스크립트 서비스 내에서 Script를 생성하고 다음 코드를 붙여넣습니다.

    스크립트 - 패스 추가

    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. 크리에이터 대시보드로 이동하고 경험을 선택하세요.

  3. In the left column, under 수익 창출 , select 패스 .

  4. 패스용 버튼을 클릭하고 자산 ID 복사를 선택합니다.

  5. Paste each copied ID into a comma-delimited list within the items table and include Enum.InfoType.GamePass as the second parameter for 1> addItemAsync1> to indicate that the items are passes. By default, items will appear in the catalog view in alphabetical order, but sorting can be customized via 4> setCatalogSort

    스크립트 - 패스 추가

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- 콜드파이어 갑옷
    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를 필요로 합니다.

  1. 서버스크립트 서비스 내에서 Script를 생성하고 다음 코드를 붙여넣습니다.

    스크립트 - 개발자 제품 추가

    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. 크리에이터 대시보드로 이동하고 경험을 선택하세요.

  3. In the left column, under 수익 창출 , select 개발자 제품 .

  4. 제품을 클릭하고 자산 ID 복사를 선택하십시오.

  5. items 테이블 내의 쉼표 구분 목록에 각 복사된 ID를 붙여넣으십시오 함께 사용자 지정 된 Enum.InfoType.Product 을 두 번째 매개 변수로 나타냅니다 아이템을 개발자 제품

    스크립트 - 개발자 제품 추가

    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

사용자 지정 카탈로그 버튼

기본적으로 오른쪽 카탈로그 버튼 은 플레이어가 언제든지 부스를 열도록 허용합니다.

In some cases, it may be useful to 이 버튼을 제거하고 자신의 연결을 연결하는 것이 좋습니다.

  1. 버튼을 만들기 위해 버튼 작성 내용에 따라 새 버튼을 생성하십시오.

  2. 버튼 개체의 자식으로 LocalScript 를 생성합니다.

  3. 다음 코드를 새 스크립트에 붙여넣습니다.

    LocalScript - 사용자 지정 카탈로그 버튼

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- 기본 카탈로그 버튼 제거
    MerchBooth.toggleCatalogButton(false)
    -- 사용자 지정 버튼 연결
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

구매 가능한 지역

경험에서 구매를 유도하는 데 도움이 되는 좋은 방법은 플레이어가 영역에 들어갈 때 상품 부스를 자동으로 표시하는 것입니다.

가게 가능한 지역을 만들려면:

  1. 감지 영역을 덮는 Anchored 블록을 생성합니다. 블록이 캐릭터 모델의 PrimaryPart 와 충돌하지 않도록 높이가 충분하게 높이십시오( HumanoidRootPart 기본).

    플레이어가 상점 카운터 앞에 다가왔을 때 감지하려면 블록을 사용하십시오.
  2. 블록의 속성의 태그 섹션 또는 Studio의 태그 편집기 를 사용하여 블록에 태그를 적용하여 ShopRegion 을 블록에 적용하여 2> Class.CollectionService2> 이 감지하도록 합니다.

  3. 파트의 Transparency 를 최대로 설정하여 플레이어가 경험에서 숨길 수 있습니다. 또한 그것의 CanCollideCanQuery 속성을 비활성화하여 개체가 물리적으로 충

  4. StarterPlayerScripts 아래에 새로운 Class.LocalScript 를 삽입합니다.

  5. 새 스크립트에서 TouchedTouchEnded 이벤트를 사용하여 캐릭터가 영역을 입력하거나 떠나면 스튜드 콜백을 감지하고 openMerchBooth 및 1>closeMerchBooth</

    로컬 스크립트

    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.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 환경에서 아이템을 발견하고, 자신의 아바타에서 미리 보고, 구매하고 즉시 장착할 수 있습니다. 자세한 내용은 addProxim

장비 효과 변경

기본적으로 상점 부스는 플레이어가 아이템을 장착할 때 일반적인 반짝이 효과를 표시합니다. 효과를 변경하려면 particleEmitterTemplate 을 자신의 ParticleEmitter 인스턴스에 설정하십시오.

로컬 스크립트 - ConfigureMerchBooth

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

버튼 표시

기본적으로 상점 부스는 모든 ScreenGuisCoreGuis 를 포함하여 채팅, 리더보드및 기타 Roblox 포함 기타 기능을 표시할 때 hideOtherUis 를 숨깁니다.

로컬 스크립트 - ConfigureMerchBooth

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

캐릭터 이동

캐릭터가 상점 부스에 있는 동안 이동을 방지하는 것이 좋습니다. 이 작업은 disableCharacterMovement 에서 true 를 true로 설정하여 수행할 수 있습니다.

로컬 스크립트 - ConfigureMerchBooth

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문자열카탈로그에 표시된 아이템 생성자입니다.
creatorTypeEnum.CreatorType아이템의 크리에이터 유형입니다.

열거

MerchBooth.Controls

setControlKeyCodes와 함께 사용하여 키와 게임 패드 버튼을 사용자 상호 작용 장치에 대해 사용자 정의합니다.

이름요약
ProximityPrompts근접 프롬프트가 구성된 경우 키 및/또는 게임 패드 버튼을 통해 아이템 뷰를 엽니다.
OpenMerchBooth키 및/또는 게임 패드 버튼을 통해 상점 부스를 열 수 있습니다.
CloseMerchBooth키 및/또는 게임 패드 버튼을 통해 상점 부스를 닫습니다.
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
})

함수

구성

구성(구성: table )

Class.LocalScript 테이블의 다음 키/값을 통해 기본 클라이언트 사이드 구성 옵션을 재정의합니다. 이 함수는 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가격 버튼이나 Try On 버튼과 같은 작은 버튼의 배경 색상.[34, 34, 34]
secondaryButtonTextColor가격 버튼이나 Try On 버튼과 같은 작은 버튼의 텍스트 색상.[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,
})

아이템 비동기화 추가

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

쇼핑 경험에서 구매할 수 있도록 아이템을 Asynchronously 추가합니다. assetId 는 아이템의 자산 ID이며, productType 는 아이템의 엔터미 유형 정보 및 캐탈로그 뷰에서 아이템을 숨길 수 있습니다. 및

자산, 게임 패스 또는 개발자 제품과 관련하여 사용이 약간 다르게 변경되지만 세부 내용은 아이템 추가를 참조하십시오.

스크립트 - 아바타 자산 추가

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Roblox 야구 모자
4819740796, -- Roblox
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, -- 콜드파이어 갑옷
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

아이템 가져오기

getItems() : table

현재 등록된 모든 항목을 나타내는 사전을 반환합니다. 각 키는 문자열 형식의 아이템 ID입니다. 각 키의 값은 항목입니다. 이 함수는 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 를 사용하여 이전에 추가된 항목을 등록하지 않으므로 카탈로그 뷰의 타일을 제거하고 할당된 모든 proximity 프롬프트를 제거합니다. 이 함수는 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

근거리 버튼 추가

addProximityButton(adornee: BasePart | Model | Attachment , 자산Id: 1> number1> )

자산 ID 기준으로 항목의 구매 뷰를 표시하도록 지정한 adornee 위에 근접 프롬프트를 추가합니다. 이 프롬프트는 플레이어가 3D 환경에서 아이템을 발견하도록 유도하는 대체 방법으로 2D 카탈로그 뷰를 대체할 수 있습니다.

근접 버튼에 할당할 근접 프롬프트를 제거하려면 근접 아이템 추가 를 통해 아이템을 추가해야 합니다. 또한 근접 버튼을 제거하려면 근접 버튼을 제거하십시오.

스크립트

local ReplicatedStorage = game:GetService("ReplicatedStorage")
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 )

근접 프롬프트를 생성하는 근접 버튼을 제거합니다. 이 함수는 addProximityButton 을 통해서만 호출할 수 있습니다.

스크립트

local ReplicatedStorage = game:GetService("ReplicatedStorage")
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

카탈로그 정렬 설정

setCatalogSort(sortFunction: function>: boolean

카탈로그 뷰에서 사용할 정렬 기능 sortFunction 을 설정합니다. 제공된 정렬 기능은 price 또는 price와 같은 1>아이템1> 정보를 기반으로 논리를 사용할 수 있습니다. 이 함수는 4> Class.LocalScript4> 에

카탈로그를 정렬하는 몇 가지 예:

가격 낮은順

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)

설정ControlKeyCodes

setControlKeyCodes(Control: MerchBooth.Controls, 키코드: table )

상점 부스 인터랙션에 대한 키 및 버튼 값을 구성합니다. 첫 번째 매개 변수는 MerchBooth.Controls 열거형이어야 하고 두 번째 매개 변수는 keyboard 및/또는 gamepad 와 해당 키 코드 열거형 1> Enums.KeyCode1> 을 포함하는

열거형( 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
로컬 스크립트

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

닫힌 상점 부스 창을 엽니다(창이 닫힌 경우) 및 카탈로그 보기로 이동합니다. 이 함수는 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

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

카탈로그 버튼 전환

CatalogButton(활성화: button )

화면 오른쪽의 카탈로그 버튼을 전환합니다. 이 기능은 사용자 정의 버튼을 구현하거나 상점 부스 모양을 지정하는 경우에 유용합니다. 이 기능은 Class.LocalScript 에서만 호출할 수 있습니다.

로컬 스크립트

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

isMerchBoothOpen

isMerchBoothOpen() : Tuple

카탈로그 또는 아이템 보기가 열려 있으면 true 반환합니다. 아이템 보기가 열려 있으면 LocalScript 두 번째 값으로 반환됩니다. 이 함수는 Class.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

닫기MerchBooth

closeMerchBooth()

닫기 상점 부스 창을 닫습니다. 이 함수는 LocalScript 에서만 호출할 수 있습니다.

로컬 스크립트

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

isMerchBoothEnabled

isMerchBoothEnabled() : boolean

이 함수는 setEnabled와 함께 사용하여 상점 부스가 현재 활성화되었는지 여부를 확인할 수 있습니다. 이 함수는 LocalScript에서만 호출할 수 있습니다.

설정 활성화

setEnabled(enabled: boolean )

전체 상점 부스가 활성화되거나 활성화되지 않도록 설정합니다. 비활성화하면 이 기능이 전체 UI를 포함하여 근접 프롬프트 를 포함하여 모든 이벤트를 연결 해제합니다. 이 기능은 Class.LocalScript에서만 호출할 수 있습니다.

로컬 스크립트

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

이벤트

항목이 추가되었습니다

addItemAsync를 통해 항목이 추가될 때 이 이벤트는 Script에만 연결될 수 있습니다.

매개 변수
자산 ID: 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)

아이템 제거

아이템을 제거하기 를 통해 제거할 때 이 이벤트는 연결할 수 있습니다. 이 이벤트는 Script 에만 연결할 수 있습니다.

매개 변수
자산 ID: 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)

merchBoothClosed

카탈로그 또는 아이템 세부 정보 뷰가 닫힌 경우 화재됩니다.

로컬 스크립트

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)