Stand de merchandising

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Le module développeur de MerchBooth vous permet d'offrir des ressources d'avatar , des passes et des produits de développeur à vendre directement dans votre expérience.Les joueurs peuvent parcourir des articles, prévisualiser des ressources sur leur propre avatar, acheter des articles et les utiliser instantanément ou les équiper — tout sans quitter votre expérience.Cela peut vous aider à monétiser votre expérience et à gagner des revenus grâce à la commission d'affiliation de 40 % associée à la vente des articles d'autres créateurs.

Utilisation du module

Étabissement

Pour utiliser le module MerchBooth dans une expérience :

  1. De l'onglet Affichage, ouvrez la boîte à outils et sélectionnez l'onglet boutique des créateurs .

    Toolbox toggle button in Studio
  2. Assurez-vous que le tri des modèles est sélectionné, puis cliquez sur le bouton Voir tout pour les catégories .

  3. Localisez et cliquez sur la case modules de développement .

  4. Localisez le module Stand de merchandising et cliquez dessus, ou glissez-déposez-le dans la voir3D.

  5. Dans la fenêtre Explorateur, déplacez l'ensemble du modèle MerchBooth dans ServerScriptService .Une fois l'expérience exécutée, le module se distribuera à différents services et commencera à fonctionner.

Configération

Le module est préconfiguré pour fonctionner dans la plupart des cas d'utilisation, mais il peut être facilement personnalisé via la fonction configurer.Par exemple, pour créer un thème plus clair et désactiver le bouton filtre par défaut dans la zone supérieure gauche de la vue voir:

  1. Dans StarterPlayerScripts , créez un nouveau LocalScript et renommez-le en Configurer le stand de marchandises .

  2. Collez le code suivant dans le nouveau script.

    LocalScript - Configurer le stand de marchandises

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

Ajouter des articles

Qu'est-ce qu'un stand de merch sans merch ? Les sections suivantes décrivent comment ajouter des ressources d'avatar, des passes et des produits de développeur à votre stand de merch.

Ressources d'avatar

Des articles tels que vêtements et accessoires doivent être ajoutés via leur ID de ressources situé sur la page de détail de l'itemdans la boutique d'Avatar.

  1. Créez un Script dans ServerScriptService et collez le code suivant.

    Script - Ajouter des ressources d'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. Copiez les ID d'actif de l'élément de la ressource de leur URL du site Web Avatar Shop. Par exemple, l'ID de casquette de baseball Roblox est 607702162 .

  3. Collez chaque ID copié dans une liste délimitée par des virgules dans la table items.Par défaut, les articles apparaissent dans la vue du catalogue dans l'ordre alphabétique, mais vous pouvez personnaliser le tri en utilisant setCatalogSort.

    Script - Ajouter des ressources d'avatar

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Casquette de baseball Roblox
    4819740796, -- Robox
    1374269, -- Oreilles de chat
    11884330, -- Lunettes de nerd
    10476359, -- Chapeau en papier
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Passer

Ajouter passes nécessite des ID de passe qui peuvent être localisés dans le tableau de bord du créateur.

  1. Créez un Script dans ServerScriptService et collez le code suivant.

    Script - Ajouter des passes

    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. Accédez au tableau de bord du créateur et sélectionnez l'expérience.

  3. Dans la colonne de gauche, sous Monétisation , sélectionnez passes .

  4. Passez la souris sur une miniaturede passe, cliquez sur le bouton et sélectionnez Copier l'ID de la ressource dans le menu contextuel.

  5. Collez chaque ID copié dans une liste délimitée par des virgules dans la table items et incluez Enum.InfoType.GamePass comme deuxième paramètre pour addItemAsync indiquer que les articles sont des passes.Par défaut, les articles apparaîtront dans la vue du catalogue dans l'ordre alphabétique, mais leur tri peut être personnalisé via setCatalogSort.

    Script - Ajouter des passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- Armure de feu froid
    28521575, -- Bouclier de slime
    }
    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

