Stand merch

Il modulo dello sviluppatore MerchBooth ti consente di offrire le risorse avatar, i pass e i prodotti sviluppatore fdirettamente all'interno dell'esperienza. I giocatori possono ricercare gli articoli, visualizzare in anteprima le risorse del loro avatar, vendere articoli e usarli o attrezzarli in modo immediato, il tutto senza mai lasciare l'esperienza. Questo può aiutarti a monetizzare la tua esperienza e a ottenere delle entrate attraverso la tassa di affiliazione del 40% associata alla vendita di articoli di altri creatori.

Utilizzo del modulo

Installazione

Per usare il modulo MerchBooth all'interno di un'esperienza:

  1. Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.

    attiva il pulsante degli Strumenti in Studio
  2. Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.

  3. Individuare e fare clic sulla piastrella DEV MODULES.

  4. Individuare il modulo Stand merci e fare clic su di esso, oppure trascinarlo e lasciarlo nella visualizzazione 3D.

  5. Nella finestra Explorer, spostare l'intero modello MerchBooth in ServerScriptService. Dopo aver avviato l'esperienza, il modulo si distribuirà a vari servizi e inizierà a funzionare.

Configurazione

Il modulo è preconfigurato per funzionare nella maggior parte dei casi di utilizzo, ma può essere facilmente personalizzato attraverso la funzione di configurazione. Ad esempio, per creare un tema più chiaro e disattivare il pulsante predefinito Filtro predefinito nell'area in alto a sinistra del catalogo:

  1. In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfigureMerchBooth.

  2. Incolla il seguente codice nel nuovo script.

    LocalScript - ConfigureMerchBooth

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

Aggiungere gli articoli

Cos'è uno stand di merci senza merce? Le seguenti sezioni spiegano come aggiungere risorse avatar, pass e prodotti sviluppatore al tuo stand merci.

Risorse Avatar

Oggetti quali capi di abbigliamento e accessori devono essere aggiunti attraverso il loro ID risorsa reperibile nella pagina dei dettagli dell'oggetto nel Negozio Avatar.

  1. Crea un Script all'interno del ServerScriptService e incollalo nel seguente codice.

    Script - Add Avatar Assets

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. Copia gli ID delle risorse degli oggetti dall'URL del sito web del Negozio Avatar. Ad esempio, l'ID del cappellino da baseball Roblox è 607702162.

  3. Incolla ciascun ID copiato in un elenco delimitato da virgole all'interno della tabella items. Per impostazione predefinita, gli oggetti vengono visualizzati nel catalogo in ordine alfabetico, ma puoi personalizzare la selezione utilizzando setCatalogSort.

    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

I Pass

L'aggiunta di pass richiede gli ID di pass, che sono ubicati nel (Pannello di creazione)[https://create.roblox.com/creation].

  1. Crea un Script all'interno del ServerScriptService e incollalo nel seguente codice.

    Script - Add Passes

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. Naviga nel Pannello di creazione e seleziona l'esperienza.

  3. Nella colonna a sinistra, fai clic sugli Oggetti associati, poi seleziona PASSES.

  4. Fai clic con il tasto destro su un pass e seleziona Copia ID risorsa.

  5. Incolla gli ID copiati in un elenco delimitato da virgole all'interno della itemstabella e includi Enum.InfoType.Productcome secondo parametro per addItemAsync al fine di indicare che gli oggetti costituiscono dei prodotti sviluppatore. Per impostazione predefinita, gli oggetti vengono visualizzati nel catalogo in ordine alfabetico, ma puoi personalizzare la selezione utilizzando setCatalogSort.

    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

Developer Products

