Merch-Stand

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

Das MerchBooth-Entwicklermodul bietet Ihnen die Möglichkeit, Avatar-Assets , 2> Pässe2> und 5> Entwicklerprodukte5> direkt in Ihrem Erlebnis anzubieten. Spieler können Elemente durchsuc

Modul-Einsatz

Installation

Um das MerchBooth-Modul in einem Erlebnis zu verwenden:

  1. Von der Ansicht-Registerkarte öffnen Sie die Werkzeugkiste und wählen Sie die Creator-Store -Registerkarte.

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

  3. Suchen Sie die Dev-Module -Kachel und klicken Sie darauf.

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

  5. In dem Explorer-Fenster bewegen Sie das gesamte MerchBooth-Modell in ServerScriptService . Nach dem Laufen der Erlebniswird das Modul auf verschiedene Dienste verteilt und beginnt zu laufen.

Konfiguration

Das Modul ist voreingestellt, um für die meisten Anwendungsfälle zu arbeiten, aber es kann leicht über die Konfigurieren-Funktion anpassen werden. Zum Beispiel, um ein helleres Thema zu erstellen und den Standard Filter -Button in der oberen linken Ecke des Katalog-Ansichtsfensters zu deaktivieren:

  1. In StarterPlayerScripts erstellen Sie ein neues LocalScript und benennen Sie es zu Konfigurieren Sie MerchBooth um.

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

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

Gegenstände hinzufügen

Was ist ein Merch-Stand ohne Merch? Die folgenden Abschnitte erklären, wie Sie Avatar-Assets, Pässe und Entwicklerprodukte zu Ihrem Merch-Stand hinzufügen.

Avatar-Assets

Gegenstände wie Kleidung und Zubehör müssen durch ihre Asset-ID , die sich auf der Detailseite des Artikelim Avatar-Shop befindet, hinzugefügt werden.

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

    Script - Avatar-Assets 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. Kopiere die Element-IDs von der Avatar-Shop-Website-URL. Zum Beispiel ist die ID von Roblox Baseball Cap607702162 .

  3. Fügen Sie jede kopierte ID in eine Kombinationsliste innerhalb der items Tabelle ein. Standardmäßig erscheinen die Elemente in der Katalogansicht in alphabetischer Reihenfolge, aber Sie können die Sortierung anpassen, indem Sie setCatalogSort verwenden.

    Script - Avatar-Assets hinzufügen

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Roblox-Baseballkappe
    4819740796, -- Robox
    1374269, -- Kätzchenohren
    11884330, -- Nerd-Brille
    10476359, -- Papierhut
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Pässe

Das Hinzufügen von Pässen erfordert Pass-IDs, die in dem Creator-Dashboard liegen 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 die Erlebnisaus.

  3. In der linken Spalte, unter Monetarisierung , wählen Sie Pässe .

  4. Klicken Sie auf die Schaltfläche für einen Pass und wählen Sie Asset-ID kopieren .

  5. Fügen Sie jede kopierte ID in eine Kombination von Kommas innerhalb der items Tabelle und enthalten Sie Enum.InfoType.GamePass als zweiten Parallelbereich für 1> addItemAsync1> zum Indizieren der Elemente. Standardmäßig erscheinen die Elemente im Katalogansicht in alphabetischer Reihenfolge, aber die Sortierung

    Skript - Pässe hinzufügen

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- ColdFyre-Rüstung
    28521575, -- Schleim-Schild
    }
    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 in dem Creator-Dashboard zu finden sind.

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

    Script - 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 die Erlebnisaus.

  3. In der linken Spalte, unter Monetarisierung , wählen Sie Entwicklerprodukte .

  4. Klicken Sie auf die Schaltfläche für ein Produkt und wählen Sie Kopieren Asset-ID .

  5. Fügen Sie jede kopierte ID in eine komma-delimited-Liste innerhalb der items Tabelle und enthalten Sie Enum.InfoType.Product als zweiten Parallel參數 für 1> addItemAsync1> , um anzuzeigen, dass die Elemente Entwicklerprodukte sind。 Standardmäßig erscheinen die Elemente in der Katalogans

    Script - Entwicklerprodukte hinzufügen

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Mana-Auffüllung
    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 Katalog-Schaltfläche

Standardmäßig ermöglicht eine rechte Katalog-Schaltfläche , Spieler, die Booth jederzeit öffnen können.

In einigen Fällen kann es sinnvoll sein, diese Schaltfläche zu entfernen und Ihre besitzenzu verbinden:

  1. Erstellen Sie einen neuen Button, wie in Buttons beschrieben.

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

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

    LocalScript - Benutzerdefinierte Katalog-Schaltfläche

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Entfernen Sie die Standard-Katalog-Schaltfläche
    MerchBooth.toggleCatalogButton(false)
    -- Verbinde den benutzerdefinierten Button
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Shoppable Regionen