Produits des développeurs

Ajouter produits de développeur nécessite des identifiants de produit qui peuvent être localisés dans le tableau de bord du créateur.

  1. Créez un Script dans ServerScriptService et collez le code suivant.

    Script - Ajouter des produits du développeur

    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. Accédez au tableau de bord du créateur et sélectionnez l'expérience.

  3. Dans la colonne de gauche, sous Monétisation , sélectionnez Produits des développeurs .

  4. Passez la souris sur la miniatured'un produit, cliquez sur le bouton et sélectionnez Copier l'ID de la ressource dans le menu contextuel.

  5. Collez chaque ID copié dans une liste délimitée par des virgules dans la table items et incluez Enum.InfoType.Product comme deuxième paramètre pour ajouterItemAsync indiquant que les articles sont des produits du développeur.Par défaut, les articles apparaissent dans la vue du catalogue dans l'ordre alphabétique, mais vous pouvez personnaliser le tri en utilisant setCatalogSort.

    Script - Ajouter des produits du développeur

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Rechargement de mana
    1257880672, -- Potion de guérison
    }
    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

Bouton de catalogue personnalisé

Par défaut, un bouton de catalogue à droite permet aux joueurs d'ouvrir le stand à tout moment.

Dans certains cas, il peut être utile de supprimer ce bouton et de connecter le posséder:

  1. Créez un nouveau bouton comme indiqué dans boutons.

  2. Créer un LocalScript comme enfant de l'objet bouton.

  3. Collez le code suivant dans le nouveau script.

    LocalScript - Bouton de catalogue personnalisé

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Supprimer le bouton de catalogue par défaut
    MerchBooth.toggleCatalogButton(false)
    -- Connectez le bouton personnalisé
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Régions marchandes

Un moyen utile de stimuler les achats dans votre expérience est d'afficher automatiquement le stand de merchandising lorsqu'un joueur entre dans une zone.

Pour créer une région marchande :

  1. Créez un bloc Anchored qui couvre la région de détection.Assurez-vous que le bloc est assez haut pour se heurter aux modèles de caractères PrimaryPart ( HumanoidRootPart par défaut).

    Bloc pour détecter quand les joueurs approchent le devant du comptoir de la boutique
  2. En utilisant la section balises des propriétés du bloc ou l'éditeur de balises de Studio, appliquez la balise au bloc afin que la détecte.

  3. Définissez la partie Transparency au maximum pour la cacher aux joueurs dans l'expérience.Désactivez également ses propriétés CanCollide et CanQuery afin que les objets ne se heurtent pas physiquement à elle et que les raycasts ne la détectent pas.

  4. Insérez un nouveau LocalScript sous StarterPlayerScripts .

  5. Dans le nouveau script, collez le code suivant qui utilise les événements Touched et TouchEnded pour détecter quand les personnages entrent/quittent la région et appelle openMerchBooth et closeMerchBooth pour ouvrir/fermer le interface utilisateur graphiquedu stand.

    Lecteur localScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Supprimer le bouton de catalogue par défaut
    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
    -- Itérer à travers les régions de boutique étiquetées existantes
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Détecter quand les régions de boutique non diffusées se connectent
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Invites de proximité

En tant qu'alternative à la voirdu catalogue 2D, vous pouvez ajouter des invites de proximité sur les objets en expérience.Cela encourage les joueurs à découvrir des objets dans l'environnement 3D, à les prévisualiser sur leur propre avatar, à les acheter et à les équiper instantanément.Voir ajouter bouton de proximité pour les détails.

Changer l'effet d'équipement

Par défaut, le stand de merchandising montre un effet étincelant générique lorsqu'un joueur équipe un article à partir de celui-ci.Pour changer l'effet, définissez particleEmitterTemplate à votre propre instance d'un ParticleEmitter dans un configurer appel.

