Puesto de mercancías

*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 módulo desarrollador de MerchBooth te permite ofrecer recursos de avatar , pases y productos para desarrolladores para la venta directamente dentro de tu experiencia.Los jugadores pueden navegar por los artículos, previsualizar recursos en su propio avatar, comprar artículos y utilizarlos instantáneamente o equiparlos sin salir de su experiencia.Esto puede ayudarlo a monetizar su experiencia y obtener ingresos a través de la tarifa de afiliado del 40% asociada con la venta de artículos de otros creadores.

Uso de módulo

Instalación

Para usar el módulo MerchBooth en una experiencia:

  1. Desde la pestaña Ver, abra la Caja de herramientas y seleccione la pestaña Tienda de creadores .

    Toolbox toggle button in Studio
  2. Asegúrese de que la clasificación de modelos esté seleccionada, luego haga clic en el botón Ver todo para categorías .

  3. Localiza y haz clic en el mosaico Módulos de desarrollo .

  4. Localiza el módulo Puesto de mercancías y haz clic en él, o arrastra y suelta en la vista 3D.

  5. En la ventana Explorador, mueva todo el modelo MerchBooth al servicio ServerScriptService .Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a funcionar.

Configuración

El módulo está preconfigurado para trabajar en 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 predeterminado Filtro en la parte superior izquierda de la vista del catálogo:

  1. En StarterPlayerScripts , crea un nuevo LocalScript y renómlalo a Configurar puesto de mercancías .

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

    LocalScript - Configurar el puesto de mercancías

    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 un puesto de merchandising sin merchandising? Las siguientes secciones explican cómo agregar activos de avatar, pases y productos de desarrollador a tu puesto de merchandising.

Recursos de avatar

Los artículos como ropa y accesorios deben ser agregados a través de su ID de activo ubicado en la página de detalles del objetoen la Tienda de Avatar.

  1. Crea un Script dentro de ServerScriptService y pega 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 las ID de activos de artículos de su URL del sitio web Tienda de avatares. Por ejemplo, la ID de gorra de béisbol de Roblox es 607702162 .

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

    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, -- Robofox
    1374269, -- Orejas de gato
    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 puede localizar en el tablero de administrador de creadores.

  1. Crea un Script dentro de ServerScriptService y pega 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 hasta el tablero de control del creador y seleccione la experiencia.

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

  4. Pase el cursor sobre una miniatura de pase, haga clic en el botón y seleccione Copiar ID de activo en el menú contextual.

  5. Pega cada ID copiado en una lista delimitada por comas dentro de la tabla items y **** incluye Enum.InfoType.GamePass como el segundo parámetro para addItemAsync 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 setCatalogSort.

    Script - Añadir pases

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- Armadura de fuego frío
    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 de desarrollador requiere ID de producto que se pueden localizar en el Tablero de Creator.

  1. Crea un Script dentro de ServerScriptService y pega 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 hasta el tablero de control del creador y seleccione la experiencia.

  3. En la columna de la izquierda, debajo de Monetización , seleccione Productos para desarrolladores .

  4. Pase el cursor sobre la miniatura de un producto, haga clic en el botón y seleccione Copiar ID de activo del menú contextual.

  5. Pega cada ID copiado en una lista delimitada por comas dentro de la tabla items y **** incluye Enum.InfoType.Product como el segundo parámetro para addItemAsync para indicar que los artículos son productos de desarrollador.Por defecto, los elementos aparecen en la vista del catálogo en orden alfabético, pero puedes personalizar la clasificación usando setCatalogSort.

    Script - Añadir productos de desarrollador

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Recarga de maná
    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 la cabina en cualquier momento .

En algunos casos, puede ser útil eliminar este botón y conectar el tuyo 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"))
    -- Eliminar el botón de catálogo predeterminado
    MerchBooth.toggleCatalogButton(false)
    -- Conecta el botón personalizado
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Regiones comerciables

Una manera útil de impulsar las compras en tu experiencia es mostrar automáticamente el puesto de merchandising cuando un jugador ingresa a una zona.