Ein hilfreiches Fahrzeug für den Umsatz in deiner Erfahrung ist es, den Merch-Stand automatisch anzuzeigen, wenn ein Spieler einen Bereich betritt.

Um einen shoppable Region zu erstellen:

  1. Erstellen Sie einen Anchored Block, der die Entdeckungsregion umfasst. Stellen Sie sicher, dass der Block hoch genug ist, um mit dem PrimaryPart von Charaktermodellen ( HumanoidRootPart standardmäßig) zu kollidieren.

    Blockieren, um zu erkennen, wenn Spieler die Vorderseite des Shop-Containers betreten
  2. Durch die Tags-Sektion der Eigenschaften des Blöckeoder durch den Tag-Editor von Studio gilt der Tag ShopRegion auf den Block, damit 2> Class.CollectionService2> ihn erkennt.

  3. Setzen Sie die Teil Transparency auf das Maximum, um ihn den Spielern in der Erlebnisauszublenden. Deaktivieren Sie auch seine CanCollide und CanQuery-Eigenschaften, damit Objekte nicht physisch miteinander kollidieren und Rayscasts nicht ihn erkennen.

  4. Fügen Sie einen neuen LocalScript unter StarterPlayerScripts ein.

  5. In dem neuen Skript, das. PL: die Skriptsfügen Sie den folgenden Code ein, der die Touched und TouchEnded Ereignisse verwendet, um zu erkennen, wenn sich die Charaktere in der Region befinden und die openMerchBooth und 1> closeMerchBooth1> grafische Benutzeroberflächeöffnen/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"))
    -- Entfernen Sie die Standard-Katalog-Schaltfläche
    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
    -- Iterate durch bestehende markierte Shop-Regionen
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Erkennen, wenn nicht-streamed-Shop-Regionen in
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Nähe-Hinweis

Als Alternative zum 2D-Katalog-Ansicht kannst du Nähe-Eingabeaufforderungen über In-Experience-Objekte hinzufügen. Dies ermutigt Spieler, die Gegenstände in der 3D-Umgebung zu entdecken, sie auf ihrem eigenen Avatar anzupreisen, sie zu kaufen und sie sofort auszurüsten. Siehe addProximityButton für Details.

Ändern des Equip-Effekts

Standardmäßig zeigt die Merch-Booth einen generischen Funkeln-Effekt an, wenn ein Spieler ein Item aus ihm ausrüstet. Um den Effekt zu ändern, setzen Sie particleEmitterTemplate an Ihre eigene Instanz eines ParticleEmitter in einer konfigurieren-Anruf.

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

GUI-Sichtbarkeit

Standardmäßig versteckt sich die Merch-Booth, wenn ihre UI angezeigt wird, alle ScreenGuis und CoreGuis, einschließlich der Chat-Chat, Bestenlisten und anderen von Roblox enthaltenen. Wenn Sie dieses Verhalten deaktivieren möchten, setzen Sie hideOtherUis auf 1>

Lokales Skript - ConfigureMerchBooth

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

Charakter-Bewegung

Es kann vorteilhaft sein, einen Charakter zu verhindern, dass er sich bewegt, während er in der Merch-Booth ist. Dies kann durch die Einstellung disableCharacterMovement in true in einem konfigurieren-Aufruf erfolgen.

Lokales Skript - ConfigureMerchBooth

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

API-Referenz

Typen

Artikel

Die Elemente in der Merch-Booth-Items sind durch ein Wörterbuch mit den folgenden Schlüsselwertenpaaren repräsentiert. Elemente können über die Funktion getItems oder das Ereignis itemAdded gesammelt werden.

SchlüsselTypBeschreibung
assetIdnummerKatalog-ID des Artikel, wie in addItemAsync festgelegt.
titlestringArtikelname, wie er im Katalog aussieht.
pricenummerArtikelpreis in Robux.
descriptionstringArtikelbeschreibung, wie sie im Katalog aussieht.
assetTypestringString, der den eingebendes Artikelrepräsentiert.
isOwnedbooleanOb der aktuelle Spieler das Artikelbesitzt.
creatorNamestringArtikelersteller wie in der Kataloganzeige.
creatorTypeEnum.CreatorTypeCreator-Typ für das Artikel.

Enums

MerchBooth.Steuerung

Verwendet zusammen mit setControlKeyCodes, um die Tasten und Gamepad-Schaltflächen anzupassen, um mit dem Merch-Stand zu interagieren.

