Verkaufsstand

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

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:

  1. Von der Ansicht-Registerkarte öffne die Toolbox und wähle die Creator-Store -Registerkarte aus.

    Toolbox toggle button in Studio
  2. Stellen Sie sicher, dass die Sortierung der Modelle ausgewählt ist, dann klicken Sie auf die Schaltfläche Alle sehen für Kategorien .

  3. Suchen und klicken Sie auf die Entwickler-Module -Kachel.

  4. Suchen Sie das Merch Booth -Modul und klicken Sie darauf oder ziehen Sie es in die 3D-Ansicht.

  5. 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:

  1. In StarterPlayerScripts erstellen Sie ein neues LocalScript und benennen es in ConfigureMerchBooth um.

  2. Füge den folgenden Code in das neue Skript, das. PL: die Skriptsein.

    LocalScript - MerchBooth konfigurieren

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

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.

  1. Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Codesein.

    Skript - Füge Avatar-Assets hinzu

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Kopiere die Artikel-Asset-IDs von ihrer Avatar-Shop Website-URL. Zum Beispiel ist die ID von Roblox-Baseballkappe 607702162 .

  3. 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 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

Änderungsprotokoll

Das Hinzufügen von Pässen erfordert Pass-IDs, die sich im Creator-Dashboard befinden können.

  1. Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Codesein.

    Skript - Pässe hinzufügen

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Navigiere zum Creator-Dashboard und wähle das Erlebnis aus.

  3. Wählen Sie in der linken Spalte unter Monetarisierung Pässe .

  4. Bewegen Sie den Mauszeiger über eine Passminiaturansicht, klicken Sie auf die Schaltfläche und wählen Sie Kopiere Asset-ID aus dem Kontextmenü.

  5. 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ü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

Entwicklerprodukte

Das Hinzufügen von Entwicklerprodukten erfordert Produkt-IDs, die sich im Creator-Dashboard befinden können.

  1. Erstellen Sie ein Script innerhalb von ServerScriptService und fügen Sie den folgenden Codesein.

    Skript - Entwicklerprodukte hinzufügen

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Navigiere zum Creator-Dashboard und wähle das Erlebnis aus.

  3. Wählen Sie in der linken Spalte unter Monetarisierung Entwicklerprodukte .

  4. 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ü.

  5. 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ü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

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:

  1. Erstellen Sie eine neue Schaltfläche wie in Schaltflächen beschrieben.

  2. Erstellen Sie ein LocalScript als Kind des Button-Objekts.

  3. Füge den folgenden Code in das neue Skript, das. PL: die Skriptsein.

    LocalScript - Benutzerdefinierter Katalog-Button

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Standard-Katalog-Button entfernen
    MerchBooth.toggleCatalogButton(false)
    -- Verbinde den benutzerdefinierten Button
    script.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:

  1. 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
  2. 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.

  3. 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.

  4. Füge einen neuen LocalScript unter StarterPlayerScripts ein.

  5. 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 Skript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Standard-Katalog-Button entfernen
    MerchBooth.toggleCatalogButton(false)
    local function setupRegion(region: BasePart)
    region.Touched:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.openMerchBooth()
    end
    end)
    region.TouchEnded:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    MerchBooth.closeMerchBooth()
    end
    end)
    end
    -- Durch vorhandene gekennzeichnete Shop-Regionen iterieren
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Erkennen, wenn nicht gestreamte Shop-Regionen streamen
    CollectionService: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.Sphere
myParticleEmitter.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.

SchlaveTypBeschreibung
assetIdzahlKatalog-ID des Artikel, wie an addItemAsync übergeben.
titlestringArtikeltitel, wie er im Katalog erscheint.
pricezahlArtikelpreis in Robux.
descriptionstringArtikelbeschreibung, wie sie im Katalog erscheint.
assetTypestringSchnur, die den Zubehörtyp des Artikels darstellt.
isOwnedboolOb der aktuelle Spieler das Artikelbesitzt.
creatorNamestringArtikelersteller wie im Katalog angezeigt.
creatorTypeEnum.CreatorTypeTyp 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
ProximityPromptsTaste und/oder Gamepad-Taste, um die Artikelansicht zu öffnen, wenn Näherungshinweise konfiguriert sind.
OpenMerchBoothTaste und/oder Gamepad-Taste, um den Merch-Stand zu öffnen.
CloseMerchBoothTaste und/oder Gamepad-Taste, um den Merch-Stand zu schließen.
FilterTaste und/oder Gamepad-Taste, um den Standard- Filter in der oberen linken Ecke des Ansichtherunterzuziehen.
ViewItemTaste 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.

SchlaveBeschreibungStandardmäßig
backgroundColorHauptarrièrefarbe des Fensters ( Color3 ).[0, 0, 0]
cornerRadiusEckenradius für das Hauptfenster ( UDim ).(0, 16)
cornerRadiusSmallEckenradius für Elemente innerhalb des Fensters ( UDim ).(0, 8)
textFontSchriftart des "Haupttextes" wie Preise, Beschreibungen und andere allgemeine Informationen ( Enum.Font ).Gotham
textSizeGröße des Haupttextes.14
textColorFarbe des Haupttextes ( Color3 ).[255, 255, 255]
secondaryTextColorFarbe, die für einige Variationen des Haupttextes verwendet wird ( Color3 ).[153, 153, 158]
headerFontSchriftart des Header-Textes, der für den Fenstertitel verwendet wird ( Enum.Font ).GothamMedium
headerTextSizeGröße des Kopfzeilentextes, der für den Fenstertitel verwendet wird.18
titleFontSchriftart des Titeltextes, der für Artikelnamen auf der Detailseite des Artikels verwendet wird (Enum.Font).GothamBold
titleTextSizeGröße des Titeltextes, der für Artikelnamen auf der Artikeldetailseite verwendet wird.28
buttonColorHintergrundfarbe für größere Schaltflächen in einem anklickbaren Zustand, wie die Hauptkaufschaltfläche in der Artikelansicht ( Color3 ).[255, 255, 255]
buttonTextColorTextfarbe für größere Schaltflächen in einem anklickbaren Zustand, wie die Hauptkaufschaltfläche in der Artikelansicht ( Color3 ).[0, 0, 0]
secondaryButtonColorHintergrundfarbe für kleinere Schaltflächen wie die Preisschaltflächen in der Katalogansicht oder die Schaltfläche Anprobieren (Color3).[34, 34, 34]
secondaryButtonTextColorTextfarbe für kleinere Schaltflächen wie die Preisschaltflächen im Katalogansicht oder die Schaltfläche Anprobieren (Color3).[255, 255, 255]
inactiveButtonColorHintergrundfarbe für alle Schaltflächen in einem nicht anklickbaren Zustand ( Color3 ).[153, 153, 158]
inactiveButtonTextColorTextfarbe für alle Schaltflächen in einem nicht anklickbaren Zustand ( Color3 ).[255, 255, 255]
particleEmitterTemplateOptionale 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.ProximityPromptskeyboard = Enum.KeyCode.E``gamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.OpenMerchBoothgamepad = Enum.KeyCode.ButtonY
MerchBooth.Controls.CloseMerchBoothgamepad = Enum.KeyCode.ButtonB
MerchBooth.Controls.Filtergamepad = Enum.KeyCode.ButtonX
MerchBooth.Controls.ViewItemgamepad = Enum.KeyCode.ButtonA
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 then
MerchBooth.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: numberArtikel-Asset-ID.
itemInfo: tableWö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: numberArtikel-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)