Das MerchBooth Entwicklermodul lässt dich Avatar-Assets , Pässe und Entwicklerprodukte zum Verkauf anbieten, direkt innerhalb deiner Erlebnis.Spieler können Elemente durchsuchen, Vorschau-Assets auf ihren eigenen Avatar anzeigen, Artikel kaufen und sie sofort verwenden oder ausrüsten - alles ohne deine Erlebniszu verlassen.Dies kann dir helfen, deine Erfahrung zu monetarisieren und durch die 40% Affiliate-Gebühr, die mit dem Verkauf von Gegenständen anderer Ersteller verbunden ist, Einnahmen zu erzielen.
Modul-Verwendung
Installationen
Um das MerchBooth -Modul in einem Erlebnis zu verwenden:
Stellen Sie sicher, dass die Sortierung der Modelle ausgewählt ist, dann klicken Sie auf die Schaltfläche Alle sehen für Kategorien .
Suchen und klicken Sie auf die Entwickler-Module -Kachel.
Suchen Sie das Merch Booth -Modul und klicken Sie darauf oder ziehen Sie es in die 3D-Ansicht.
In dem Explorer Fenster, verschiebe das gesamte MerchBooth Modell in ServerScriptService .Wenn das Erlebnis ausgeführt wird, verteilt sich das Modul auf verschiedene Dienste und beginnt zu laufen.
Konfigurieren
Das Modul ist vordefiniert, um für die meisten Anwendungsfälle zu arbeiten, aber es kann durch die configure-Funktion leicht angepasst werden.Zum Beispiel, um ein helleres Thema zu erstellen und den Standard- Filter -Button in der oberen linken Ecke des Ansichtzu deaktivieren:
In StarterPlayerScripts erstellen Sie ein neues LocalScript und benennen es in ConfigureMerchBooth um.
Füge den folgenden Code in das neue Skript, das. PL: die Skriptsein.
LocalScript - MerchBooth konfigurierenlocal 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})
Artikel hinzufügen
Was ist ein Merch-Stand ohne Merch? Die folgenden Abschnitte zeigen, wie du Avatar-Assets, Pässe und Entwicklerprodukte zu deinem Merch-Stand hinzufügst.
Avatar-Assets
Gegenstände wie Kleidung und Accessoires müssen durch ihre Asset-ID , die sich auf der Detailseite des Artikelauf der Avatar-Shop-Seite befindet, hinzugefügt werden.
Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Codesein.
Skript - Füge Avatar-Assets hinzulocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendKopiere die Artikel-Asset-IDs von ihrer Avatar-Shop Website-URL. Zum Beispiel ist die ID von Roblox-Baseballkappe 607702162 .
Füge jede kopierte ID in eine mit Kommata getrennte Liste innerhalb der items Tabelle ein.Standardmäßig werden Elemente in der Katalogansicht in alphabetischer Reihenfolge angezeigt, aber du kannst die Sortierung anpassen, indem du setCatalogSort verwendest.
Skript - Füge Avatar-Assets hinzulocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {607702162, -- Roblox-Baseballkappe4819740796, -- Robox1374269, -- Kätzchen-Ohren11884330, -- Nerd-Gläser10476359, -- Papierhut}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
Änderungsprotokoll
Das Hinzufügen von Pässen erfordert Pass-IDs, die sich im Creator-Dashboard befinden können.
Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Codesein.
Skript - Pässe hinzufügenlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendNavigiere zum Creator-Dashboard und wähle das Erlebnis aus.
Wählen Sie in der linken Spalte unter Monetarisierung Pässe .
Bewegen Sie den Mauszeiger über eine Passminiaturansicht, klicken Sie auf die Schaltfläche ⋯ und wählen Sie Kopiere Asset-ID aus dem Kontextmenü.
Füge jede kopierte ID in eine mit Kommata getrennte Liste innerhalb der Tabelle und ein, um als zweiten Parameter für addItemAsync anzugeben, dass die Artikel durchgehen.Standardmäßig werden Elemente in der Katalogansicht in alphabetischer Reihenfolge angezeigt, aber die Sortierung kann über setCatalogSort angepasst werden.
Skript - Pässe hinzufügenlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {4343758, -- Kaltfeuer-Rüstung28521575, -- Schleimschild}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
Entwicklerprodukte
Das Hinzufügen von Entwicklerprodukten erfordert Produkt-IDs, die sich im Creator-Dashboard befinden können.
Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Codesein.
Skript - Entwicklerprodukte hinzufügenlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendNavigiere zum Creator-Dashboard und wähle das Erlebnis aus.
Wählen Sie in der linken Spalte unter Monetarisierung Entwicklerprodukte .
Bewegen Sie den Mauszeiger über die Miniaturansicht eines Produkts, klicken Sie auf die Schaltfläche ⋯ und wählen Sie Kopiere Asset-ID aus dem Kontextmenü.
Füge jede kopierte ID in eine mit Kommata getrennte Liste innerhalb der Tabelle und ein, um als zweiten Parameter anzugeben, dass die Artikel Entwicklerprodukte sind.Standardmäßig werden Elemente in der Katalogansicht in alphabetischer Reihenfolge angezeigt, aber Sie können die Sortierung anpassen, indem Sie setCatalogSort verwenden.
Skript - Entwicklerprodukte hinzufügenlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {1236602053, -- Mana auffüllen1257880672, -- Heiltrank}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
Benutzerdefinierte Katalogschaltfläche
Standardmäßig lässt ein Rechts- Katalog-Button Spieler den Stand jederzeit öffnen.