NameZusammenfassung
ProximityPromptsTaste und/oder Gamepad-Button, um die Item-Ansicht zu öffnen, wenn Nähe-Befehle konfiguriert sind.
OpenMerchBoothTasten und/oder Gamepad-Button, um den Merch-Stand zu öffnen.
CloseMerchBoothTaste und/oder Gamepad, um den Merch-Stand zu schließen.
FilterTaste und/oder Gamepad-Button, um den Standard Filter Pulldown in der oberen linken Ecke des Katalog-Ansichtsfensters zu verwenden.
ViewItemTastatur- und/oder Gamepad-Button, 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 )

Überschreibt Standard-Client-Konfigurationsoptionen durch die folgenden Schlüssel/ Werte in der config Tabelle. Diese Funktion kann nur von einem LocalScript aufgerufen werden.

SchlüsselBeschreibungStandard
backgroundColorHauptfarbe des Fensters ( Color3 ).[0, 0, 0]
cornerRadiusEckradius für das Hauptfenster ( UDim ).(0, 16)
cornerRadiusSmallEckradius für Elemente innerhalb des Fensters ( UDim ).(0, 8)
textFontFont des "Haupttexts" wie Preise, Beschreibungen und andere allgemeine Informationen ( Enum.Font ).Gotham
textSizeGröße des Haupttexts.14
textColorFarbe des Haupttexts ( Color3 ).[255, 255, 255]
secondaryTextColorFarbe für einige Variationen des Haupttexts ( Color3 ).[153, 153, 158]
headerFontFont des verwendeten Kopfzeittextes für den Fenstertitel ( Enum.Font ).GothamMedium
headerTextSizeGröße des Kopftextes, der für den Fenstertitel verwendet wird.18
titleFontFont des Titeltextes, der für Artikelnamen auf der Artikelseite verwendet wird ( Enum.Font ).GothamBold
titleTextSizeGröße des Titeltextes, der für Artikelnamen auf der Artikelseite verwendet wird.28
buttonColorHintergrundfarbe für größere Schaltflächen in einem klickbaren Zustand, wie die Hauptkaufschaltfläche in der Item-Ansicht ( Color3 ).[255, 255, 255]
buttonTextColorTextfarbe für größere Schaltflächen in einem klickbaren Zustand, wie die Hauptkaufschaltfläche in der Item-Ansicht ( Color3 ).[0, 0, 0]
secondaryButtonColorHintergrundfarbe für kleinere Schaltflächen wie die Preisschaltflächen im Katalog-Ansichtsfenster oder die Try-on-Button ( Color3 ).[34, 34, 34]
secondaryButtonTextColorTextfarbe für kleinere Schaltflächen wie die Preisschaltflächen im Katalog-Ansichtsfenster oder die Try-on-Button ( Color3 ).[255, 255, 255]
inactiveButtonColorHintergrundfarbe für alle Schaltflächen in einem nicht-klickbaren Zustand ( Color3 ).[153, 153, 158]
inactiveButtonTextColorTextfarbe für alle Schaltflächen in einem nicht-klickbaren Zustand ( Color3 ).[255, 255, 255]
particleEmitterTemplateOptionale benutzerdefinierte ParticleEmitter Instanz, die auf dem Gerät erscheint und 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,
})

ein ItemAsync hinzufügen

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

Fügt ein Item der Merch-Booth asynchron hinzu, damit es in der Erlebniskäuflich ist. assetId ist die Asset-ID des Artikel, productType ist die ArtikelEnnum.InfoType-Registerkarte und 1> hideFromCatalog1> kann verwendet werden, um das Item im Katalog-Ansichtsmodus zu verbergen.

Siehe Gegenstände hinzufügen für Details, da die Verwendung für Assets gegenüber Spielpässen oder 1>Entwicklerprodukten1> etwas variiert.

Script - Avatar-Assets hinzufügen

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Roblox-Baseballkappe
4819740796, -- Robox
1374269, -- Kätzchenohren
11884330, -- Nerd-Brille
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, -- ColdFyre-Rüstung
28521575, -- Schleim-Schild
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
warn(errorMessage)
end
end
Script - Entwicklerprodukte hinzufügen

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Mana-Auffüllung
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

erhalten Sie Artikel

erhalten Sie Elemente: table

Gibt eine Liste zurück, die alle der derzeit eingetragenen Elemente repräsentiert. Jeder Schlüssel ist eine Asset-ID des Elements als Strings, 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

Item entfernen

EntfernenItem(assetId: number)

Registriert ein Element nicht erneut mit addItemAsync, indem seine Kachel in der Katalogansicht entfernt und alle Nähe-Hinweis-Felder, die mit ihm zugewiesen sind, entfernt. 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 entfernen Sie den Artikel
task.wait(5)
MerchBooth.removeItem(4819740796)
end

