Cabina de Comercio

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El Mercado de Artesaníasmódulo de desarrollador le permite ofrecer arte de avatar, 2>pases2> y 5>Productos del desarrollador5> para la venta directamente dentro de su experiencia. Los jugadores pueden navegar por artículos, ver pre

Uso de módulos

Instalación

Para usar el módulo Cabina de Merchandising en una experiencia:

  1. De la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda del Creador .

    Toolbox toggle button in Studio
  2. Asegúrese de que se seleccione el Modelos clasificación y luego haga clic en el botón Ver Todo para Categorías .

  3. Ubique y haga clic en el mosaico de Modulos de Dev .

  4. Localice el módulo Cabina de merchandías y haga clic en él, o arrástralo y suéltalo en la vista 3D.

  5. En la ventana Explorer, mueva el modelo entero de MerchBooth a ServerScriptService . Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.

Configuración

El módulo está predefinido para trabajar para la mayoría de los casos de uso, pero se puede personalizar fácilmente a través de la función Configurar. Por ejemplo, para crear un tema más ligero y desactivar el botón de filtro predeterminado en la parte superior izquierda de la vista del catálogo:

  1. En StarterPlayerScripts , crea un nuevo LocalScript y renombralo a ConfigurarMercado .

  2. Pega el siguiente código en el nuevo script.

    LocalScript - ConfigurarCabinaComercial

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

Añadir artículos

¿Qué es una cabina de merchandising sin merchandising? Las siguientes secciones explican cómo agregar arte de avatar, pases y Productos del desarrollador a tu cabina de merchandising.

Recursos de Avatar

Se deben agregar elementos como ropa y accesorios a través de su ID de activo locado en la página de detalles del objetoen la Tienda de Avatar .

  1. Cree un Script dentro de ServerScriptService y pegue el siguiente código.

    Script - Añadir recursos de 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. Copia ID de artículo de su sitio web Avatar Shop. Por ejemplo, el ID de Gorra de béisbol de Roblox es 607702162 .

  3. Pega cada ID copiado en una lista de comas dentro de la items tabla. Por defecto, los elementos aparecen en la vista del catálogo en orden alfabético, pero puedes personalizar la clasificación usando establecer el ordenarCatalogo .

    Script - Añadir recursos de avatar

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Gorra de béisbol de Roblox
    4819740796, -- Roblox
    1374269, -- Orejas de Gatito
    11884330, -- Gafas de Nerd
    10476359, -- Sombrero de papel
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Pases

Añadir pases requiere ID de pase que se pueden localizar en el Panel de creación de pases .

  1. Cree un Script dentro de ServerScriptService y pegue el siguiente código.

    Script - Añadir Pases

    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. Navegue al Panel del Creador y seleccione la experiencia.

  3. En la columna de la izquierda, debajo de Monetización, seleccione Pases.

  4. Haga clic en el botón para obtener un pase y seleccione Copiar ID de activo .

  5. Paste cada ID copiado en una lista de comas dentro de la items tabla, y incluir el Encuéntrame.InfoType.GamePass como segundo parámetro para 2>addItemAsync2> para indicar que los elementos son pases. Por defecto, los elementos aparecerán en la vista del catálogo en orden alfabético, pero la clasificación se puede personalizar a través de

    Script - Añadir Pases

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- Armadura de ColdFyre
    28521575, -- Escudo de limo
    }
    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

Productos para desarrolladores

Añadir Productos del desarrollador requiere ID de productos que se pueden encontrar en el Panel de control del creador .

  1. Cree un Script dentro de ServerScriptService y pegue el siguiente código.

    Script - Añadir productos de desarrollador

    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. Navegue al Panel del Creador y seleccione la experiencia.

  3. En la columna de la izquierda, debajo de Monetización, seleccione Productos del desarrollador.

  4. Haga clic en el botón para un producto y seleccione Copiar ID de activo .

  5. Paste cada ID copiado en una lista de comas dentro de la items tabla, y incluir Enum.InfoType.Product como el segundo parámetro para 2> agregarItemAsync2> para indicar que los elementos son productos del desarrollador. Por defecto, los elementos aparecen en la vista del catálogo en orden alfabético, pero puede personalizar la clas

    Script - Añadir productos de desarrollador

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Recarga de Mana
    1257880672, -- Poción de Curación
    }
    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

Botón de catálogo personalizado

Por defecto, un botón de catálogo de la derecha permite a los jugadores abrir el puesto en cualquier momento.