L'aggiunta di prodotti sviluppatore richiede gli ID prodotto che sono reperibili nel Pannello di creazione.

  1. Crea un Script all'interno del ServerScriptService e incollalo nel seguente codice.

    Script - Add Developer Products

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in ipairs(items) do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    print(errorMessage)
    end
    end
  2. Naviga nel Pannello di creazione e seleziona l'esperienza.

  3. Nella colonna a sinistra, fai clic sugli Oggetti associati, poi seleziona DEVELOPER PRODUCTS.

  4. Fai clic con il tasto destro del mouse su un prodotto e seleziona Copia ID risorsa.

  5. Incolla gli ID copiati in un elenco delimitato da virgole all'interno della itemstabella e includi Enum.InfoType.GamePass come secondo parametro per addItemAsync al fine di indicare che gli oggetti costituiscono dei pass. Per impostazione predefinita, gli oggetti verranno visualizzati in ordine alfabetico, ma è possibile personalizzare la selezione tramite setCatalogSort. Per impostazione predefinita, gli oggetti vengono visualizzati nel catalogo in ordine alfabetico, ma puoi personalizzare la selezione utilizzando setCatalogSort.

    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

Pulsante catalogo personalizzato

Per impostazione predefinita, il pulsante di catalogo a destra consente agli utenti di aprire lo stand in qualsiasi momento.

In alcuni casi, potrebbe essere utile rimuovere questo pulsante per collegare il proprio:

  1. Crea un nuovo pulsante come spiegato in Input pulsanti e testo.

  2. Crea un LocalScript come figlio dell'oggetto pulsante.

  3. Incolla il seguente codice nel nuovo script.

    LocalScript - Custom Catalog Button

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Remove the default catalog button
    MerchBooth.toggleCatalogButton(false)
    -- Connect the custom button
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Regioni acquistabili

Un modo utile per orientare gli acquisti verso la tua esperienza è quello di mostrare automaticamente lo stand merci quando un utente entra in un'area.

Per creare una regione acquistabile:

  1. Crea un blocco Anchored che circondi la regione di rilevamento.

    Blocca per rilevare il momento in cui i giocatori si avvicinano al bancone del negozio
  2. Utilizzando l'Editore etichetta, accessibile dalla scheda Visualizza, applica l'etichetta AcquistaRegione al blocco affinché CollectionService lo rilevi.

  3. Disattiva le CanCollidee le CanQueryproprietà della parte in modo che gli oggetti non collidano fisicamente con queste e affinché i raycast non lo rilevino. Imposta inoltre il suo Transparency al massimo al fine di nasconderlo agli utenti nell'esperienza.

  4. Inserisci un nuovo LocalScript sotto StarterPlayerScripts.

  5. Nel nuovo script, incolla il seguente codice che utilizza gli eventi Touched e TouchEnded al fine di rilevare quando gli utenti entrano/escono dalla regione e richiama openMerchBooth e closeMerchBooth per aprire/chiudere l'Interfaccia grafica utente della cabina.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Remove the default catalog button
    MerchBooth.toggleCatalogButton(false)
    -- Iterate through all tagged parts
    for _, region in ipairs(CollectionService:GetTagged("ShopRegion")) do
    region.Touched:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and character:FindFirstChild("HumanoidRootPart") == otherPart then
    MerchBooth.openMerchBooth()
    end
    end)
    region.TouchEnded:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and character:FindFirstChild("HumanoidRootPart") == otherPart then
    MerchBooth.closeMerchBooth()
    end
    end)
    end

Prompt di prossimità

In alternativa alla visualizzazione del catalogo 2D, puoi aggiungere prompt di prossimità sugli oggetti all'interno dell'esperienza. Questo incoraggia gli utenti a scoprire gli oggetti nell'ambiente 3D, a visualizzarli in anteprima sul loro Avatar, ad acquistare questi oggetti e a equipaggiarli istantaneamente. Vedi addProximityButton per ulteriori dettagli.

Modifica dell'effetto Equip

Per impostazione predefinita, lo stand merci mostra un effetto scintilla generico quando un utente equipaggia l'articolo servendosi dello stand ParticleEmitterstesso. Per modificare l'effetto, particleEmitterTemplateimposta come tua richiesta di in una chiamata di configurazione.

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.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})

Visibilità Interfaccia grafica utente

Per impostazione predefinita, lo stand merci nasconde tutto il ScreenGuis e CoreGuis quando la sua interfaccia utente appare; sono incluse la chat, la classifica e gli altri elementi all'interno di Roblox. Se vuoi disattivare questo comportamento, imposta hideOtherUis per false in una chiamata di configurazione.