Para crear una región comprable:

  1. Crea un bloque Anchored que abarque la región de detección.Asegúrate de que el bloque sea lo suficientemente alto como para chocar con el PrimaryPart de modelos de personajes ( HumanoidRootPart por defecto).

    Bloque para detectar cuando los jugadores se acercan a la parte delantera del mostrador de la tienda
  2. Usando la sección Etiquetas de las propiedades del bloqueso el editor de etiquetas de Studio, aplique la etiqueta al bloque para que lo detecte.

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

  4. Inserta un nuevo LocalScript debajo de StarterPlayerScripts .

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

    Guión local

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Eliminar el botón de catálogo predeterminado
    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 regiones etiquetadas existentes
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Detecta cuando las regiones de la tienda sin transmitir fluyen
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Indicaciones de proximidad

Como alternativa a la vista del catálogo de 2D, puedes agregar instrucciones de proximidad sobre objetos en experiencia.Esto anima a los jugadores a descubrir artículos en el entorno, ambiente3D, probarlos en su propio avatar, comprarlos y equiparlos al instante.Vea addProximityButton para detalles.

Cambiar el efecto de equipamiento

Por defecto, el puesto de mercancías muestra un efecto de brillo genérico cuando un jugador equipa un artículo de él.Para cambiar el efecto, establece particleEmitterTemplate a tu propia instancia de un ParticleEmitter en una llamada configurar.

LocalScript - Configurar el puesto de mercancías

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 la GUI

Por defecto, el puesto de merchandising oculta todos los ScreenGuis y CoreGuis cuando aparece su interfaz de usuario, incluido el chat, la tabla de clasificación y otros incluidos por Roblox.Si desea deshabilitar este comportamiento, establezca hideOtherUis a false en una llamada configurar .

LocalScript - Configurar el puesto de mercancías

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

Movimiento de caracteres

Puede ser ventajoso evitar que un personaje se mueva mientras está en la cabina de mercancías.Esto se puede hacer al establecer disableCharacterMovement a true en una llamada configurar.

LocalScript - Configurar el puesto de mercancías

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

Referencia de API

Tipos

Artículo

Los artículos en la cabina de mercancías se representan con un diccionario con los siguientes pares de clave-valor.Los elementos se pueden recopilar a través de la función getItems o del 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.
assetTypecadenaTexto que representa el introducirde accesorio del objeto.
isOwnedboolSi el jugador actual posee el objeto.
creatorNamecadenaCreador de artículos como se muestra en el catálogo.
creatorTypeEnum.CreatorTypeTipo de creador para el objeto.

Enumeraciones

MerchBooth.Controls

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

NombreResumen
ProximityPromptsTecla y/o botón del gamepad para abrir la vista del artículo cuando se configuran los avisos de proximidad de.
OpenMerchBoothTecla y/o botón del gamepad para abrir el puesto de merchandising.
CloseMerchBoothTecla y/o botón del gamepad para cerrar el puesto de merchandising.
FilterTecla y/o botón de gamepad para usar el filtro predeterminado Filtro en la parte superior izquierda del área de vista del catálogo.
ViewItemTecla y/o botón del gamepad para abrir una vista de elemento de puesto de mercancías específica.
Guión 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 predeterminadas del lado del cliente a través de las siguientes claves/valores en la tabla config.Esta función solo se puede llamar desde un LocalScript .

