Le module MerchBooth développeur vous permet d'offrir des accessoires d'avatar, des passes et des produits pour développeurs à vendre directement dans votre expérience. Les joueurs peuvent parcourir les articles, prévisualiser les ressources sur leur propre avatar, acheter des articles et les utiliser ou les équiper instantanément — le tout sans quitter votre expérience. Cela peut vous aider à [monétiser](../../production/monet
Utilisation du module
Installation
Pour utiliser le module MerchBooth dans une expérience :
Dans l'onglet Voir, ouvrez la Boîte à outils et sélectionnez l'onglet Marketplace.
Assurez-vous que le filtre Modèles est sélectionné, puis cliquez sur le bouton Voir tout pour afficher les catégories.
Localisez et cliquez sur la vignette MODULES DEV.
Localisez le module Stand de merchandising et cliquez dessus, ou faites-le glisser dans la vue 3D.
Dans la fenêtre Explorateur, déplacez l'intégralité du modèle MerchBooth dans ServerScriptService. Lors de l'exécution de l'expérience, le module se distribuera lui-même vers divers services et commencera à s'exécuter.
Paramétrage
Le module est préconfiguré pour fonctionner dans la plupart des cas d'utilisation, mais il peut être facilement modifier grâce à la fonction configurer. Par exemple, pour créer un thème plus léger et désactiver le bouton Filtre par défaut dans la zone supérieure gauche de la vue du catalogue :
Dans StarterPlayerScripts, créez un nouveau LocalScript et renommez-le ConfigureMerchBooth.
Collez le code suivant dans le nouveau script.
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})
Ajouter des objets
Qu'est-ce qu'un stand de merchandising sans produits dérivés ? Les sections suivantes décrivent comment ajouter des éléments d'avatar, des passes et des produits développeur à votre stand de merchandising.
Éléments d'avatar
Les objets tels que les vêtements et accessoires doivent être ajoutés par le biais de leur ID d'élément situé sur la page de détails de l'objet dans la Boutique d'avatar.
Créez un Script dans ServerScriptService et collez le code suivant.
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)endendCopiez les ID de l'élément depuis leur URL dans la Boutique d'avatar. Par exemple, l'ID de Roblox Baseball Cap est 607702162.
Collez chaque ID copié dans une liste délimitée par des virgules dans le tableau items. Par défaut, les objets apparaissent dans le catalogue dans l'ordre alphabétique, mais vous pouvez personnaliser l'ordre avec 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
Passes
L'ajout de passes nécessite des ID de passe qui sont situés dans l'Interface de création.
Créez un Script dans ServerScriptService et collez le code suivant.
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)endendAccédez à l'Interface de création et sélectionnez l'expérience.
Dans la colonne de gauche, cliquez sur Objets associés, puis sélectionnez PASSES.
Cliquez droit sur un passe et sélectionnez Copier l'ID de l'élément.
et incluez Enum.InfoType.GamePass comme deuxième paramètre pour addItemAsync afin d'indiquer que les objets sont des passes. Les objets apparaîtront par défaut dans le catalogue dans l'ordre alphabétique, mais le tri peut être personnalisé via 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
Produits développeur
L'ajout de produits développeur nécessite des ID de produit qui sont situés dans l'Interface de création.
Créez un Script dans ServerScriptService et collez le code suivant.
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)endendAccédez à l'Interface de création et sélectionnez l'expérience.
Dans la colonne de gauche, cliquez sur Objets associés, puis sélectionnez PRODUITS DÉVELOPPEUR.
Cliquez droit sur un produit et sélectionnez Copier l'ID de l'élément.
et incluez Enum.InfoType.Product comme deuxième paramètre pour addItemAsync afin d'indiquer que les objets sont des produits développeur. Par défaut, les objets apparaissent dans le catalogue dans l'ordre alphabétique, mais vous pouvez personnaliser l'ordre avec 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
Bouton de personnalisation du catalogue
Par défaut, un bouton de catalogue situé à droite permet aux utilisateurs d'ouvrir le stand à tout moment.
Dans certains cas, il peut être utile de supprimer ce bouton et de lier le vôtre :
Créez un nouveau bouton comme décrit dans Boutons et Entrée de texte.
Créez un LocalScript en tant qu'enfant du bouton objet.
Collez le code suivant dans le nouveau script.
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)
Espaces pour les achats
Un moyen pour générer des achats dans votre expérience est d'afficher automatiquement le stand de merchandising lorsqu'un utilisateur entre dans une zone.
Pour créer un espace d'achat :
Créez un bloc Anchored qui englobe l'espace de détection.
À l'aide de l'Éditeur de tags, accessible à partir de l'onglet Voir, appliquez le tag ShopRegion au bloc afin que CollectionService le détecte.
Désactivez les propriétés CanCollide et CanQuery de la pièce afin que les objets n'entrent pas en collision avec elle et que les raycasts ne la détectent pas. Définissez également son Transparency au maximum pour la cacher des utilisateurs dans l'expérience.
Insérez un nouveau LocalScript sous StarterPlayerScripts.
Dans le nouveau script, collez le code suivant qui utilise les événements Touched et TouchEnded pour détecter lorsque les utilisateurs entrent/sortent de l'espace et appellent openMerchBooth et closeMerchBooth pour ouvrir/fermer la GUI du 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
Messages de proximité
Vous pouvez ajouter des invites de proximité sur les objets de l'expérience en tant qu'alternative à la vue du catalogue 2D. Cela encourage les utilisateurs à découvrir des objets dans l'environnement 3D, à les prévisualiser sur leur propre avatar, à les acheter et à les équiper directement. Voir addProximityButton pour plus de détails.
Modifier l'effet d'équipement
Le stand de merchandising affiche un effet de scintillement par défaut lorsqu'un utilisateur s'équipe d'un objet. Pour modifier l'effet, définissez particleEmitterTemplate sur votre propre instance d'un ParticleEmitter dans un appel de configuration.
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})
Visibilité de la GUI
Le stand de merchandising masque tous les ScreenGuis et CoreGuis par défaut lorsque leurs UI s'affichent, y compris le chat, le classement et les autres éléments inclus par Roblox. Si vous souhaitez désactiver ce comportement, définissez hideOtherUis sur false dans un appel de configuration.
LocalScript - ConfigureMerchBooth
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({hideOtherUis = false})
Mouvement du personnage
Il peut être avantageux d'empêcher un personnage de se déplacer lorsqu'il se trouve dans le stand de merchandising. Cela peut être fait en définissant disableCharacterMovement sur true dans un appel de configuration.
LocalScript - ConfigureMerchBooth
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({disableCharacterMovement = true})
Référence API
Types
Objet
Les objets dans le stand de merchandising sont représentés par un dictionnaire avec les paires clé-valeur suivantes. Les objets peuvent être rassemblés par le biais de la fonction getItems ou de l'événement itemAdded.
Clé | Type | Description |
---|---|---|
assetId | Vector3int16 | ID du catalogue de l'objet, comme transféré vers addItemAsync. |
title | chaîne | Nom de l'objet tel qu'il apparaît dans le catalogue. |
price | Vector3int16 | Prix de l'objet en Robux. |
description | chaîne | Description de l'objet tel qu'il apparaît dans le catalogue. |
assetType | chaîne | Chaîne représentant le type d'accessoire de l'objet. |
isOwned | int | Indique si l'utilisateur actuel possède l'objet. |
creatorName | chaîne | Créateur d'objets comme indiqué dans le catalogue. |
creatorType | Enum.CreatorType | Type de créateur pour l'objet. |
Enums
MerchBooth.Controls
Utilisé avec setControlKeyCodes pour personnaliser les clés et les boutons de gamepad pour interagir avec le stand de merchandising.
Nom | Résumé |
---|---|
ProximityPrompts | Bouton de la clé et/ou du gamepad pour ouvrir la vue de l'objet lorsque des invites de proximitésont paramétrées. |
OpenMerchBooth | Bouton de la clé et/ou du gamepad pour ouvrir le stand de merchandising. |
CloseMerchBooth | Bouton de la clé et/ou du gamepad pour fermer le stand de merchandising. |
Filter | Bouton de la clé et/ou du gamepad pour utiliser le menu par défaut Filtre dans la zone supérieure gauche du catalogue. |
ViewItem | Bouton de la clé et/ou du gamepad pour ouvrir une vue d'objet du stand de merchandising spécifique. |
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})
Fonctions
configurer
configure(config:table)
Remplace les options de paramétrage par défaut du côté client par le biais des clés/valeurs suivantes dans le tableau config. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
Apparence
Clé | Description | Par défaut |
---|---|---|
backgroundColor | Couleur principale de l'arrière-plan de la fenêtre (Color3). | [0, 0, 0] |
cornerRadius | Rayon d'angle de la fenêtre principale (UDim). | (0, 16) |
cornerRadiusSmall | Rayon d'angle pour les éléments à l'intérieur de la fenêtre (UDim). | (0, 8) |
textFont | Police du « texte principal » comme les prix, les descriptions et autres informations générales (Enum.Font). | Gotham |
textSize | Taille du texte principal. | 13 |
textColor | Couleur du texte principal (Color3). | [255, 255, 255] |
secondaryTextColor | Couleur utilisée pour certaines variations du Color3texte principal | [153, 153, 158] |
headerFont | Police du texte d'en-tête utilisé pour le titre de la fenêtre (Enum.Font). | GothamMedium |
headerTextSize | Taille du texte d'en-tête utilisé pour le titre de la fenêtre. | 18 |
titleFont | Police du texte du titre utilisé pour le nom des objets sur la page de détail de l'objet (Enum.Font). | GothamBold |
titleTextSize | Taille du texte du titre utilisée pour le nom des objets sur la page de détail de l'objet. | 28 |
buttonColor | Couleur d'arrière-plan pour les plus grands boutons cliquables, comme le bouton d'achat principal dans la vue de l'objet (Color3). | [255, 255, 255] |
buttonTextColor | Couleur du texte pour les plus grands boutons cliquables, comme le bouton d'achat principal dans la vue de l'objet (Color3). | [0, 0, 0] |
secondaryButtonColor | Couleur d'arrière-plan pour les boutons plus petits comme les boutons de prix dans le catalogue ou le bouton Essayer (Color3). | [34, 34, 34] |
secondaryButtonTextColor | Couleur du texte pour les boutons plus petits comme les boutons de prix dans le catalogue ou le bouton Essayer (Color3). | [255, 255, 255] |
inactiveButtonColor | Couleur d'arrière-plan pour tous les boutons non cliquables (Color3). | [153, 153, 158] |
inactiveButtonTextColor | Couleur du texte pour tous les boutons non cliquables (Color3). | [255, 255, 255] |
particleEmitterTemplate | Instance ParticleEmitter personnalisée optionnelle qui apparaît et se lance lors de l'équipement d'un objet. |
Messages de proximité
Clé | Description | Par défaut |
---|---|---|
proximityButtonActivationDistance | Distance maximale entre le personnage d'un joueur et l'invite pour que l'invite apparaisse. | "10" |
proximityButtonExclusivity | Enum.ProximityPromptExclusivityspécifie les invites qui peuvent être affichées en même temps. | OnePerButton |
proximityButtonOffset | Décalage des pixels appliqué à l'UI de l'invite (Vector2). | (0, 0) |
proximityButtonPulseCount | Combien d'« impulsions » se produisent autour des boutons de proximité avant de s'arrêter. | 3 |
Comportement
Clé | Description | Par défaut |
---|---|---|
useFilters | Active ou désactive le bouton Filtre affiché dans le catalogue. | vrai |
disableCharacterMovement | Si true, empêche le personnage de se déplacer lorsque le stand de merchandising est ouvert. | faux |
hideOtherUis | Si true, le stand de merchandising masque tous les ScreenGuis et CoreGuis quand son UI apparaît. | vrai |
closeWhenFarFromPrompt | Si true et si le joueur a ouvert une vue d'objet par le biais d'une invite de proximité, le stand de merchandising se fermera automatiquement quand le joueur s'éloignera de l'objet et de sa distance d'activation. | vrai |
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)
Ajoute un objet de manière asynchrone au stand de merchandising afin qu'il soit éligible à l'achat dans l'expérience. assetId est l'ID élément de l'objet, productType est l'enum Enum.InfoType de l'objet, et hideFromCatalog peut être utilisé pour masquer l'objet dans le catalogue.
Voir Ajouter des objets pour plus de détails, car l'utilisation varie légèrement entre les éléments, les passes de jeu et les produits développeur.
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
Fournit un dictionnaire représentant tous les objets actuellement enregistrés. Chaque clé est l'ID élément d'un objet sous forme de chaîne, et la valeur de chaque clé est un objet. Cette fonction peut uniquement être appelée à partir d'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)
Efface un objet précédemment ajouté avec addItemAsync, supprimant sa tuile dans le catalogue et toute invite de proximité assignée. Cette fonction peut uniquement être appelée à partir d'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)
Ajoute une invite de proximité au adornee donné qui déclenchera l'affichage de la vue d'achat d'un objet, compte tenu de son ID d'élément. Cela peut être utilisé comme une alternative à la vue du catalogue 2D, encourageant les utilisateurs à découvrir des objets dans l'environnement 3D.
Notez qu'un objet doit être ajouté via addItemAsync avant qu'un bouton de proximité puisse lui être assigné. Voir également removeProximityButton pour supprimer l'invite de proximité d'un objet.
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:``Class.BasePart|Model|Attachment)
Supprime une invite de proximité générée par addProximityButton. Cette fonction peut uniquement être appelée à partir d'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
Définit la fonction de tri sortFunction à utiliser dans le catalogue. La fonction de tri peut utiliser une logique basée sur les informations d'objet comme price ou title. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
Voici quelques exemples pour trier le catalogue :
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(contration:MerchBooth.Controls, keyCodes:table)
Paramètre les valeurs de clé et de bouton pour les interactions avec le stand de merchandising. Le premier paramètre doit être un MerchBooth.Commandes enum, et le deuxième un tableau regroupant les clés keyboard et/ou gamepad avec les enums Enum.KeyCode correspondants.
Enum (control) | Clés/valeurs keyCodes par défaut |
---|---|
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():
Ouvre la fenêtre du stand de merchandising (si elle est fermée) et accède au catalogue. Cette fonction peut uniquement être appelée à partir d'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)
Accède à la vue d'objet unique du itemId donné, ouvrant la fenêtre du stand de merchandising si elle est fermée. Cette fonction peut uniquement être appelée à partir d'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)
Active ou désactive le bouton du catalogue sur le côté droit de l'écran. Ceci est utile lorsque vous implémentez un bouton personnalisé ou limitez l'apparence du stand de merchandising aux espaces ou aux invites de proximité. Peut uniquement être appelé à partir d'un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.toggleCatalogButton(false)
isMerchBoothOpen
isMerchBoothOpen():Tuple
Renvoie true si le catalogue ou la vue de l'objet est ouverte. Si la vue de l'objet est ouverte, l'ID élément de l'objet est fourni comme deuxième valeur. Cette fonction peut uniquement être appelée à partir d'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():
Ferme la fenêtre du stand de merchandising. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.closeMerchBooth()
isMerchBoothEnabled
isMerchBoothEnabled():boolean
Cette fonction peut être utilisée en tandem avec setEnabled pour vérifier si le stand de merchandising est activé ou non. Peut uniquement être appelé à partir d'un LocalScript.
setEnabled
setEnabled(enabled:boolean)
Définit si l'intégralité du stand de merchandising est activé ou non. Lorsqu'elle est désactivée, cette fonction supprime l'UI entier, y compris les invites de proximité, et dissocie tous les événements. Cette fonction peut uniquement être appelée à partir d'un LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
Événements
itemAdded
itemAdded(assetId:number, itemInfo:table):RBXScriptSignal
Se déclenche lorsqu'un objet est ajouté par addItemAsync. Cet événement peut uniquement être lié dans un Script.
Paramètres | |
---|---|
assetId: number | ID élément de l'objet. |
itemInfo: table | Dictionnaire des informations d'](#item)objet[ comme price ou 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 déclenche lorsqu'un objet est supprimé par removeItem. Cet événement peut uniquement être lié dans un Script.
Paramètres | |
---|---|
assetId: number | ID élément de l'objet. |
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 déclenche lorsque le catalogue ou la vue des détails de l'objet sont ouverts.
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 déclenche lorsque le catalogue ou la vue des détails de l'objet sont fermés.
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 déclenche lorsque le catalogue est ouvert.
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 déclenche lorsque le catalogue est fermé.
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 déclenche lorsque la vue des détails de l'objet est ouverte.
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 déclenche lorsque la vue des détails de l'objet est fermée.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)