ProximityButton hinzufügen

addProximityButton(adornee: BasePart | Model | Attachment , assetId: 1> number1> )

Fügt eine Nähe-Eingabe über das gegebene adornee hinzu, die die Anzeige eines Artikelseiner Kaufansicht anzeigt, das basierend auf seiner Asset-ID angezeigt wird. Dies kann als Alternative zum 2D-Katalog-Ansichts-Button verwendet werden, um die Spieler dazu zu bringen, die Elemente in der 3D-Umgebung zu entdecken.

Beachten Sie, dass ein Element über addItemAsync hinzugefügt werden muss, bevor ein Nähe-Button zugewiesen werden kann. Siehe auch entfernenProximityButton, um die Nähe-Anfrage von einem Objekt zu entfernen.

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 item = workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
end

ProximityButton entfernen

entfernenProximityButton(adornee: BasePart | Model | Attachment )

Entfernt eine Nähe-Eingabe, die durch addProximityButton erzeugt wird. 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 item = workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- Nach einiger Zeit entfernen Sie die Anfrage
task.wait(5)
MerchBooth.removeProximityButton(item)
end

Katalog Sortieren

setCatalogSort(sortFunction: function>: boolean

Setzt die Sortierungsfunktion sortFunction , die in der Ansichtverwendet wird. Die bereitgestellte Sortierungsfunktion kann Logik basierend auf Artikel-Info wie price oder 1> title1> verwenden. Diese Funktion kann nur von einem 4> Class.LocalScript4> aufgerufen werden.

Hier sind einige Beispiele für die Sortierung des Katalogs:

Preis von niedrig nach hoch

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Preis Hoch zu 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 nach 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)

ControlKeyCodes einstellen

setControlKeyCodes(Control: MerchBooth.Controls, KeyCodes: table )

Konfiguriert die Schlüssel- und Buttonwerte für Interaktionen mit dem Merch-Stand. Der erste Parameter muss ein MerchBooth.Controls Enumer sein und der zweite Parameter eine Tabelle mit den Schlüsseln keyboard und/oder gamepad mit entsprechenden 1> Ennum.KeyCode1> 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,
})

OpenMerchBooth

openMerchBooth(™)

Öffnet das Merch-Stand-Fenster (wenn geschlossen) 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()

openItemView

openItemView(itemId: number)

Navigiert zur einzelnen Artikelansicht des gegebenen itemId, öffnet das Merch-Stand-Fenster, 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 den Katalog-Button auf der rechten Seite des Bildschirms um/nach. Dies ist nützlich, wenn Sie einen benutzerdefinierten Button oder die Merch-Booth-Ansicht auf Regionen oder Nähe-Anfragen beschränken. Kann nur von einem 2>Class.LocalScript2> aufgerufen werden.

Lokales Skript

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

istMerchBoothÖffnen

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 Elements 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

closeMerchStand

closeMerchBooth( )

Schließt das Merch-Stand-Fenster. 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

istMerchBoothEnabled() boolean

Diese Funktion kann in Kombination mit setEnabled verwendet werden, um zu überprüfen, ob der Merch-Standort aktiviert oder nicht ist. Kann nur von einem LocalScript aufgerufen werden.

setAktiviert

setEnabled( aktiviert: boolean )

Setzt, ob die gesamte Merch-Booth aktiviert oder nicht ist. Wenn deaktiviert, entfernt diese Funktion die gesamte UI, einschließlich Nähe-Eingaben und verbindet alle Ereignisse. 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

Item hinzugefügt

Feuert wenn ein Element über addItemAsync hinzugefügt wird. Dieses Ereignis kann nur in einem Script verbunden werden.

Parameter
Asset-ID: numberAsset-ID des Elements.
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)

Item entfernt

Feuert, wenn ein Element durch entfernenItem entfernt wird. Dieses Ereignis kann nur in einem Script verbunden werden.

Parameter
Asset-ID: numberAsset-ID des Elements.
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)

Verkaufstand geöffnet

Feuert, wenn entweder der Katalog-Artikel-Detailansicht öffnet oder .

Lokales Skript

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

VerkaufstandClosed

Feuert, wenn einer der Katalog- oder Artikel-Detailsansicht geschlossen ist.

Lokales Skript

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

katalogViewOpened

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)

katalogViewClosed

Feuert, wenn die Katalogansicht geschlossen wird.

Lokales Skript

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

itemViewOffen

Feuert, wenn die Item-Detail-Ansicht 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)

itemViewGeschlossen

Feuert, wenn die Item-Detail-Ansicht geschlossen wird.

Lokales Skript

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