In einigen Fällen kann es nützlich sein, diesen Knopf zu entfernen und deinen besitzenzu verbinden:
Erstellen Sie eine neue Schaltfläche wie in Schaltflächen beschrieben.
Erstellen Sie ein LocalScript als Kind des Button-Objekts.
Füge den folgenden Code in das neue Skript, das. PL: die Skriptsein.
LocalScript - Benutzerdefinierter Katalog-Buttonlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Standard-Katalog-Button entfernenMerchBooth.toggleCatalogButton(false)-- Verbinde den benutzerdefinierten Buttonscript.Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
Kaufbare Regionen
Eine hilfreiche Möglichkeit, Einkäufe in deiner Erfahrung zu steuern, besteht darin, den Merch-Stand automatisch anzuzeigen, wenn ein Spieler einen Bereich betritt.
Um eine kaufbare Region zu erstellen:
Erstelle einen Anchored Block, der die Erkennungsregion umfasst.Stellen Sie sicher, dass der Block hoch genug ist, um mit den PrimaryPart der Charaktermodelle zusammenzustoßen ( HumanoidRootPart standardmäßig).
Block, um zu erkennen, wenn Spieler die Vorderseite des Shop-Schalters erreichen Mit der Tags-Sektion der Eigenschaften des Blöckeoder dem Tag-Editor von Studio wird der Tag an den Block angepasst, damit er ihn erkennt.
Stelle das Teil Transparency auf die maximale Länge ein, um es den Spielern in der Erlebnisauszublenden.Deaktivieren Sie auch seine CanCollide und CanQuery Eigenschaften, damit sich Objekte nicht physisch mit ihm stoßen und Raycasts es nicht erkennen.
Füge einen neuen LocalScript unter StarterPlayerScripts ein.
Füge im neuen Skript, das. PL: die Skriptsden folgenden Code ein, der die Ereignisse Touched und TouchEnded verwendet, um zu erkennen, wann Charaktere die Region betreten/verlassen, und ruft openMerchBooth und closeMerchBooth auf, um die grafische Benutzeroberflächezu öffnen/zu schließen.
Lokales Skriptlocal Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Standard-Katalog-Button entfernenMerchBooth.toggleCatalogButton(false)local function setupRegion(region: BasePart)region.Touched:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.openMerchBooth()endend)region.TouchEnded:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.closeMerchBooth()endend)end-- Durch vorhandene gekennzeichnete Shop-Regionen iterierenfor _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(region)end-- Erkennen, wenn nicht gestreamte Shop-Regionen streamenCollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)
Näherungsaufforderungen
Als Alternative zum Ansichtkannst du Näherungsaufforderungen über In-Experience-Objekte hinzufügen.Dies ermutigt Spieler, Gegenstände in der 3D-Umgebung zu entdecken, sie auf ihren eigenen Avatar vorzubestellen, zu kaufen und sofort auszurüsten.Siehe addProximityButton für Details.
Ändere den Ausrüstungseffekt
Standardmäßig zeigt der Merch-Stand einen generischen Funkeln-Effekt, wenn ein Spieler ein Element aus ihm ausrüstet.Um den Effekt zu ändern, setze particleEmitterTemplate auf deine eigene Instanz eines ParticleEmitter in einem konfigurieren Anruf.
LocalScript - MerchBooth konfigurieren
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})
GUI-Sichtbarkeit
Standardmäßig versteckt der Merch-Stand alle ScreenGuis und CoreGuis wenn seine Benutzeroberfläche angezeigt wird, einschließlich des Chats, der Bestenliste und anderer von Roblox eingefügter Inhalte.Wenn du dieses Verhalten deaktivieren möchtest, lege hideOtherUis in einem false Aufruf auf fest.
LocalScript - MerchBooth konfigurieren
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({hideOtherUis = false})
Zeichenbewegung
Es kann vorteilhaft sein, einen Charakter daran zu hindern, sich zu bewegen, während er sich auf dem Merch-Stand befindet.Dies kann durch Festlegen von disableCharacterMovement auf true in einem Konfigurieren Anruf erfolgen.
LocalScript - MerchBooth konfigurieren
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({disableCharacterMovement = true})
API-Referenz
Arten
Artikel
Artikel im Merch-Stand werden durch ein Wörterbuch mit den folgenden Schlüssel-Wert-Paaren repräsentiert.Artikel können durch die getItems Funktion oder das itemadded Ereignis gesammelt werden.
Schlave | Typ | Beschreibung |
---|---|---|
assetId | zahl | Katalog-ID des Artikel, wie an addItemAsync übergeben. |
title | string | Artikeltitel, wie er im Katalog erscheint. |
price | zahl | Artikelpreis in Robux. |
description | string | Artikelbeschreibung, wie sie im Katalog erscheint. |
assetType | string | Schnur, die den Zubehörtyp des Artikels darstellt. |
isOwned | bool | Ob der aktuelle Spieler das Artikelbesitzt. |
creatorName | string | Artikelersteller wie im Katalog angezeigt. |
creatorType | Enum.CreatorType | Typ des Erstellers für das Artikel. |
Nummern
MerchBooth.Steuerung
Verwendet zusammen mit setControlKeyCodes, um die Tasten und Gamepad-Tasten für das Interagieren mit dem Merch-Stand anzupassen.
Namen | Übersicht |
---|---|
ProximityPrompts | Taste und/oder Gamepad-Taste, um die Artikelansicht zu öffnen, wenn Näherungshinweise konfiguriert sind. |
OpenMerchBooth | Taste und/oder Gamepad-Taste, um den Merch-Stand zu öffnen. |
CloseMerchBooth | Taste und/oder Gamepad-Taste, um den Merch-Stand zu schließen. |
Filter | Taste und/oder Gamepad-Taste, um den Standard- Filter in der oberen linken Ecke des Ansichtherunterzuziehen. |
ViewItem | Taste und/oder Gamepad-Taste, um eine bestimmte Ansichtzu öffnen. |
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1})
Funktionen
konfigurieren
konfigurieren(config: table )
Übernimmt Standard-Client-Seiten-Konfigurationsoptionen durch die folgenden Schlüssel-/Werte in der config Tabelle.Diese Funktion kann nur von einem LocalScript aufgerufen werden.
Schlave | Beschreibung | Standardmäßig |
---|---|---|
backgroundColor | Hauptarrièrefarbe des Fensters ( Color3 ). | [0, 0, 0] |
cornerRadius | Eckenradius für das Hauptfenster ( UDim ). | (0, 16) |
cornerRadiusSmall | Eckenradius für Elemente innerhalb des Fensters ( UDim ). | (0, 8) |
textFont | Schriftart des "Haupttextes" wie Preise, Beschreibungen und andere allgemeine Informationen ( Enum.Font ). | Gotham |
textSize | Größe des Haupttextes. | 14 |
textColor | Farbe des Haupttextes ( Color3 ). | [255, 255, 255] |
secondaryTextColor | Farbe, die für einige Variationen des Haupttextes verwendet wird ( Color3 ). | [153, 153, 158] |
headerFont | Schriftart des Header-Textes, der für den Fenstertitel verwendet wird ( Enum.Font ). | GothamMedium |
headerTextSize | Größe des Kopfzeilentextes, der für den Fenstertitel verwendet wird. | 18 |
titleFont | Schriftart des Titeltextes, der für Artikelnamen auf der Detailseite des Artikels verwendet wird (Enum.Font). | GothamBold |
titleTextSize | Größe des Titeltextes, der für Artikelnamen auf der Artikeldetailseite verwendet wird. | 28 |
buttonColor | Hintergrundfarbe für größere Schaltflächen in einem anklickbaren Zustand, wie die Hauptkaufschaltfläche in der Artikelansicht ( Color3 ). | [255, 255, 255] |
buttonTextColor | Textfarbe für größere Schaltflächen in einem anklickbaren Zustand, wie die Hauptkaufschaltfläche in der Artikelansicht ( Color3 ). | [0, 0, 0] |
secondaryButtonColor | Hintergrundfarbe für kleinere Schaltflächen wie die Preisschaltflächen in der Katalogansicht oder die Schaltfläche Anprobieren (Color3). | [34, 34, 34] |
secondaryButtonTextColor | Textfarbe für kleinere Schaltflächen wie die Preisschaltflächen im Katalogansicht oder die Schaltfläche Anprobieren (Color3). | [255, 255, 255] |
inactiveButtonColor | Hintergrundfarbe für alle Schaltflächen in einem nicht anklickbaren Zustand ( Color3 ). | [153, 153, 158] |
inactiveButtonTextColor | Textfarbe für alle Schaltflächen in einem nicht anklickbaren Zustand ( Color3 ). | [255, 255, 255] |
particleEmitterTemplate | Optionale benutzerdefinierte ParticleEmitter Instanz, die erscheint und auf dem Ausrüstungs spielt. |
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.configure({backgroundColor = Color3.fromRGB(255, 255, 255),textSize = 16,textFont = Enum.Font.Roboto,textColor = Color3.fromRGB(20, 20, 20),hideOtherUis = false,})
addItemAsync
addItemAsync(assetId: number , productType: Enum.InfoType , hideFromCatalog: boolean )
Fügt asynchron ein Element zum Merch-Stand hinzu, damit es für den Kauf in der Erlebnisberechtigt ist. assetId ist die Asset-ID des Artikels, productType ist die Enum.InfoType Liste des Artikels und hideFromCatalog kann verwendet werden, um den Artikel in der Ansichtauszublenden.
Siehe Hinzufügen von Artikeln für Details, da die Nutzung für Assets gegenüber Spielpässen oder Entwicklerprodukten leicht unterschiedlich ist.
Skript - Füge Avatar-Assets hinzu
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Roblox-Baseballkappe
4819740796, -- Robox
1374269, -- Kätzchen-Ohren
11884330, -- Nerd-Gläser
10476359, -- Papierhut
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Skript - Pässe hinzufügen
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- Kaltfeuer-Rüstung
28521575, -- Schleimschild
}
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
Skript - Entwicklerprodukte hinzufügen
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Mana auffüllen
1257880672, -- Heiltrank
}
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
erhaltenItems
getItems(): table
Gibt ein Wörterbuch zurück, das alle derzeit registrierten Artikel darstellt.Jede Schlüssel ist die Asset-ID eines Elements als String, und der Wert jedes Schlüssels ist ein Artikel.Diese Funktion kann nur von einem Script aufgerufen werden.
Skript
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
Artikel entfernen
removeItem(assetId: number )
Entfernt ein Element, das zuvor mit addItemAsync hinzugefügt wurde, und entfernt seine Kachel im Katalogansicht und alle Näherungsaufforderungen, die ihr zugewiesen wurden.Diese Funktion kann nur von einem Script aufgerufen werden.
Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Nach einiger Zeit entferne das Artikel
task.wait(5)
MerchBooth.removeItem(4819740796)
end
Zugriffsknopf hinzufügenProximity
addProximityButton(adornee: BasePart | Model | Attachment , assetId: number )
Fügt einen Näherungsaufforderung über die angegebene adornee hinzu, die die Anzeige der Ansichteines Artikels auslöst, angesichts seiner ID.Dies kann als Alternative zum Ansichtverwendet werden, um Spieler dazu zu ermutigen, Gegenstände in der 3D-Umgebung zu entdecken.
Beachten Sie, dass ein Element über addItemAsync hinzugefügt werden muss, bevor ein Näherungsschaltfläche zugewiesen werden kann.Siehe auch removeProximityButton, um die Näherungsmeldung von einem Objekt zu entfernen.
Skript
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
entfernenProximityButton
entfernenProximityButton(adornee: BasePart | Model | Attachment )
Entfernt eine Näherungsaufforderung, die durch addProximityButton erzeugt wurde. Diese Funktion kann nur von einem Script.
Skript
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
-- Nach einiger Zeit entferne die Aufforderung
task.wait(5)
MerchBooth.removeProximityButton(item)
end
Katalogsortierung einstellen
setCatalogSort(sortFunction: function ): boolean
Legt die Sortierfunktion sortFunction fest, die in der Ansichtverwendet werden soll.Die bereitgestellte Sortierungsfunktion kann auf der Grundlage von Artikel -Info wie price oder title logisch sein.Diese Funktion kann nur von einem LocalScript aufgerufen werden.
Hier sind einige Beispiele für die Sortierung des Katalogs:
Preis von niedrig bis hoch
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Preis von hoch bis niedrig
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Preis von niedrig bis hoch & alphabetisch
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(Kontrolle: MerchBooth.Controls, Schlüsselcodes: table )
Konfiguriert die Tasten- und Knopfwerte für Interaktionen mit dem Merch-Stand.Der erste Parameter muss ein MerchBooth.Controls Enum sein und der zweite Parameter eine Tabelle mit den Schlüsseln keyboard und/oder gamepad mit entsprechenden Enum.KeyCode Enums.
Enum ( control ) | Standard keyCodes Schlüssel/Werte |
---|---|
MerchBooth.Controls.ProximityPrompts | keyboard = Enum.KeyCode.E``gamepad = Enum.KeyCode.ButtonY |
MerchBooth.Controls.OpenMerchBooth | gamepad = Enum.KeyCode.ButtonY |
MerchBooth.Controls.CloseMerchBooth | gamepad = Enum.KeyCode.ButtonB |
MerchBooth.Controls.Filter | gamepad = Enum.KeyCode.ButtonX |
MerchBooth.Controls.ViewItem | gamepad = Enum.KeyCode.ButtonA |
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {keyboard = Enum.KeyCode.Q,gamepad = Enum.KeyCode.ButtonL1,})
offenMerchBooth
openMerchBooth()
Öffnet das Merch-Standfenster (wenn es geschlossen ist) und navigiert zur Ansicht. Diese Funktion kann nur von einem LocalScript aufgerufen werden.
Lokales Skript
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()
öffnenItemView
openItemView(itemId: number )
Navigiert zur einzelnen Artikelansicht des angegebenen itemId, öffnet das Merch-Standfenster, wenn es derzeit geschlossen ist.Diese Funktion kann nur von einem LocalScript aufgerufen werden.
Lokales Skript
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
Katalog-Button umschalten
toggleCatalogButton(aktiviert: boolean )
Schaltet auf/aus die Katalogschaltfläche auf der rechten Seite des Bildschirms.Dies ist nützlich, wenn du einen benutzerdefinierten Button implementierst oder das Aussehen des Merch-Standes auf Regionen oder Näherungsaufforderungen beschränkst.Kann nur von einem LocalScript aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.toggleCatalogButton(false)
istMerchBoothOffen
istMerchBoothOpen(): Tuple
Gibt true zurück, wenn entweder der Katalog oder die Artikelansicht geöffnet ist.Wenn die Artikelansicht geöffnet ist, wird die Asset-ID des Artikels als zweiter Wert zurückgegeben.Diese Funktion kann nur von einem LocalScript aufgerufen werden.
Lokales Skript
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
schließenMerchBooth
schließenMerchBooth()
Schließt das Merch-Standfenster. Diese Funktion kann nur von einem LocalScript aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))MerchBooth.closeMerchBooth()
istMerchBoothAktiviert
isMerchBoothEnabled(): boolean
Diese Funktion kann in Kombination mit setEnabled verwendet werden, um zu überprüfen, ob der Merch-Stand aktuell aktiviert ist oder nicht.Kann nur von einem LocalScript ausgerufen werden.
setAllowed aktiviert
setEnabled(aktiviert: boolean)
Legt fest, ob der gesamte Merch-Stand aktiviert ist oder nicht.Wenn deaktiviert, entfernt diese Funktion die gesamte UI, einschließlich Näherungsaufforderungen und trennt alle Ereignisse ab.Diese Funktion kann nur von einem LocalScript aufgerufen werden.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.setEnabled(false)end
Ereignisse
Artikel hinzugefügt
Feuert, wenn ein Artikel durch addItemAsync hinzugefügt wird. Dieses Ereignis kann nur in einem Script verbunden werden.
Parameter | |
---|---|
Asset-ID: number | Artikel-Asset-ID. |
itemInfo: table | Wörterbuch von Artikel Info wie price oder title . |
Skript
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)
Artikel entfernt
Feuert, wenn ein Artikel durch removeItem entfernt wird. Dieses Ereignis kann nur in einem Script verbunden werden.
Parameter | |
---|---|
Asset-ID: number | Artikel-Asset-ID. |
Skript
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)
merchBoothGeöffnet
Feuert, wenn entweder die Katalog oder Artikeldetailansicht geöffnet wird.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothOpened:Connect(function()
print("Booth view opened")
end)
merchBoothGeschlossen
Feuert, wenn entweder die Katalog- oder -Artikeldetailansicht geschlossen wird.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.merchBoothClosed:Connect(function()
print("Booth view closed")
end)
Katalogansicht geöffnet
Feuert, wenn die Katalogansicht geöffnet wird.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewOpened:Connect(function()
print("Catalog view opened")
end)
Katalogansicht geschlossen
Feuert, wenn die Katalogansicht geschlossen ist.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.catalogViewClosed:Connect(function()
print("Catalog view closed")
end)
itemViewGeöffnet
Feuert, wenn die Detailansicht des Elements geöffnet wird.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewOpened:Connect(function()
print("Item view opened")
end)
Artikelansicht geschlossen
Feuert, wenn die Detailansicht des Elements geschlossen ist.
Lokales Skript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.itemViewClosed:Connect(function()
print("Item view closed")
end)