LocalScript - ConfigureMerchBooth

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

Movimento del personaggio

Può essere vantaggioso per impedire a un personaggio di muoversi quando si trova nello stand merci. Questo è fattibile impostando disableCharacterMovement a true in una chiamatadi configurazione.

LocalScript - ConfigureMerchBooth

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

Riferimento API

Tipi

Articolo

Gli oggetti nello stand merci sono rappresentati da un dizionario con le seguenti coppie di valore chiave. Gli oggetti possono essere raccolti attraverso la funzione getItems o l'evento itemAdded.

ChiaveTipoDescrizione
assetIdnumeroL'ID di catalogo dell'oggetto, così come passato a addItemAsync.
titlestringaIl titolo dell'oggetto così come appare nel catalogo.
pricenumeroPrezzo dell'oggetto in Robux.
descriptionstringaDescrizione dell'oggetto così come appare nel catalogo.
assetTypestringaStringa che rappresenta il tipo di accessorio visualizzato.
isOwnedboolSe l'utente corrente possiede l'articolo o meno.
creatorNamestringaCreatore oggetto, così come appare nel catalogo.
creatorTypeEnum.CreatorTypeTipo di creatore dell'articolo.

Enums

MerchBooth.Controls

Utilizzata insieme a setControlKeyCodes per personalizzare i pulsanti chiave e gamepad al fine di interagire con lo stand merci.

NomeSommario
ProximityPromptsIl pulsante chiave e/o gamepad serve ad aprire la visualizzazione dell'articolo quando i prompt di prossimità sono configurati.
OpenMerchBoothI pulsanti chiave e/o gamepad servono ad aprire lo stand merci.
CloseMerchBoothI pulsanti chiave e/o gamepad servono a chiudere lo stand merci.
FilterIl pulsante chiave e/o gamepad servono ad utilizzare il pulldown predefinito Filtro nell'area superiore sinistra del catalogo di visualizzazione.
ViewItemIl pulsante chiave e/o gamepad serve ad aprire una specifica visualizzazione di articolo all'interno dello stand merci.
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
})

Funzioni

Configurare

configure(config:table)

Sovrascrive la configurazione predefinita del client attraverso le seguenti chiavi/valori nella tabella config. Questa funzione può essere chiamata solo da un LocalScript.

Aspetto