LocalScript - Configurer le stand de marchandises

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

Visibilité de l'interface graphique

Par défaut, le stand de merchandising cache tout ScreenGuis et CoreGuis lorsque son interface apparaît, y compris le chat, le classementset d'autres inclus par Roblox.Si vous souhaitez désactiver ce comportement, définissez hideOtherUis à false dans un appel configurer.

LocalScript - Configurer le stand de marchandises

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 alors qu'il se trouve dans le stand de merchandising.Cela peut être fait en définissant disableCharacterMovement à true dans un appel configurer.

LocalScript - Configurer le stand de marchandises

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

Référence de l'API

Les types

Objet

Les articles dans le stand de merchandising sont représentés par un dictionnaire avec les paires clé-valeur suivantes.Les articles peuvent être récupérés via la fonction getItems ou l'événement itemadded.

CléTypeAvertissement
assetIdnuméroID du catalogue de l'item, comme transmis à addItemAsync.
titlechaîneTitre de l'article tel qu'il apparaît dans le catalogue.
pricenuméroPrix de l'article en Robux.
descriptionchaîneDescription de l'article telle qu'elle apparaît dans le catalogue.
assetTypechaîneChaîne représentant le taperd'accessoire de l'item.
isOwnedboolSi le joueur actuel possède l'item.
creatorNamechaîneCréateur d'objets comme indiqué dans le catalogue.
creatorTypeEnum.CreatorTypeType de créateur pour l'item.

Enums

Booth marchand.Contrôles

Utilisé avec setControlKeyCodes pour personnaliser les touches et les boutons du gamepad pour interagir avec le stand de merchandising.

NomSommaire
ProximityPromptsBouton clé et/ou de manette pour ouvrir la vue d'objet lorsque les invites de proximité sont configurées.
OpenMerchBoothBouton clé et/ou de manette pour ouvrir le stand de merchandising.
CloseMerchBoothBouton clé et/ou de manette pour fermer le stand de merchandising.
FilterTouche clé et/ou bouton de manette pour utiliser le filtre par défaut Filtre dans la zone supérieure gauche de la voirdu catalogue.
ViewItemBouton clé et/ou de manette pour ouvrir une voird'élément de stand de marchandise spécifique.
Lecteur 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

configurer(config: table )

Options de configuration par défaut du côté client remplacées par les valeurs/clés suivantes dans la table config .Cette fonction ne peut être appelée qu'à partir d'un LocalScript .

CléAvertissementPar défaut
backgroundColorCouleur de fond principale de la fenêtre ( Color3 ).[0, 0, 0]
cornerRadiusRayon d'angle pour la fenêtre principale ( UDim ).(0, 16)
cornerRadiusSmallRayon d'angle pour les éléments à l'intérieur de la fenêtre ( UDim ).(0, 8)
textFontPolice de « texte principal » telle que les prix, les descriptions et d'autres informations générales ( Enum.Font ).Gotham
textSizeTaille du texte principal.14
textColorCouleur du texte principal ( Color3 ).[255, 255, 255]
secondaryTextColorCouleur utilisée pour certaines variations du texte principal ( Color3 ).[153, 153, 158]
headerFontPolice du texte d'en-tête utilisé pour le titre de la fenêtre ( Enum.Font ).GothamMedium
headerTextSizeTaille du texte d'en-tête utilisé pour le titre de la fenêtre.18
titleFontPolice du texte du titre utilisé pour les noms d'objets sur la page de détail de l'objet (Enum.Font).GothamBold
titleTextSizeTaille du texte du titre utilisé pour les noms d'objets sur la page détail de l'objet.28
buttonColorCouleur de fond pour les boutons plus grands dans un état cliquable, tels que le bouton d'achat principal dans la vue d'objet ( Color3 ).[255, 255, 255]
buttonTextColorCouleur du texte pour les boutons plus grands dans un état cliquable, tels que le bouton d'achat principal dans la vue d'objet ( Color3 ).[0, 0, 0]
secondaryButtonColorCouleur de fond pour les boutons plus petits tels que les boutons de prix dans la vue du catalogue ou le bouton Essayer ( Color3 ).[34, 34, 34]
secondaryButtonTextColorCouleur du texte pour les boutons plus petits tels que les boutons de prix dans la vue du catalogue ou le bouton Essayer ( Color3 ).[255, 255, 255]
inactiveButtonColorCouleur de fond pour tous les boutons dans un état non cliquable ( Color3 ).[153, 153, 158]
inactiveButtonTextColorCouleur du texte pour tous les boutons dans un état non cliquable ( Color3 ).[255, 255, 255]
particleEmitterTemplateInstance personnalisée optionnelle ParticleEmitter qui apparaît et joue sur equip.
Lecteur 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,
})

