El módulo para desarrolladores de Stand de productos te permite poner a la venta recursos de avatares, pases y productos de desarrollo directamente dentro de tu experiencia. Los jugadores pueden examinar los objetos, previsualizarlos en su propio avatar, comprarlos y usarlos o equiparlos al instante, todo ello sin salir de tu experiencia. Esto puede ayudarte a monetizar tu experiencia y obtener ingresos a través de la comisión de afiliación del 40 % asociada a la venta de los objetos de otros creadores.
Uso del módulo
Instalación
Sigue estos pasos para usar el módulo Stand de productos en una experiencia:
En la pestaña Ver, abre la Caja de herramientas y selecciona la pestaña Mercado.
Asegúrate de que la clasificación de Modelos esté seleccionada y, a continuación, haz clic en el botón Ver todo para las Categorías.
Busca y haz clic en el mosaico MÓDULOS DE DESARROLLO.
Busca el módulo Stand de productos y haz clic en él o arrástralo y suéltalo en la vista 3D.
En la ventana del Explorador, mueve todo el modelo de MerchBooth a ServerScriptService. Al ejecutar la experiencia, el módulo se distribuirá a varios servicios y comenzará a ejecutarse.
Configuración
El módulo está preconfigurado para funcionar en la mayoría de los casos de uso, pero puede personalizarse fácilmente mediante la función de configuración. Por ejemplo, para crear un tema más claro y desactivar el botón predeterminado Filtro en el área superior izquierda de la vista de catálogo:
En StarterPlayerScripts, crea un nuevo LocalScript y cámbiale el nombre a ConfigureMerchBooth.
Pega el siguiente código en el script nuevo.
LocalScript - ConfigureMerchBoothlocal 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 objetos
¿Qué es un stand de productos sin productos? Las siguientes secciones describen cómo añadir recursos de avatares, pases y productos de desarrollo a tu stand de productos.
Recursos de los avatares
Los objetos como la ropa y los accesorios deben añadirse a través de su identificación de recurso ubicada en la página de detalles del artículo en la Tienda de avatares.
Crea un Script dentro de ServerScriptService y pégalo en el siguiente código.
Script - Add Avatar Assetslocal ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endendCopia los identificadores de los recursos de los objetos de la URL del sitio web de la Tienda de avatares. Por ejemplo, la identificación de la Gorra de Béisbol de Roblox es 607702162.
Pega cada identificación copiada en una lista delimitada por comas dentro de la tabla items. De forma predeterminada, los objetos aparecen en la vista del catálogo en orden alfabético, pero puedes personalizar la clasificación con setCatalogSort.
Script - Add Avatar Assetslocal ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {607702162, -- Roblox Baseball Cap4819740796, -- Robox1374269, -- Kitty Ears11884330, -- Nerd Glasses10476359, -- Paper Hat}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endend
Pases
Para añadir pases se necesitan ID de pase que puedes encontrar en el Interfaz de creación.
Crea un Script dentro de ServerScriptService y pégalo en el siguiente código.
Script - Add Passeslocal ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endendVe a la Interfaz de creación y selecciona la experiencia.
En la columna de la izquierda, haz clic en Objetos asociados y luego selecciona PASES.
Haz clic derecho en un pase y selecciona Copiar identificación del recurso.
e incluye Enum.InfoType.GamePass como segundo parámetro para addItemAsync para indicar que los objetos son pases. De forma predeterminada, los objetos aparecerán en la vista del catálogo en orden alfabético, pero la clasificación podrá personalizarse mediante setCatalogSort.
Script - Add Passeslocal ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {4343758, -- ColdFyre Armor28521575, -- Slime Shield}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum. InfoType.GamePass)end)if not success thenprint(errorMessage)endend
Productos de desarrollo
Para añadir productos de desarrollo, se requieren identificadores de productos, que se pueden encontrar en la Interfaz de creación.
Crea un Script dentro de ServerScriptService y pégalo en el siguiente código.
Script - Add Developer Productslocal ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endendVe a la Interfaz de creación y selecciona la experiencia.
En la columna de la izquierda, haz clic en Objetos asociados, luego selecciona PRODUCTOS DE DESARROLLO.
Haz clic derecho en un producto y selecciona Copiar identificación del recurso.
e incluye Enum.InfoType.Product como segundo parámetro para addItemAsync para indicar que los objetos son productos de desarrollo. De forma predeterminada, los objetos aparecen en la vista del catálogo en orden alfabético, pero puedes personalizar la clasificación con setCatalogSort.
Script - Add Developer Productslocal ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {1236602053, -- Mana Refill1257880672, -- Healing Potion}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum. InfoType.Product)end)if not success thenprint(errorMessage)endend
Botón de catálogo personalizado
De forma predeterminada, un botón del catálogo del lado derecho permite a los usuarios abrir el stand en cualquier momento.
En algunos casos, puede ser útil eliminar este botón y conectar el tuyo:
Crea un nuevo botón como se describe en Botones e introducción de texto.
Crea un LocalScript como hijo del objeto botón.
Pega el siguiente código en el script nuevo.
LocalScript - Custom Catalog Buttonlocal ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Remove the default catalog buttonMerchBooth.toggleCatalogButton(false)-- Connect the custom buttonscript. Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
Regiones comprables
Una forma útil de impulsar las compras en tu experiencia es mostrar automáticamente el stand de productos cuando un usuario entra en un área.
Sigue estos pasos para crear una región comprable:
Crea un bloque Anchored que abarque la región de detección.
Mediante el Editor de etiquetas, accesible desde la pestaña Ver, aplica la etiqueta ShopRegion al bloque para que CollectionService la detecte.
Desactiva las propiedades CanCollide y CanQuery de la parte para que los objetos no colisionen físicamente con ella y las emisiones de rayos no la detecten. Establece también su Transparency al máximo para ocultarla a los usuarios en la experiencia.
Inserta un nuevo LocalScript en StarterPlayerScripts.
En el nuevo script, pega el siguiente código que usa los eventos Touched y TouchEnded para detectar cuando los usuarios entran o salen de la región y llaman a openMerchBooth y closeMerchBooth para abrir o cerrar la GUI del stand.
LocalScriptlocal Players = game: GetService("Players")local ReplicatedStorage = game: GetService("ReplicatedStorage")local CollectionService = game: GetService("CollectionService")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Remove the default catalog buttonMerchBooth.toggleCatalogButton(false)-- Iterate through all tagged partsfor _, region in ipairs(CollectionService:GetTagged("ShopRegion")) doregion. Touched:Connect(function(otherPart)local character = Players. LocalPlayer.Characterif character and character:FindFirstChild("HumanoidRootPart") == otherPart thenMerchBooth.openMerchBooth()endend)region. TouchEnded:Connect(function(otherPart)local character = Players. LocalPlayer.Characterif character and character:FindFirstChild("HumanoidRootPart") == otherPart thenMerchBooth.closeMerchBooth()endend)end
Avisos de proximidad
Como alternativa a la vista del catálogo en 2D, puedes añadir indicadores de proximidad sobre los objetos de la experiencia. Esto anima a los usuarios a descubrir objetos en el entorno 3D, previsualizarlos en su propio avatar, comprarlos y equiparlos al instante. Consulta addProximityButton para obtener más información.
Cambiar el efecto de equipo
De forma predeterminada, el stand de productos muestra un efecto de chispa genérico cuando un usuario equipa un objeto de él. Para cambiar el efecto, establece particleEmitterTemplate en tu propia instancia de un ParticleEmitter en una llamada de configuración.
LocalScript - 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.SpheremyParticleEmitter. Transparency = NumberSequence.new(0, 1)myParticleEmitter. RotSpeed = NumberRange.new(200, 200)MerchBooth.configure({particleEmitterTemplate = myParticleEmitter})
Visibilidad de la GUI
De forma predeterminada, el stand de productos oculta todo ScreenGuis y CoreGuis cuando aparece su interfaz de usuario, incluido el chat, la clasificación y otros incluidos por Roblox. Si deseas desactivar este comportamiento, establece hideOtherUis en false en una llamada de configuración.
LocalScript - ConfigureMerchBooth
local ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({hideOtherUis = false})
Movimiento del personaje
Puede ser ventajoso evitar que un personaje se mueva mientras está en el stand de productos. Esto puede hacerse estableciendo disableCharacterMovement a true en una llamada de configuración.
LocalScript - ConfigureMerchBooth
local ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({disableCharacterMovement = true})
Referencia API
Tipos
Objeto
Los objetos en el stand de productos se representan mediante un diccionario con los siguientes pares clave-valor. Los objetos se pueden reunir a través de la función getItems o el evento itemAdded.
Clave | Tipo | Descripción |
---|---|---|
assetId | number | Identificación del catálogo del objeto, como se pasó a addItemAsync. |
title | string | El título del objeto tal y como aparece en el catálogo. |
price | number | Precio del objeto en Robux. |
description | string | Descripción del objeto tal como aparece en el catálogo. |
assetType | string | Cadena que representa el tipo de accesorio del objeto. |
isOwned | bool | Si el usuario actual posee el objeto. |
creatorName | string | Creador de objetos, como se muestra en el catálogo. |
creatorType | Enum.CreatorType | Tipo de creador para el objeto. |
Enumeraciones
MerchBooth.Controls
Se usa junto con setControlKeyCodes para personalizar las teclas y los botones del controlador para juego para interactuar con el stand de productos.
Nombre | Resumen |
---|---|
ProximityPrompts | Tecla o botón del controlador para juego para abrir la vista del objeto cuando están configurados los indicadores de proximidad. |
OpenMerchBooth | Tecla o botón del controlador para juego para abrir el stand de productos. |
CloseMerchBooth | Tecla o botón del controlador para cerrar el stand de productos. |
Filter | Tecla o botón del controlador para juego para usar el menú desplegable predeterminado Filtro en el área superior izquierda de la vista del catálogo. |
ViewItem | Tecla o botón del controlador para juego para abrir la vista de un objeto del stand de productos específicos. |
LocalScript
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
configure
configure(config:table)
Invalida la configuración predeterminada del lado del cliente mediante los siguientes claves/valores de la tabla config. A esta función solo se puede acceder desde un LocalScript.
Apariencia
Clave | Descripción | Default |
---|---|---|
backgroundColor | Color de fondo principal de la ventana (Color3). | [0, 0, 0] |
cornerRadius | Radio de la esquina para la ventana principal (UDim). | (0, 16) |
cornerRadiusSmall | Radio de la esquina para los elementos dentro de la ventana (UDim). | (0, 8) |
textFont | Fuente del "texto principal", como precios, descripciones y otra información general (Enum.Font). | Gotham |
textSize | Tamaño del texto principal. | 14 |
textColor | Color del texto principal (Color3). | [255, 255, 255] |
secondaryTextColor | Color utilizado para algunas variaciones del texto principal (Color3). | [153, 153, 158] |
headerFont | Fuente del texto del encabezado utilizado para el título de la ventana (Enum.Font). | GothamMedium |
headerTextSize | Tamaño del texto del encabezado utilizado para el título de la ventana. | 18 |
titleFont | Fuente del texto del título utilizado para los nombres de los objetos en la página de detalles del objeto (Enum.Font). | GothamBold |
titleTextSize | Tamaño del texto del título utilizado para los nombres de los objetos en la página de detalles del objeto. | 28 |
buttonColor | Color de fondo para los botones más grandes en un estado clicable, como el botón de compra principal en la vista del objeto (Color3). | [255, 255, 255] |
buttonTextColor | Color del texto para los botones más grandes en un estado clicable, como el botón de compra principal en la vista del objeto (Color3). | [0, 0, 0] |
secondaryButtonColor | Color de fondo para los botones más pequeños, como los botones de precio en la vista del catálogo o el botón **Probar ** (Color3). | [34, 34, 34] |
secondaryButtonTextColor | Color del texto para los botones más pequeños, como los botones de precio en la vista del catálogo o el botón **Probar ** (Color3). | [255, 255, 255] |
inactiveButtonColor | Color de fondo para todos los botones en un estado no clicable (Color3). | [153, 153, 158] |
inactiveButtonTextColor | Color del texto para todos los botones en un estado no clicable (Color3). | [255, 255, 255] |
particleEmitterTemplate | Instancia personalizada ParticleEmitter opcional que aparece y se juega al equipar. |
Avisos de proximidad
Clave | Descripción | Default |
---|---|---|
proximityButtonActivationDistance | Distancia máxima a la que el personaje de un jugador puede estar del indicador adornado para que este aparezca. | 10 |
proximityButtonExclusivity | Enum.ProximityPromptExclusivity especificando qué indicadores se pueden mostrar al mismo tiempo. | OnePerButton |
proximityButtonOffset | Desplazamiento de píxeles aplicado a la interfaz de usuario del indicador (Vector2). | (0, 0) |
proximityButtonPulseCount | ¿Cuántos "pulsos" se producen alrededor de los botones de proximidad antes de detenerse? | 3 |
Comportamiento
Clave | Descripción | Default |
---|---|---|
useFilters | Activa o desactiva el botón Filtro que se muestra en el catálogo. | true |
disableCharacterMovement | Si es true, evita que el personaje se mueva mientras el stand de productos está abierto. | false |
hideOtherUis | Si es true, el stand de productos oculta todo ScreenGuis y CoreGuis cuando aparece su interfaz de usuario. | true |
closeWhenFarFromPrompt | Si es true y si el jugador abrió una vista de objeto a través de un indicador de proximidad, el stand de productos se cerrará automáticamente cuando el jugador se aleje del indicador más que su distancia de activación. | true |
LocalScript
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
addItemAsync(assetId:number, productType:Enum.InfoType, hideFromCatalog:boolean)
Añade de forma asíncrona un objeto al stand de productos para que pueda comprarse en la experiencia. assetId es la identificación del recurso del objeto, productType es la enumeración del objeto Enum.InfoType y hideFromCatalog se puede usar para ocultar el objeto en la vista del catálogo.
Consulta Añadir objetos para obtener más información, ya que el uso varía ligeramente para los recursos frente a los pases del juego o los productos de desarrollo.
Script - Add Avatar Assets
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Roblox Baseball Cap
4819740796, -- Robox
1374269, -- Kitty Ears
11884330, -- Nerd Glasses
10476359, -- Paper Hat
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
print(errorMessage)
end
end
Script - Add Passes
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- ColdFyre Armor
28521575, -- Slime Shield
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum. InfoType.GamePass)
end)
if not success then
print(errorMessage)
end
end
Script - Add Developer Products
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Mana Refill
1257880672, -- Healing Potion
}
for _, assetId in ipairs(items) do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum. InfoType.Product)
end)
if not success then
print(errorMessage)
end
end
getItems
getItems():table
Devuelve un diccionario que representa todos los objetos registrados actualmente. Cada clave es la identificación del recurso de un objeto en forma de cadena y el valor de cada clave es un Objeto. A esta función solo se puede acceder 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
removeItem
removeItem(assetId:number)
Anula el registro de un objeto añadido anteriormente con addItemAsync, eliminando su mosaico en la vista del catálogo y cualquier indicador de proximidad que se le haya asignado. Esta función solo se puede acceder 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
-- After some time, remove the item
task.wait(5)
MerchBooth.removeItem(4819740796)
end
addProximityButton
addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)
Añade un indicador de proximidad sobre el proporcionado adornee que activará la visualización de la vista de compra de un objeto, dada su identificación del recurso. Esto se puede usar como una alternativa a la vista del catálogo en 2D, animando a los usuarios a descubrir objetos en el entorno 3D.
Ten en cuenta que un objeto se debe añadir a través de addItemAsync antes de que se le pueda asignar un botón de proximidad. Consulta también removeProximityButton para eliminar el indicador 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
removeProximityButton
removeProximityButton(adornee: BasePart|Model|Attachment)
Elimina un indicador de proximidad generado a través de addProximityButton. A esta función solo se puede acceder 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 item = workspace: FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- After some time, remove the prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end
setCatalogSort
setCatalogSort(sortFunction:function):boolean
Establece la función de clasificación sortFunction que se usará en la vista del catálogo. La función de clasificación proporcionada puede usar la lógica en función de la información del objeto, como price o title. A esta función solo se puede acceder desde un LocalScript.
A continuación se muestran algunos ejemplos para clasificar el catálogo:
Price Low-to-High
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Price High-to-Low
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Price Low-to-High & Alphabetical
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
setControlKeyCodes(control:MerchBooth.Controls, keyCodes:table)
Configura los valores de las teclas y botones para las interacciones con el stand de productos. El primer parámetro debe ser una enumeración MerchBooth.Controls y el segundo parámetro una tabla que contenga las claves keyboard y/o gamepad con las Enum.KeyCode enumaraciones correspondientes.
Enumeración (control) | Claves/valores keyCodes predeterminados |
---|---|
MerchBooth.Controls.ProximityPrompts | keyboard = Enum. KeyCode.E gamepad = Enum. KeyCode.ButtonY |
MerchBooth.Controls.OpenMerchBooth | gamepad = Enum. KeyCode.ButtonY |
MerchBooth.Controls.CloseMerchBooth | gamepad = Enum. KeyCode.ButtonB |
MerchBooth.Controls.Filter | gamepad = Enum. KeyCode.ButtonX |
MerchBooth.Controls.ViewItem | gamepad = Enum. KeyCode.ButtonA |
LocalScript
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():
Abre la ventana del stand de productos (si está cerrada) y navega a la vista del catálogo. A esta función solo se puede acceder desde un LocalScript.
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
print(errorMessage)
end
MerchBooth.openMerchBooth()
openItemView
openItemView(itemId:number)
Navegará a la vista de un solo objeto del itemId proporcionado, abriendo la ventana del stand de productos si está cerrada actualmente. A esta función solo se puede acceder desde un LocalScript.
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
toggleCatalogButton
toggleCatalogButton(enabled:boolean)
Activa o desactiva el botón del catálogo situado en el lado derecho de la pantalla. Esto resulta útil cuando se implementa un botón personalizado o se limita la aparición del stand de productos a regiones o indicadores de proximidad. Solo se puede llamar desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.toggleCatalogButton(false)
isMerchBoothOpen
isMerchBoothOpen():Tuple
Devuelve true si el catálogo o la vista del objeto están abiertos. Si la vista del objeto está abierta, la identificación del recurso del objeto se devuelve como el segundo valor. A esta función solo se puede acceder desde un LocalScript.
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
closeMerchBooth
closeMerchBooth():
Cierra la ventana del stand de productos. A esta función solo se puede acceder desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.closeMerchBooth()
isMerchBoothEnabled
isMerchBoothEnabled():boolean
Esta función se puede usar junto con setEnabled para verificar si el stand de productos está activado actualmente o no. Solo se puede llamar desde un LocalScript.
setEnabled
setEnabled(enabled:boolean)
Establece si todo el stand de productos está activado o no. Cuando se desactiva, esta función elimina toda la interfaz de usuario, incluidos los indicadores de proximidad, y desconecta todos los eventos. A esta función solo se puede acceder desde un LocalScript.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
Eventos
itemAdded
itemAdded(assetId:number, itemInfo:table):RBXScriptSignal
Se activa cuando un objeto se añade a través de addItemAsync. Este evento solo se puede conectar en un Script.
Parámetros | |
---|---|
assetId: number | Identificación del recurso del objeto. |
itemInfo: table | Diccionario de información del objeto, 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)
itemRemoved
itemRemoved(assetId:number):RBXScriptSignal
Se activa cuando un objeto se elimina a través de removeItem. Este evento solo se puede conectar en un Script.
Parámetros | |
---|---|
assetId: number | Identificación del recurso del objeto. |
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)
merchBoothOpened
merchBoothOpened():RBXScriptSignal
Se activa cuando se abre la vista catálogo o la vista de detalles del objeto.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)
merchBoothClosed
merchBoothClosed():RBXScriptSignal
Se activa cuando se cierra el catálogo o de detalles del objeto.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)
catalogViewOpened
catalogViewOpened():RBXScriptSignal
Se activa cuando se abre la vista del catálogo.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)
catalogViewClosed
catalogViewClosed():RBXScriptSignal
Se activa cuando se cierra la vista del catálogo.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)
itemViewOpened
itemViewOpened():RBXScriptSignal
Se activa cuando se abre la vista de detalles del objeto.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)
itemViewClosed
itemViewClosed():RBXScriptSignal
Se activa cuando se cierra la vista de detalles del objeto.
LocalScript
local ReplicatedStorage = game: GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)