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:
Dalla scheda Visualizza, aprire il Pannello degli strumenti e selezionare la scheda Marketplace.
Assicurarsi che la selezione dei modelli sia selezionata, quindi fare clic sul pulsante Vedi tutto per le Categorie.
Individuare e fare clic sulla piastrella DEV MODULES.
Individuare il modulo Stand merci e fare clic su di esso, oppure trascinarlo e lasciarlo nella visualizzazione 3D.
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:
In StarterPlayerScripts, crea un nuovo LocalScript e rinominalo in ConfigureMerchBooth.
Incolla il seguente codice nel nuovo 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})
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.
Crea un Script all'interno del ServerScriptService e incollalo nel seguente codice.
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in ipairs(items) dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenprint(errorMessage)endendCopia gli ID delle risorse degli oggetti dall'URL del sito web del Negozio Avatar. Ad esempio, l'ID del cappellino da baseball Roblox è 607702162.
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 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
I Pass
L'aggiunta di pass richiede gli ID di pass, che sono ubicati nel (Pannello di creazione)[https://create.roblox.com/creation].
Crea un Script all'interno del ServerScriptService e incollalo nel seguente codice.
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)endendNaviga nel Pannello di creazione e seleziona l'esperienza.
Nella colonna a sinistra, fai clic sugli Oggetti associati, poi seleziona PASSES.
Fai clic con il tasto destro su un pass e seleziona Copia ID risorsa.
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 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
Developer Products
L'aggiunta di prodotti sviluppatore richiede gli ID prodotto che sono reperibili nel Pannello di creazione.
Crea un Script all'interno del ServerScriptService e incollalo nel seguente codice.
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)endendNaviga nel Pannello di creazione e seleziona l'esperienza.
Nella colonna a sinistra, fai clic sugli Oggetti associati, poi seleziona DEVELOPER PRODUCTS.
Fai clic con il tasto destro del mouse su un prodotto e seleziona Copia ID risorsa.
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 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
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:
Crea un nuovo pulsante come spiegato in Input pulsanti e testo.
Crea un LocalScript come figlio dell'oggetto pulsante.
Incolla il seguente codice nel nuovo 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)
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:
Crea un blocco Anchored che circondi la regione di rilevamento.
Utilizzando l'Editore etichetta, accessibile dalla scheda Visualizza, applica l'etichetta AcquistaRegione al blocco affinché CollectionService lo rilevi.
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.
Inserisci un nuovo LocalScript sotto StarterPlayerScripts.
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.
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
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.SpheremyParticleEmitter.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.
Chiave | Tipo | Descrizione |
---|---|---|
assetId | numero | L'ID di catalogo dell'oggetto, così come passato a addItemAsync. |
title | stringa | Il titolo dell'oggetto così come appare nel catalogo. |
price | numero | Prezzo dell'oggetto in Robux. |
description | stringa | Descrizione dell'oggetto così come appare nel catalogo. |
assetType | stringa | Stringa che rappresenta il tipo di accessorio visualizzato. |
isOwned | bool | Se l'utente corrente possiede l'articolo o meno. |
creatorName | stringa | Creatore oggetto, così come appare nel catalogo. |
creatorType | Enum.CreatorType | Tipo 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.
Nome | Sommario |
---|---|
ProximityPrompts | Il pulsante chiave e/o gamepad serve ad aprire la visualizzazione dell'articolo quando i prompt di prossimità sono configurati. |
OpenMerchBooth | I pulsanti chiave e/o gamepad servono ad aprire lo stand merci. |
CloseMerchBooth | I pulsanti chiave e/o gamepad servono a chiudere lo stand merci. |
Filter | Il pulsante chiave e/o gamepad servono ad utilizzare il pulldown predefinito Filtro nell'area superiore sinistra del catalogo di visualizzazione. |
ViewItem | Il 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
Chiave | Descrizione | Predefinito |
---|---|---|
backgroundColor | Colore principale dello sfondo della finestra (Color3). | [0, 0, 0] |
raggio d'angolo</td> <td>Raggio dell'angolo della finestra principale (Datatype.UDim`). | (0, 16) | |
cornerRadiusSmall | Raggio dell'angolo degli elementi all'interno della finestra (UDim). | (0, 8) |
textFont | Font del "testo principale", ad esempio prezzi, descrizioni e altre informazioni generali (Enum.Font). | Gotham |
textSize | Dimensione del testo principale. | 14 |
textColor | Colore del testo principale (Color3). | [255, 255, 255] |
secondaryTextColor | Colore utilizzato per alcune variazioni del testo principale (Color3). | [153, 153, 158] |
headerFont | Font del testo dell'intestazione utilizzata per la finestra del titolo (Enum.Font). | GothamMedio |
headerTextSize | Dimensione del testo dell'intestazione utilizzata per il titolo della finestra. | 18 |
titleFont | Font del testo del titolo utilizzato per i nomi degli articoli all'interno della pagina dei dettagli dell'articolo (Enum.Font). | GothamBold |
titleTextSize | Dimensione del testo del titolo utilizzato per i nomi degli articoli all'interno della pagina dei dettagli dell'articolo. | 28 |
buttonColor | Colore 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] |
buttonTextColor | Colore 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] |
secondaryButtonColor | Colore 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] |
secondaryButtonTextColor | Colore 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] |
inactiveButtonColor | Colore dello sfondo per tutti i pulsanti in uno stato non cliccabile (Color3). | [153, 153, 158] |
inactiveButtonTextColor | Colore del testo per tutti i pulsanti in uno stato non cliccabile (Color3). | [255, 255, 255] |
particleEmitterTemplate | ParticleEmitterEsempio personalizzato facoltativo che appare e viene riprodotto su equip. |
Prompt di prossimità
Chiave | Descrizione | Predefinito |
---|---|---|
proximityButtonActivationDistance | Distanza massima cui il personaggio di un giocatore può trovarsi rispetto all'](#proximity-prompts)adornee [del prompt affinché il prompt appaia. | 10 |
proximityButtonExclusivity | Enum.ProximityPromptExclusivityspecifica quali prompt possono essere visualizzati contemporaneamente. | OnePerButton |
proximityButtonOffset | Dislocamento pixel applicato all'UI del prompt (Vector2). | (0, 0) |
proximityButtonPulseCount | Quante "pulsazioni" si verificano intorno ai pulsanti di prossimità prima di fermarsi. | 3 |
Comportamento
Chiave | Descrizione | Predefinito |
---|---|---|
useFilters | Attiva o disattiva il pulsante del Filtro visualizzabile nel catalogo. | vero |
disableCharacterMovement | Se true, impedisce al personaggio di muoversi mentre lo stand merci è aperto. | falso |
hideOtherUis | Se true, lo stand merci nasconde tutto ScreenGuis e CoreGuis quando appare l'interfaccia utente. | vero |
closeWhenFarFromPrompt | Se 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.ProximityPrompts | keyboard = Enum.KeyCode.E gamepad = Enum.KeyCode.ButtonY |
MerchBooth.Controls.OpenMerchBooth | questo gamepad = Enum.keyCode.ButtonY |
MerchBooth.Controls.CloseMerchBooth | questo gamepad = Enum.keyCode.ButtonY |
MerchBooth.Controls.Filter | questo gamepad = Enum.keyCode.ButtonY |
MerchBooth.Controls.ViewItem | questo 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 thenMerchBooth.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: number | ID della risorsa dell'articolo. |
itemInfo: table | Dizionario 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: number | ID 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)