ChiaveDescrizionePredefinito
backgroundColorColore principale dello sfondo della finestra (Color3).[0, 0, 0]
raggio d'angolo</td> <td>Raggio dell'angolo della finestra principale (Datatype.UDim`).(0, 16)
cornerRadiusSmallRaggio dell'angolo degli elementi all'interno della finestra (UDim).(0, 8)
textFontFont del "testo principale", ad esempio prezzi, descrizioni e altre informazioni generali (Enum.Font).Gotham
textSizeDimensione del testo principale.14
textColorColore del testo principale (Color3).[255, 255, 255]
secondaryTextColorColore utilizzato per alcune variazioni del testo principale (Color3).[153, 153, 158]
headerFontFont del testo dell'intestazione utilizzata per la finestra del titolo (Enum.Font).GothamMedio
headerTextSizeDimensione del testo dell'intestazione utilizzata per il titolo della finestra.18
titleFontFont del testo del titolo utilizzato per i nomi degli articoli all'interno della pagina dei dettagli dell'articolo (Enum.Font).GothamBold
titleTextSizeDimensione del testo del titolo utilizzato per i nomi degli articoli all'interno della pagina dei dettagli dell'articolo.28
buttonColorColore dello sfondo per i pulsanti più grandi in uno stato cliccabile, ad esempio il pulsante principale di acquisto nella visualizzazione dell'articolo (Color3).[255, 255, 255]
buttonTextColorColore del testo per i pulsanti più grandi in uno stato cliccabile, ad esempio il pulsante principale di acquisto nella visualizzazione dell'articolo (Color3).[0, 0, 0]
secondaryButtonColorColore dello sfondo per i pulsanti più piccoli, ad esempio i pulsanti del prezzo nella visualizzazione del catalogo o il pulsante Try On (Color3).[34, 34, 34]
secondaryButtonTextColorColore del testo per i pulsanti più piccoli, ad esempio i pulsanti di prezzo nella visualizzazione del catalogo o il pulsante Try On (Color3).[255, 255, 255]
inactiveButtonColorColore dello sfondo per tutti i pulsanti in uno stato non cliccabile (Color3).[153, 153, 158]
inactiveButtonTextColorColore del testo per tutti i pulsanti in uno stato non cliccabile (Color3).[255, 255, 255]
particleEmitterTemplateParticleEmitterEsempio personalizzato facoltativo che appare e viene riprodotto su equip.

Prompt di prossimità

ChiaveDescrizionePredefinito
proximityButtonActivationDistanceDistanza massima cui il personaggio di un giocatore può trovarsi rispetto all'](#proximity-prompts)adornee [del prompt affinché il prompt appaia.10
proximityButtonExclusivityEnum.ProximityPromptExclusivityspecifica quali prompt possono essere visualizzati contemporaneamente.OnePerButton
proximityButtonOffsetDislocamento pixel applicato all'UI del prompt (Vector2).(0, 0)
proximityButtonPulseCountQuante "pulsazioni" si verificano intorno ai pulsanti di prossimità prima di fermarsi.3

Comportamento

ChiaveDescrizionePredefinito
useFiltersAttiva o disattiva il pulsante del Filtro visualizzabile nel catalogo.vero
disableCharacterMovementSe true, impedisce al personaggio di muoversi mentre lo stand merci è aperto.falso
hideOtherUisSe true, lo stand merci nasconde tutto ScreenGuis e CoreGuis quando appare l'interfaccia utente.vero
closeWhenFarFromPromptSe true e se il giocatore ha aperto la visualizzazione di un articolo attraverso un prompt di prossimità, lo stand merci si chiuderà automaticamente quando si sposterà lontano dall'oggetto del prompt, più lontano rispetto alla sua distanza di attivazione.vero
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, tipo di prodotto:Enum.InfoType, hideFromCatalog:booleano)

Aggiunge un articolo allo stand merci in modo asincrono affinché ne sia possibile l'acquisto all'interno dell'esperienza. assetId è l'ID della risorsa dell'articolo, productTypeè l'Enum.InfoTypeenum dell'articolo, e hideFromCatalog è utilizzabile per nascondere l'articolo nella visualizzazione catalogo.

Vedere Aggiunta di articoli per ulteriori dettagli, poiché vi è una leggera differenza di utilizzo tra le risorse e i pass di gioco o i prodotti sviluppatore.

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

Offre un dizionario che rappresenta tutti gli articoli attualmente registrati. Ciascuna chiave costituisce un ID di risorsa dell'articolo sotto forma di stringa; ogni valore di chiave è un articolo. Questa funzione può essere chiamata solo da 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)

De-registra un articolo previamente aggiunto con addItemAsync, rimuovendo la sua piastrella nella visualizzazione catalogo e ogni eventuale prompt di prossimità assegnato. Questa funzione può essere chiamata solo da 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)

Aggiunge un prompt di prossimità sul adornee dato, il quale attiverà la visualizzazione di acquisto dell'articolo, dato l'ID della rispettiva risorsa. Utilizzabile come alternativa alla visualizzazione di catalogo 2D, al fine di incoraggiare gli utenti a scoprire gli articoli nell'ambiente 3D.

Attenzione: ciascun articolo deve essere aggiunto tramite addItemAsync prima di procedere all'assegnazione di un pulsante di prossimità. Vedere anche removeProximityButton al fine di rimuovere il prompt di prossimità da un oggetto.

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

removeItem(assetId:number)

Rimuove un prompt di prossimità generato attraverso addProximityButton. Questa funzione può essere chiamata solo da 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:funzione):booleano

Imposta la funzione di selezione sortFunction da utilizzare nella visualizzazione catalogo. La funzione di selezione fornita può utilizzare una logica basata sulle informazioni relative all'Articolo, ad esempio price o title. Questa funzione può essere chiamata solo da un LocalScript.

Ecco alcuni esempi di selezione dal catalogo:

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.ControlsCodici Chiave:table)

Configura i valori delle chiavi e dei pulsanti per ottenere interazioni con lo stand merci. Il primo parametro deve essere un enum MerchBooth.Controls e il secondo parametro una tabella contenente le chiavi keyboarde/o gamepadcon i corrispondenti Enum.KeyCodeenum.

Enum ( 「 controllo 」)keyCodesChiavi/valori predefiniti
MerchBooth.Controls.ProximityPromptskeyboard = Enum.KeyCode.E
gamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.OpenMerchBoothquesto gamepad = Enum.keyCode.ButtonY
MerchBooth.Controls.CloseMerchBoothquesto gamepad = Enum.keyCode.ButtonY
MerchBooth.Controls.Filterquesto gamepad = Enum.keyCode.ButtonY
MerchBooth.Controls.ViewItemquesto gamepad = Enum.keyCode.ButtonY
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():

Apre la finestra dello stand merci (se chiusa) e consente di navigare nella visualizzazione catalogo. Questa funzione può essere chiamata solo da 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)

Naviga nella visualizzazione del singolo articolo del itemIddato, aprendo la finestra dello stand merci se la stessa è chiusa. Questa funzione può essere chiamata solo da 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:booleano)

Attiva l'interruttore on/off del pulsante del catalogo sul lato destro dello schermo. Utile quando si implementa un pulsante personalizzato o quando si limita l'aspetto del merch booth ad alcune regioni o prompt di prossimità. Può essere chiamato solo da un LocalScript.

LocalScript

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

isMerchBoothOpen

isMerchBoothOpen():Tuples

Restituisce true se il catalogo o la visualizzazione articoli sono aperti. Se la visualizzazione articoli è aperta, l'ID di risorsa dell'articolo viene restituito come secondo valore. Questa funzione può essere chiamata solo da 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():

Chiude la finestra dello stand merci. Questa funzione può essere chiamata solo da un LocalScript.

LocalScript

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

isMerchBoothEnabled

isMerchBoothEnabled():booleano

Questa funzione è utilizzabile in concomitanza con setEnabled al fine di verificare se lo stand merci sia attualmente abilitato o meno. Può essere chiamato solo da un LocalScript.

setEnabled

setEnabled(isEnabled:booleano)

Consente di impostare se l'intero stand merci sia abilitato o meno. Quando è disabilitata, questa funzione rimuove l'intera UI, tra cui i prompt di prossimità, e disconnette tutti gli eventi. Questa funzione può essere chiamata solo da un LocalScript.

LocalScript

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

Eventi

itemAdded

itemadded(assetId:number, itemInfo:table):RBXScriptSignal

Si accende quando un articolo viene aggiunto tramite addItemAsync. Questo evento può essere collegato solo in un Script.

Parametri
assetId: numberID della risorsa dell'articolo.
itemInfo: tableDizionario delle informazioni sugli articoli, ad esempio priceo 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

Si accende quando un articolo viene rimosso attraverso removeItem. Questo evento può essere collegato solo in un Script.

Parametri
assetId: numberID della risorsa dell'articolo.
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

Si accende quando la visualizzazione catalogo o la visualizzazione dettagli dell'articolo sono aperti.

LocalScript

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

merchBoothClosed

merchBoothClosed():RBXScriptSignal

Si accende quando la visualizzazione catalogo o la visualizzazione dettagli dell'articolo sono chiusi.

LocalScript

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

catalogViewOpened

catalogViewOpened():RBXScriptSignal

Si accende quando la visualizzazione catalogo è aperta.

LocalScript

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

catalogViewClosed

catalogViewClosed():RBXScriptSignal

Si accende quando la visualizzazione catalogo è chiusa.

LocalScript

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

itemViewOpened

itemViewOpened():RBXScriptSignal

Si accende quando la visualizzazione dettagli dell'articolo è aperta.

LocalScript

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

itemViewClosed

itemViewClosed():RBXScriptSignal

Si accende quando la visualizzazione dettagli dell'articolo è chiusa.

LocalScript

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