En algunos casos, puede ser útil eliminar este botón y conectar el en posesión:

  1. Crea un nuevo botón como se describe en Botones .

  2. Crea un LocalScript como hijo del objeto de botón.

  3. Pega el siguiente código en el nuevo script.

    LocalScript - Botón de catálogo personalizado

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Elimina el botón de catálogo por defecto
    MerchBooth.toggleCatalogButton(false)
    -- Conectar el botón personalizado
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Regiones Comprables

Una manera útil de impulsar las compras en tu experiencia es mostrar automáticamente la cabina de merchandising cuando un jugador ingresa a un área.

Para crear una región de compras:

  1. Crea un bloque Anchored que abarca la región de detección. Asegúrese de que el bloque sea lo suficientemente alto para colisionar con el PrimaryPart de los modelos de personajes ( HumanoidRootPart por defecto).

    Bloquea para detectar cuando los jugadores se acercan a la parte delantera del mostrador de la tienda
  2. Al usar la sección Etiquetas de las propiedades del bloques, o el Editor de Etiquetas de Studio ', aplica la etiqueta ShopRegion a la bloque para que 1> Class.CollectionService1> lo detecte.

  3. Establece la Transparency de la parte al máximo para ocultarla de los jugadores en la experiencia. También desactiva sus propiedades CanCollide y CanQuery para que los objetos no se colisionen físicamente con él y los rayos no lo detecten.

  4. Inserta un nuevo LocalScript debajo de StarterPlayerScripts .

  5. En el nuevo script, pegue el siguiente código que usa los eventos Touched y TouchEnded para detectar cuando los personajes ingresan/salen de la región y llaman abrir el puesto de venta y 1> cerrar el puesto de venta1> para abrir/cerrar la Interfaz gráfica (o GUI)del

    Script local

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Elimina el botón de catálogo por defecto
    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
    -- Iterar a través de las regiones de tienda existentes
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Detecta cuando las regiones de la tienda no estreamed se fusionan
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Solicitudes de proximidad

Como alternativa a la vista del catálogo 2D, puede agregar proximity prompts sobre los objetos de inicio de experiencia. Esto fomenta a los jugadores a descubrir elementos en el entorno, ambiente3D, previsualizarlos en su propio avatar, comprarlos y equiparlos instantáneamente. Consulte addProximityButton para obtener más información.

Cambiando el Efecto de Equipo

Por defecto, la cabina de merchandising muestra un efecto de chispitas genérico cuando un jugador equipa un artículo de ella. Para cambiar el efecto, establece particleEmitterTemplate a tu propia instancia de un ParticleEmitter en una llamada de Configurar

LocalScript - ConfigurarCabinaComercial

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

Visibilidad de GUI

Por defecto, la cabina de merchandising oculta todos los ScreenGuis y CoreGuis cuando aparece su UI, incluida la chat, la tabla de clasificación y otros incluido por Roblox. Si desea desactivar este comportamiento, configure hideOtherUis para 2> false2> en una llamada

LocalScript - ConfigurarCabinaComercial

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

Carácter de movimiento

Puede ser ventajoso prevenir a un personaje de moverse mientras está en la cabina de merchandising. Esto se puede hacer estableciendo disableCharacterMovement a true en un llamado Configurar.

LocalScript - ConfigurarCabinaComercial

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

Referencia de API

Tipos

Artículo

Los elementos en la tienda de artesanías están representados por un diccionario con los siguientes pares de valores clave. Los elementos se pueden recopilar a través de la función getItems o el evento itemAdded.

ClaveTipoDescripción
assetIdnúmeroID del catálogo del objeto, como se pasó a addItemAsync .
titlecadenaTítulo del artículo como aparece en el catálogo.
pricenúmeroPrecio del artículo en Robux.
descriptioncadenaDescripción del artículo como aparece en el catálogo.
assetTypecadenaCadena que representa el introducirde accesorio del objeto.
isOwnedbooleanoSi el jugador actual posee el objeto.
creatorNamecadenaCreador de artículos como se muestra en el catálogo.
creatorTypeEnum.CreatorTypeTipo de creador para el objeto.

Incrementos

Comprar marcos.Controls

Se usa junto con setControlKeyCodes para personalizar las teclas y los botones del gamepad para interactuar con el puesto de mercancías.

NombreResumen
ProximityPromptsBotón de tecla y/o gamepad para abrir la vista de los elementos cuando se configuran las solicitudes de proximidad.
OpenMerchBoothBotón de tecla y/o botón de gamepad para abrir la cabina de mercancías.
CloseMerchBoothBotón de tecla y/o botón de gamepad para cerrar la cabina de mercancías.
FilterTecla y/o botón de gamepad para usar el pulldown de filtro predeterminado en el área superior izquierda del área de vista del catálogo.
ViewItemBotón de tecla y / o gamepad para abrir una vista de cabina de mercancías específica.
Script local

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