ClaveDescripciónPor defecto
backgroundColorColor de fondo principal 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 otra información general (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 del encabezado utilizado para el título de la ventana ( Enum.Font ).GothamMedium
headerTextSizeTamaño del texto del encabezado utilizado para el título de la ventana.18
titleFontFuente del texto del título utilizado para los nombres de los artículos en la página de detalles del artículo (Enum.Font).GothamBold
titleTextSizeTamaño del texto del título utilizado para los nombres de los artículos en la página de detalles del artículo.28
buttonColorColor de fondo para botones más grandes en un estado clicable, como el botón de compra principal en la vista del artículo ( Color3 ).[255, 255, 255]
buttonTextColorColor de texto para botones más grandes en un estado clicable, como el botón de compra principal en la vista del 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 haga clic ( Color3 ).[153, 153, 158]
inactiveButtonTextColorColor de texto para todos los botones en un estado no haga clic ( Color3 ).[255, 255, 255]
particleEmitterTemplateInstancia personalizada opcional ParticleEmitter que aparece y juega en equip.
Guión 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ñadirItemAsync

addItemAsync(assetId: number , tipo de producto: Enum.InfoType , ocultar del catálogo: boolean)

Agrega de forma asincrónica un artículo a la cabina de mercancías para que sea elegible para la compra en la experiencia. assetId es el ID de activo del objeto, productType es el enumerador del objetoEnum.InfoType y hideFromCatalog se puede usar para ocultar el artículo en la vista del catálogo.

Vea Añadir artículos para detalles, ya que el uso varía ligeramente para activos versus pases de juego o productos de desarrollador .

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, -- Robofox
1374269, -- Orejas de gato
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 fuego frío
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 maná
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

Devuelve un diccionario que representa todos los artículos registrados actualmente.Cada clave es un ID de activo de objetocomo cadena, y el valor de cada clave es un elemento.Esta función solo se puede llamar desde un Script .

Guión

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

quitar elemento

removingItem(assetId: number )

Desregistra un artículo previamente agregado con addItemAsync, eliminando su azulejo en la vista del catálogo y cualquier solicitud de proximidad asignada a él.Esta función solo se puede llamar desde un Script .

Guión

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 un tiempo, elimina el objeto
task.wait(5)
MerchBooth.removeItem(4819740796)
end

añadirProximidadButton

addProximityButton(adornee: BasePart | Model | Attachment , assetId: number )

Añade un aviso de proximidad sobre el dado adornee que desencadenará la visualización de la vista de compra de un objeto, dada su ID de activo.Esto se puede utilizar como alternativa a la vista del catálogo de 2D, alentando a los jugadores a descubrir artículos en el entorno, ambiente3D.

Tenga en cuenta que un artículo debe ser agregado a través de addItemAsync antes de que se pueda asignar un botón de proximidad a él.Vea también eliminar el botón de proximidad para eliminar la solicitud de proximidad de un objeto.

Guión

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

quitarBotón de proximidad

eliminarProximityButton(adornee: BasePart | Model | Attachment )

Elimina un aviso de proximidad generado a través de addProximityButton . Esta función solo se puede llamar desde un Script .

Guión

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
-- Después de un tiempo, elimine la solicitud
task.wait(5)
MerchBooth.removeProximityButton(item)
end

establecerCatalogSort

setCatalogSort(función de clasificación: 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 la información de Artículo como price o title .Esta función solo se puede llamar desde un LocalScript .

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 control de claves de código

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

Configura los valores de clave y botón para las interacciones con el puesto de mercancías.El primer parámetro debe ser un enumerado MerchBooth.Controls y el segundo parámetro una tabla que contenga las claves keyboard y/o gamepad con los correspondientes enumerados Enum.KeyCode.

Enum ( control )Por defecto keyCodes Llaves/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
Guión 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,
})

abrirMerchBooth

openMerchBooth()

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

Guión 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()

viewItemOpen de abierto

openItemView(itemId: number )

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

Guión 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

habilitarBotónCatálogo(habilitado: boolean )

Alterna el botón de catálogo en el lado derecho de la pantalla.Esto es útil al implementar un botón personalizado o limitar la apariencia del puesto de mercancías a regiones o instrucciones de proximidad.Solo se puede llamar desde un LocalScript .

Guión local

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

estáMerchBoothOpen

isMerchBoothOpen(): Tuple

Devuelve true si está abierto el catálogo o la vista de elementos.Si la vista de elemento está abierta, el ID del objetose devuelve como segundo valor.Esta función solo se puede llamar desde un LocalScript .

Guión 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

cerrarMerchBooth

cerrarBooth de comercio()

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

Guión local

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

está habilitado isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Esta función se puede usar en conjunto con setEnabled para verificar si el puesto de mercancías está actualmente habilitado o no.Solo se puede llamar desde un LocalScript .

establecerEnabled

setEnabled(habilitado: boolean )

Establece si todo el puesto de mercancías está habilitado o no.Cuando está deshabilitada, esta función elimina toda la interfaz de usuario, incluido los avisos de proximidad , y desconecta todos los eventos .Esta función solo se puede llamar desde un LocalScript .

Guión 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 incendia 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 información del artículo tal como price o title .
Guión

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ículoRemovido

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

Parámetros
assetId: numberID de activo de artículo.
Guión

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 enciende cuando se abre el detalle del elemento del catálogo o .

Guión local

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

merchBoothCerrado

Se enciende cuando se cierra el detalle del elemento del catálogo o .

Guión local

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

catálogoViewOpened

Se enciende cuando se abre la vista del catálogo.

Guión local

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

catálogoViewClosed

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

Guión local

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

itemViewAbierto

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

Guión local

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

itemViewCerrado

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

Guión local

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