ajouterItemAsync

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

Ajoute de manière asynchrone un article au stand de vente afin qu'il soit éligible à l'achat dans l'expérience.assetId est l'ID de la ressource de l'item, productType est l'énième de l'itemEnum.InfoType et hideFromCatalog peut être utilisé pour masquer l'élément dans la voirdu catalogue.

Voir Ajouter des articles pour les détails, car l'utilisation varie légèrement pour les ressources versus passes de jeu ou produits de développeur .

Script - Ajouter des ressources d'avatar

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Casquette de baseball Roblox
4819740796, -- Robox
1374269, -- Oreilles de chat
11884330, -- Lunettes de nerd
10476359, -- Chapeau en papier
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Ajouter des passes

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- Armure de feu froid
28521575, -- Bouclier de slime
}
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 - Ajouter des produits du développeur

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Rechargement de mana
1257880672, -- Potion de guérison
}
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

obtenir des articles

getItems(): table

Renvoie un dictionnaire représentant tous les articles enregistrés actuellement.Chaque clé est l'ID de ressource d'un itemen tant que chaîne, et la valeur de chaque clé est un élément.Cette fonction ne peut être appelée qu'à partir d'un Script .

Scénario

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

supprimerItem

supprimerItem(assetId: number )

Désenregistre un élément précédemment ajouté avec addItemAsync, en supprimant sa tuile dans la vue du catalogue et tout prompt de proximité attribué à elle.Cette fonction ne peut être appelée qu'à partir d'un Script .

Scénario

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Après un certain temps, supprimez l'item
task.wait(5)
MerchBooth.removeItem(4819740796)
end

ajouterProximitéBouton

ajouterProximitéBouton(adornee: BasePart | Model | Attachment , assetId: number )

Ajoute une invite de proximité sur la donnée donnée adornee qui déclenchera l'affichage de la voird'achat d'un item, en raison de son ID de ressource.Cela peut être utilisé comme alternative à la voirdu catalogue 2D, encourageant les joueurs à découvrir des articles dans l'environnement 3D.

Remarquez qu'un élément doit être ajouté via addItemAsync avant que le bouton de proximité puisse lui être attribué.Voir aussi supprimer le bouton de proximité pour supprimer l'invite de proximité d'un objet.

Scénario

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

enlever le bouton de proximité

supprimerProximityButton(adornee: BasePart | Model | Attachment )

Supprime une invite de proximité générée via ajouterProximityButton . Cette fonction ne peut être appelée qu'à partir d'un Script .

Scénario

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
-- Après un certain temps, supprimez la demande
task.wait(5)
MerchBooth.removeProximityButton(item)
end

définirCatalogSort

setCatalogSort(sortFunction: function): boolean

Définit la fonction de tri sortFunction à utiliser dans la voirdu catalogue.La fonction de tri fournie peut utiliser une logique basée sur l'information de l'élément telle que price ou title.Cette fonction ne peut être appelée qu'à partir d'un LocalScript.