Funciones

configurar

configurar(Config: table )

Anula las opciones de configuración del lado del cliente por defecto a través de las siguientes llaves/valores en la tabla config. Esta función solo se puede llamar desde un LocalScript .

ClaveDescripciónPor defecto
backgroundColorColor principal de fondo de la ventana ( Color3 ).[0, 0, 0]
cornerRadiusRadio de esquina para la ventana principal ( UDim ).(0, 16)
cornerRadiusSmallRadio de esquina para elementos dentro de la ventana ( UDim ).(0, 8)
textFontFuente de "texto principal" como precios, descripciones y otras informaciones generales (Enum.Font).Gotham
textSizeTamaño del texto principal.14
textColorColor del texto principal ( Color3 ).[255, 255, 255]
secondaryTextColorColor utilizado para algunas variaciones del texto principal ( Color3 ).[153, 153, 158]
headerFontFuente del texto de cabecera utilizado para el título de la ventana ( Enum.Font ).GothamMedium
headerTextSizeTamaño del texto de encabezado usado para el título de la ventana.18
titleFontFuente del texto de título usado para nombres de artículos en la página de detalles del artículo ( Enum.Font ).GothamBold
titleTextSizeTamaño del texto de título usado para nombres de artículos en la página de detalles del artículo.28
buttonColorColor de fondo para botones más grandes en un estado de clic, como el botón de compra principal en la vista de artículo ( Color3 ).[255, 255, 255]
buttonTextColorColor de texto para botones más grandes en un estado de clic, como el botón de compra principal en la vista de artículo ( Color3 ).[0, 0, 0]
secondaryButtonColorColor de fondo para botones más pequeños, como los botones de precio en la vista de catálogo o el botón Prueba ( Color3 ).[34, 34, 34]
secondaryButtonTextColorColor de texto para botones más pequeños, como los botones de precio en la vista de catálogo o el botón Prueba ( Color3 ).[255, 255, 255]
inactiveButtonColorColor de fondo para todos los botones en un estado no clicable ( Color3 ).[153, 153, 158]
inactiveButtonTextColorColor de texto para todos los botones en un estado no clicable ( Color3 ).[255, 255, 255]
particleEmitterTemplateInstancia personalizada opcional que aparece y juega en equip.
Script local

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

añadirEventoAsíncrono

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

Agrega asincronamente un artículo a la cabina de artículos para que sea elegible para la compra en la experiencia. assetId es el ID de activo del objeto, productType es el índice de activo del catálogo y Enum.InfoType se puede usar para ocultar el artículo en la vista del catálogo.

Véase Añadir elementos para obtener detalles, ya que el uso varía ligeramente para artefactos en lugar de pases de juego o 1>Productos del desarrollador1> .

Script - Añadir recursos de avatar

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Gorra de béisbol de Roblox
4819740796, -- Roblox
1374269, -- Orejas de Gatito
11884330, -- Gafas de Nerd
10476359, -- Sombrero de papel
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Añadir Pases

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- Armadura de ColdFyre
28521575, -- Escudo de limo
}
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 - Añadir productos de desarrollador

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Recarga de Mana
1257880672, -- Poción de Curación
}
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

obtener artículos

getItems() : table

Regresa un diccionario que representa todos los elementos registrados actualmente. Cada clave es un ID de activo de un objetocomo una cadena, y cada valor de clave es un Artículo. Esta función solo se puede llamar desde un Script .

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

Eliminar

EliminarItem(assetId: number )

Desregistra un elemento anteriormente agregado con addItemAsync , eliminando su azulejo en la vista del catálogo y cualquier próximo aviso de proximidad asignado a él. Esta función solo se puede llamar desde un Script .

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Después de algún tiempo, elimina el objeto
task.wait(5)
MerchBooth.removeItem(4819740796)
end

añadirBotón de proximidad

addProximityButton(adornee: BasePart | Model | Attachment , assetId: 1> number1> )

Agrega un 提示 de proximidad sobre el adornee que se mostrará la vista de un objetode compras, dado su ID de activo. Esto se puede usar como alternativa a la vista del catálogo 2D, alentando a los jugadores a descubrir artículos en el entorno, ambiente3D.

Nota que un elemento debe ser agregado a través de agregarItemAsync antes de que se pueda asignar un botón de proximidad. Vea también eliminarProximityButton para eliminar el mensaje de proximidad de un objeto.

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 item = workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
end

EliminarBotón de proximidad

EliminarProximityButton(adornee: BasePart | Model | Attachment )

Elimina un <a href="/resources/modules/https:/developer.microsoft.com/en-us/microsoft-edge/microsoft-edge- proximity-prompt">提示 de proximidad</a> generado a través de <a href="/resources/modules/https:/developer.microsoft.com/en-us/microsoft-edge/microsoft-edge- proximity-prompt">añadirProximityButton</a>. Esta función solo se puede llamar desde un <a href="/resources/modules/https:/developer.microsoft.com/en-us/microsoft-edge/microsoft-edge- próximity-prompt">Class.Script</a> .

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 item = workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- Después de algún tiempo, elimina la solicitud
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction: function>: boolean

Establece la función de clasificación sortFunction para usar en la vista del catálogo. La función de clasificación proporcionada puede usar lógica basada en información de Artículo como price o 1> title1> . Esta función solo se puede llamar desde un 4> Class.LocalScript4> .

Aquí hay algunos ejemplos para ordenar el catálogo:

Precio de bajo a alto

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Precio de alto a bajo

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Precio de bajo a alto y alfabético

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)

Establecer claves de control

setControlKeyCodes(Control: Cabina de merchandías.Controls, claves: table )

Configura los valores de la llave y el botón para las interacciones con la cabina de merchandising. El primer parámetro debe ser un MerchBooth.Controls枚 y el segundo parámetro es una tabla que contiene las llaves keyboard y/o gamepad con los correspondientes 1> Enums.KeyCode1> enums.

Enum ( control )Por defecto keyCodes Claves/Valores
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
Script local

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

Abrir puesto de mercancías

abrirCabinaComercial()

Abre la ventana de la cabina de mercancías (si está cerrada) y navega a la vista del catálogo. Esta función solo se puede llamar desde un LocalScript .

Script local

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

Abrir vista

openItemView(itemId: number )

Navega a la vista de un solo elemento del itemId, abriendo la ventana de la cabina de mercancías si está actualmente cerrada. Esta función solo se puede llamar desde un LocalScript .

Script local

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(habilitado: boolean )

Alterna el botón de catálogo en el lado derecho de la pantalla. Esto es útil cuando se implementa un botón personalizado o se limita la apariencia de la cabina de merchandising a regiones o proximity prompts. Solo se puede llamar desde un Class.LocalScript .

Script local

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

isMerchBoothOpen

isMerchBoothOpen() : Tuple

Regresa true si el catálogo o la vista del artículo está abierto. Si la vista del artículo está abierta, se devuelve el ID de la propiedad del objetocomo el segundo valor. Esta función solo se puede llamar desde un LocalScript .

Script local

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

cerrarCabinaComercial

cerrarMesa de Comercio()

Cierra la ventana de la cabina de mercancías. Esta función solo se puede llamar desde un LocalScript .

Script local

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

isMerchBoothHabilitado

isMerchBoothEnabled() boolean

Esta función se puede utilizar en conjunción con setEnabled para verificar si la cabina de merchandising está actualmente habilitada o no. Solo se puede llamar desde un LocalScript .

setHabilitado

setEnabled(habilitado: boolean )

Establece si el espacio de exhibición entero está habilitado o no. Cuando está deshabilitado, esta función elimina el espacio de UI, incluida la proximidad prompts y desconecta todos los eventos. Esta función solo se puede llamar desde un LocalScript .

Script local

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

Eventos

artículoAñadido

Se activa cuando se agrega un artículo a través de addItemAsync . Este evento solo se puede conectar en un Script .

Parámetros
assetId: numberID de activo de artículo.
itemInfo: tableDiccionario de Artículo información como price o title .
Script

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)

artículoEliminado

Se activa cuando se elimina un elemento a través de eliminar elemento . Este evento solo se puede conectar en un Script .

Parámetros
assetId: numberID de activo de artículo.
Script

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)

merchBoothAbierto

Se activa cuando se abre la vista de detalle del catálogo o

Script local

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

merchBoothCerrado

Se activa cuando se cierra la vista de detalle del catálogo o

Script local

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

catálogoVisto

Dispara cuando se abre la vista del catálogo.

Script local

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

catálogoVistoCerrado

Se activa cuando se cierra la vista del catálogo.

Script local

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

itemViewObtenido

Se activa cuando se abre la vista de detalle del artículo.

Script local

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

itemViewCerrado

Se activa cuando se cierra la vista de detalle del artículo.

Script local

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