Voici quelques exemples pour trier le catalogue :

Prix bas à haut

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Prix du plus élevé au plus bas

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Prix bas à haut et alphabétique

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)

setControlKeyCommands

setControlKeyCodes(contrôle : MerchBooth.Controls , codes clés : table )

Configure les valeurs clé et bouton pour les interactions avec le stand de merchandising.Le premier paramètre doit être un ensemble de contrôles MerchBooth.Controls enum et le deuxième paramètre une table contenant les clés keyboard et/ou gamepad avec les enums correspondants Enum.KeyCode.

Enum ( control )Par défaut keyCodes Clés/Valeurs
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
Lecteur 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,
})

ouvrirMerchBooth

ouvertMerchBooth()

Ouvre la fenêtre de la boutique de marchandises (si elle est fermée) et navigue vers la voirdu catalogue. Cette fonction ne peut être appelée qu'à partir d'un LocalScript .

Lecteur localScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
MerchBooth.openMerchBooth()

ouvrirItemView

openItemView(itemId: number )

Navigue vers la vue d'un seul article de la donnée donnée itemId, ouvrant la fenêtre du stand de merchandising si elle est actuellement fermée.Cette fonction ne peut être appelée qu'à partir d'un LocalScript .

Lecteur 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

basculer le bouton catalogue

toggleCatalogButton(activé: boolean )

Active/désactive le bouton catalogue sur le côté droit de l'écran.Cela est utile lors de l'implémentation d'un bouton personnalisé ou de la limitation de l'apparence du stand de merchandising à régions ou invitations de proximité.Ne peut être appelé qu'à partir d'un LocalScript .

Lecteur localScript

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

estMerchBoothOuvert

isMerchBoothOpen(): Tuple

Retourne true si le catalogue ou la vue d'objet est ouvert.Si la vue d'objet est ouverte, l'ID de ressource de l'itemest retourné comme deuxième valeur.Cette fonction ne peut être appelée qu'à partir d'un LocalScript .

Lecteur 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

fermerBoothMerch

fermerMerchBooth()

Ferme la fenêtre du stand de merchandising. Cette fonction ne peut être appelée que depuis un LocalScript .

Lecteur 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 marchandise est actuellement activé ou non.Ne peut être appelé qu'à partir d'un LocalScript .

définirEnabled

setEnabled(enabled: boolean )

Définit si l'ensemble du stand de vente est activé ou non.Lorsqu'il est désactivé, cette fonction supprime l'ensemble de l'interface utilisateur, y compris les invites de proximité , et déconnecte tous les événements .Cette fonction ne peut être appelée qu'à partir d'un LocalScript .

Lecteur localScript

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

Événements

élément ajouté

S'enflamme lorsqu'un élément est ajouté via addItemAsync. Cet événement ne peut être connecté qu'en Script.

Paramètres
assetId : numberID de ressource de l'élément.
itemInfo : tableDictionnaire de l'information de l'élément telle que price ou title .
Scénario

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)

objetSupprimé

S'enflamme lorsqu'un élément est supprimé via removeItem. Cet événement ne peut être connecté qu'en Script.

Paramètres
assetId : numberID de ressource de l'élément.
Scénario

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)

stand marchand ouvert

S'enflamme lorsque la vue détaillée du catalogue ou est ouverte.

Lecteur localScript

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

merchBoothClosed

S'enflamme lorsque la vue détaillée du catalogue ou est fermée.

Lecteur localScript

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

catégorieViewOuvert

S'allume lorsque la vue du catalogue est ouverte.

Lecteur localScript

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

catégorie vue fermée

S'enflamme lorsque la vue du catalogue est fermée.

Lecteur localScript

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

ouverture d'élément vu

S'allume lorsque la vue détail de l'élément est ouverte.

Lecteur localScript

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

itemViewFermé

S'enflamme lorsque la vue détail de l'élément est fermée.

Lecteur localScript

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