Stoisko handlowe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Moduł rozwojowy MerchBooth pozwala oferować zasoby awatara , przepustki i produkty dla programistów bezpośrednio w twoim doświadczeniu.Gracze mogą przeglądać przedmioty, zapoznawać się z zasobami na własnym awatarze, kupować przedmioty i natychmiast używać ich lub wyposażać je - bez opuszczania swojego doświadczenia.Może to pomóc Ci monetyzować doświadczenie i zarabiać poprzez 40% opłatę zafiliacyjną związaną z sprzedażą przedmiotów innych twórców.

Użycie modułu

Instalacja

Aby użyć modułu MerchBooth w doświadczeniu:

  1. Z zakładki Widok, otwórz Pudełko z narzędziami i wybierz zakładkę Sklep z twórcami .

    Toolbox toggle button in Studio
  2. Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .

  3. Zlokalizuj i kliknij pasek modułów rozwojowych .

  4. Zlokalizuj moduł stoisko handlowe i kliknij go, lub przeciągnij i upuść do widoku 3D.

  5. W oknie Eksploratora przenieś cały model MerchBooth do ServerScriptService .Po uruchomieniu doświadczenia moduł rozproszy się na różne usługi i rozpocznie działanie.

Konfiguracja

Moduł jest wstępnie skonfigurowany do pracy w większości przypadków użycia, ale można go łatwo dostosować za pomocą funkcji konfiguruj.Na przykład, aby stworzyć jaśniejszy motyw i wyłączyć domyślny przycisk Filtr w górnej lewej części widoku katalogu:

  1. W StarterPlayerScripts , utwórz nowy LocalScript i zmień nazwę na Konfiguruj stoisko handlowe .

  2. Wklej następujący kod do nowego skryptu.

    LocalScript - Konfiguruj stoisko handlowe

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

Dodaj przedmioty

Czym jest stoisko handlowe bez towarów? Poniższe sekcje wyjaśniają, jak dodać przedmioty awatara, przepustki i produkty dla programistów do swojego stoisku handlowego.

Zasoby awatara

Przedmioty takie jak odzież i akcesoria muszą być dodane za pośrednictwem ich identyfikatora zasobów położonego na stronie szczegółów przedmiotu w Sklepie z Avatarami.

  1. Stwórz Script w ramach ServerScriptService i wklej następujący kod.

    Skrypt - Dodaj zasoby awatara

    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. Kopuj ID przedmiotów zasobów z ich URL strony internetowej Sklep z awatarami. Na przykład ID Czapka baseballowa Roblox jest 607702162 .

  3. Wklej każdą skopiowaną ID do listy oddzielonej przecinkami w tabeli items.Domyślnie elementy pojawiają się w widoku katalogu w kolejności alfabetycznej, ale możesz dostosować sortowanie za pomocą setCatalogSort.

    Skrypt - Dodaj zasoby awatara

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Czapka baseballowa Roblox
    4819740796, -- Roboksy
    1374269, -- Uszy kota
    11884330, -- Nerdy okulary
    10476359, -- Papierowa czapka
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Przepustki

Dodawanie przepustek wymaga identyfikatorów przepustek, które można znaleźć w panelu administratora.

  1. Stwórz Script w ramach ServerScriptService i wklej następujący kod.

    Skrypt - Dodaj przepustki

    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. Przejdź do Pulpitu nawigacyjnego twórcy i wybierz doświadczenie.

  3. W lewej kolumnie, pod Monetyzacją , wybierz Przepustki .

  4. Najedź kursorem na miniaturę przepustki, kliknij przycisk i wybierz Kopiuj ID zasobu z menu kontekstowego.

  5. Wklej każdą skopiowaną ID do listy oddzielonej przecinkami w tabeli items i **** włącz Enum.InfoType.GamePass jako drugi parametr dla addItemAsync, aby wskazać, że przedmioty są przepustkami.Domyślnie elementy pojawią się w widoku katalogu w kolejności alfabetycznej, ale sortowanie można dostosować za pomocą setCatalogSort.

    Skrypt - Dodaj przepustki

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- Pancerz ColdFyre
    28521575, -- Tarcza śluzu
    }
    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

Produkty dla programistów

Dodawanie produktów dla programistów wymaga identyfikatorów produktów, które mogą być umieszczone w Pulpicie nawigacyjnym twórcy.

  1. Stwórz Script w ramach ServerScriptService i wklej następujący kod.

    Skrypt - Dodaj produkty dla programistów

    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. Przejdź do Pulpitu nawigacyjnego twórcy i wybierz doświadczenie.

  3. W lewej kolumnie, pod Monetyzacją , wybierz Produkty dla programistów .

  4. Najedź kursorem na miniaturaproduktu, kliknij przycisk i wybierz Kopiuj ID zasobu z menu kontekstowego.

  5. Wklej każdą skopiowaną ID do listy ograniczonej przecinkami w tabeli items i **** włącz Enum.InfoType.Product jako drugi parametr dla addItemAsync, aby wskazać, że przedmioty są produktami rozwojowymi.Domyślnie elementy pojawiają się w widoku katalogu w kolejności alfabetycznej, ale możesz dostosować sortowanie za pomocą setCatalogSort.

    Skrypt - Dodaj produkty dla programistów

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Uzupełnianie energii
    1257880672, -- Eliksir leczący
    }
    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

Niestandardowy przycisk katalogu

Domyślnie przycisk katalogu po prawej stronie pozwala graczom otwierać stoisko w dowolnym momencie .

W niektórych przypadkach może być przydatne usunięcie tej ikony i połączenie posiadać:

  1. Stwórz nowy przycisk, jak opisano w Przyciskach.

  2. Stwórz LocalScript jako dziecko obiektu przycisku.

  3. Wklej następujący kod do nowego skryptu.

    LocalScript - Przycisk katalogu niestandardowego

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Usuń domyślną przycisk katalogu
    MerchBooth.toggleCatalogButton(false)
    -- Połącz niestandardowy przycisk
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Sklepowe regiony

Pomocnym sposobem na zachęcanie do zakupów w swoim doświadczeniu jest automatyczne wyświetlanie stoisk handlowych, gdy gracz wchodzi na obszar.

Aby utworzyć region do zakupu:

  1. Stwórz blok Anchored, który obejmuje region wykrywania.Upewnij się, że blok jest wystarczająco wysoki, aby zderzyć się z PrimaryPart modelami postaci ( HumanoidRootPart domyślnie).

    Blok wykrywający, kiedy gracze zbliżają się do przodu kasy sklepowej
  2. Używając sekcji Tagi właściwości bloku lub edytora tagów w Studio, zastosuj tag do bloku, aby wykrył go>.

  3. Ustaw część Transparency na maksymalną, aby ukryć ją przed graczami w doświadczeniu.Wyłącz również jego właściwości CanCollide i CanQuery, aby obiekty nie zderzały się z nim fizycznie i promienie nie wykrywały go.

  4. Wprowadź nowy LocalScript pod StarterPlayerScripts .

  5. W nowym skrypcie wklej następujący kod, który wykorzystuje wydarzenia Touched i TouchEnded do wykrycia, kiedy postacie wchodzą lub wychodzą z regionu, oraz wzywa openMerchBooth i closeMerchBooth do otwarcia/zamknięcia interfejsu wystawcy.

    Lokalny skrypt

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Usuń domyślną przycisk katalogu
    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
    -- Powtarzaj istniejące oznaczone regiony sklepów
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Wykryj, kiedy nie streamowane regiony sklepu przepływają
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Powiadomienia o zbliżeniu

W alternatywie dla widoku katalogu 2D możesz dodać powiadomienia o zbliżeniu do obiektów w doświadczeniu.Zachęca to graczy do odkrywania przedmiotów w środowisku 3D, przeglądania ich na własnym awatarze, kupowania ich i natychmiastowego ich wyposażania.Zobacz dodajProximityButton dla szczegółów.

Zmień efekt wyposażenia

Domyślnie stoisko handlowe wyświetla ogólny efekt błysku, gdy gracz wyposaża z niego przedmiot.Aby zmienić efekt, ustaw particleEmitterTemplate na własną instancję ParticleEmitter w wezwaniu konfiguruj.

LocalScript - Konfiguruj stoisko handlowe

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

Widzialność interfejsu GUI

Domyślnie stoisko handlowe ukrywa wszystkie ScreenGuis i CoreGuis gdy pojawia się jego interfejs użytkownika, w tym czat, rankingwyników i inne dodane przez Roblox.Jeśli chcesz wyłączyć to zachowanie, ustaw hideOtherUis na false w wezwaniu konfiguruj.

LocalScript - Konfiguruj stoisko handlowe

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

Ruch postaci

Może być korzystne zapobiec poruszaniu się postaci, gdy są w stoisku handlowym.Można to zrobić, ustawiając disableCharacterMovement na true w wezwaniu konfiguruj.

LocalScript - Konfiguruj stoisko handlowe

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

Referencja API

Typy

Przedmiot

Przedmioty na stoisku handlowym są reprezentowane przez słownik z następującymi parami klucz-wartość.Przedmioty można zebrać za pomocą funkcji getItems lub wydarzenia dodano przedmiot.

KluczTypOpis
assetIdnumber liczbaID katalogowe przedmiotu, przekazane do addItemAsync.
titleciągTytuł przedmiotu, jak pojawia się w katalogu.
pricenumber liczbaCena przedmiotu w Robux.
descriptionciągOpis przedmiotu tak jak pojawia się w katalogu.
assetTypeciągSznurek reprezentujący wpisywaćakcesorium przedmiotu.
isOwnedboolCzy obecny gracz posiada przedmiot.
creatorNameciągTwórca przedmiotu, jak pokazano w katalogu.
creatorTypeEnum.CreatorTypeTyp twórcy dla przedmiotu.

Enumery

Kontrolki MerchBooth

Używany wraz z setControlKeyCodes do dostosowania klawiszy i przycisków na gamepadzie do interakcji z stoiskiem handlowym.

NazwaPodsumowanie
ProximityPromptsPrzycisk klawiatury i/lub gamepada do otwarcia widoku przedmiotu, gdy komunikaty o zbliżeniu są skonfigurowane.
OpenMerchBoothPrzycisk klawiatury i/lub gamepada, aby otworzyć stoisko handlowe
CloseMerchBoothPrzycisk klawiatury i/lub gamepada do zamknięcia stoisk handlowych
FilterPrzycisk klawiatury i/lub gamepada do użycia domyślnego filtra w górnej lewej części widoku katalogu.
ViewItemPrzycisk klawiatury i/lub gamepada, aby otworzyć określoną widok przedmiotu stoisk handlowych
Lokalny skrypt

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})

Funkcje

skonfigurować

konfigurować(config: table )

Nadpisanie domyślnych opcji konfiguracji po stronie klienta za pomocą następujących kluczy/wartości w tabeli config.Funkcja ta może być wywołana tylko z LocalScript.

KluczOpisDomyślny
backgroundColorGłówny kolor tła okna ( Color3 ).[0, 0, 0]
cornerRadiusPromień kąta dla głównego okna ( UDim ).(0, 16)
cornerRadiusSmallPromień kąta dla elementów wewnątrz okna ( UDim ).(0, 8)
textFontFont "głównego tekstu" takiego jak ceny, opisy i inne ogólne informacje (Enum.Font).Gotham
textSizeRozmiar głównego tekstu.14
textColorKolor głównego tekstu ( Color3 ).[255, 255, 255]
secondaryTextColorKolor używany do niektórych odmian głównego tekstu (Color3).[153, 153, 158]
headerFontFont tekstu nagłówka używany do tytułu okna (Enum.Font).GothamMedium
headerTextSizeRozmiar tekstu nagłówka używanego do tytułu okna.18
titleFontCzcionka tekstu tytułu używana do nazw przedmiotów na stronie szczegółów przedmiotu (Enum.Font).GothamBold
titleTextSizeRozmiar tekstu tytułowego używanego do nazw przedmiotów na stronie szczegółów przedmiotu.28
buttonColorKolor tła dla większych przycisków w stanie klikalnym, takich jak główny przycisk zakupu w widoku przedmiotu ( Color3 ).[255, 255, 255]
buttonTextColorKolor tekstu dla większych przycisków w stanie klikalnym, takich jak główny przycisk zakupu w widoku przedmiotu ( Color3 ).[0, 0, 0]
secondaryButtonColorKolor tła dla mniejszych przycisków, takich jak przyciski cen w widoku katalogowym lub przycisk Spróbuj ( Color3 ).[34, 34, 34]
secondaryButtonTextColorKolor tekstu dla mniejszych przycisków, takich jak przyciski cen w widoku katalogowym lub przycisk Spróbuj ( Color3 ).[255, 255, 255]
inactiveButtonColorKolor tła dla wszystkich przycisków w stanie nieklikalnym ( Color3 ).[153, 153, 158]
inactiveButtonTextColorKolor tekstu dla wszystkich przycisków w stanie nieklikalnym ( Color3 ).[255, 255, 255]
particleEmitterTemplateOpcjonalna niestandardowa instancja ParticleEmitter pojawiająca się i odtwarzająca na wyposażeniu.
Lokalny skrypt

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 )

Asynowo dodaje przedmiot do stoisk handlowych, aby był kwalifikowany do zakupu w doświadczeniu.assetId to jest ID zasobu przedmiotu, productType to jest enumeracja przedmiotu Enum.InfoType i hideFromCatalog można użyć do ukrycia przedmiotu w widoku katalogu.

Zobacz Dodawanie przedmiotów dla szczegółów, ponieważ sposób użycia różni się nieco w przypadku aktywów w stosunku do przepustek gier lub produktów dla programistów .

Skrypt - Dodaj zasoby awatara

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Czapka baseballowa Roblox
4819740796, -- Roboksy
1374269, -- Uszy kota
11884330, -- Nerdy okulary
10476359, -- Papierowa czapka
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Skrypt - Dodaj przepustki

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- Pancerz ColdFyre
28521575, -- Tarcza śluzu
}
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
Skrypt - Dodaj produkty dla programistów

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Uzupełnianie energii
1257880672, -- Eliksir leczący
}
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

dostań przedmioty

getItems(): table

Zwraca słownik reprezentujący wszystkie rejestrowane obecnie przedmioty.Każdy klucz jest ID zasobu przedmiotu jako ciąg znaków, a wartość każdego klucza jest przedmiotem Przedmiotem.Funkcja ta może być wywołana tylko z Script.

Skrypt

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

usuń przedmiot

usuń przedmiot(assetId: number )

Rozrejestruje przedmiot dodany wcześniej za pomocą addItemAsync, usuwając jego płytkę w widoku katalogu i wszelkie powiadomienia o zbliżeniu przypisane mu.Funkcja ta może być wywołana tylko z Script.

Skrypt

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Po pewnym czasie usuń przedmiot
task.wait(5)
MerchBooth.removeItem(4819740796)
end

dodajProximityButton

addProximityButton(adornee: BasePart | Model | Attachment , assetId: number )

Dodaje powiadomienie o zbliżeniu nad podanym adornee, które uruchomi wyświetlanie widoku zakupu przedmiotu, biorąc pod uwagę jego ID.Można tego użyć jako alternatywy dla widoku katalogu 2D, zachęcając graczy do odkrywania przedmiotów w środowisku 3D.

Zauważ, że przed dodaniem przedmiotu za pomocą addItemAsync musi zostać dodany, aby przydzielić mu przycisk zbliżeniowy.Zobacz także usuńProximityButton, aby usunąć powiadomienie o zbliżeniu z obiektu.

Skrypt

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

usuńPrzyciskOdległości

usuńProximityButton(adornee: BasePart | Model | Attachment )

Usuwa powiadomienie o zbliżeniu generowane za pomocą addProximityButton. Ta funkcja może być wywołana tylko z Script.

Skrypt

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
-- Po pewnym czasie usuń monit odrzucenia
task.wait(5)
MerchBooth.removeProximityButton(item)
end

ustawKatalogSort

setCatalogSort(sortFunction: function): boolean

Ustawia funkcję sortowania sortFunction do użycia w widoku katalogu.Dostarczona funkcja sortowania może korzystać z logiki opartej na informacjach Przedmiotu, takich jak price lub title.Funkcja ta może być wywołana tylko z LocalScript .

Oto kilka przykładów sortowania katalogu:

Cena od niskiej do wysokiej

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Cena od najwyższej do najniższej

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Cena od niskiej do wysokiej i alfabetycznie

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)

ustaw kontrolne kody kluczy

setControlKeyCommands(控制: MerchBooth.Controls , kluczowe kody: table )

Konfiguruje wartości klucza i przycisków dla interakcji z stoiskiem handlowym.Pierwszy parametr musi być wartością MerchBooth.Controls enum, a drugi parametr tablicą zawierającą klucze keyboard i/lub gamepad z odpowiednimi Enum.KeyCode enzymami.

Enum ( control )Domyślne klucze/wartości keyCodes
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
Lokalny skrypt

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

otwartyMerchBooth

otwartyMerchBooth()

Otwiera okno stoisk handlowych (jeśli jest zamknięte) i przełącza się do widoku katalogu. Ta funkcja może być wywołana tylko z LocalScript.

Lokalny skrypt

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

otwarty widok przedmiotu

openItemView(itemId: number )

Nawiguje do widoku pojedynczego elementu danego itemId, otwierając okno stoisk handlowych, jeśli jest obecnie zamknięte.Funkcja ta może być wywołana tylko z LocalScript.

Lokalny skrypt

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

Przełącz przycisk katalogu

przełączCatalogButton(włączone: boolean )

Przełącza włączenie/wyłączenie przycisku katalogu po prawej stronie ekranu.Jest to przydatne przy wdrażaniu niestandardowego przycisku lub ograniczaniu wyglądu stoisk handlowych do regionów lub powiadomień o zbliżeniu.Można wezwać tylko z LocalScript .

Lokalny skrypt

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

jestMerchBoothOpen

isMerchBoothOpen(): Tuple

Wyświetla true jeśli katalog lub widok przedmiotu jest otwarty.Jeśli widok przedmiotu jest otwarty, ID zasobu przedmiotu jest zwracane jako druga wartość.Funkcja ta może być wywołana tylko z LocalScript.

Lokalny skrypt

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

zamknijMerchBooth

zamknijMerchBooth()

Zamknij okno stoisk handlowych. Ta funkcja może być wywołana tylko z LocalScript.

Lokalny skrypt

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

jestMerchBoothEnabled

isMerchBoothEnabled(): boolean

Funkcja ta może być używana w tandemie z setEnabled, aby sprawdzić, czy stoisko handlowe jest obecnie włączone, czy nie.Można wezwać tylko z LocalScript.

ustawionoEnabled

setEnabled(enabled: boolean )

Ustawia, czy cała stoisko handlowe jest włączona, czy nie.Po wyłączeniu ta funkcja usuwa całą UI, w tym powiadomienia o zbliżeniu i odłącza wszystkie wydarzenia.Funkcja ta może być wywołana tylko z LocalScript.

Lokalny skrypt

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

Wydarzenia

przedmiot dodany

Wystrzeliwuje, gdy przedmiot zostanie dodany za pomocą addItemAsync. To wydarzenie może być połączone tylko w Script.

Parametry
identyfikator zasobu: numberID zasobu przedmiotu.
itemInfo: tableSłownik informacji o przedmiocie takich jak price lub title.
Skrypt

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)

przedmiotUsunięty

Wystrzeliwuje, gdy przedmiot zostanie usunięty za pomocą removeItem. To wydarzenie może być połączone tylko w Script.

Parametry
identyfikator zasobu: numberID zasobu przedmiotu.
Skrypt

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

Wybucha, gdy otwiera się widok szczegółów katalogu lub .

Lokalny skrypt

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

merchBoothZamknij

Wybucha, gdy zostaną zamknięte szczegóły katalogu lub .

Lokalny skrypt

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

katalogViewOpened

Wybucha, gdy otwierana jest widok katalogu.

Lokalny skrypt

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

katalogViewZamknij

Wystrzeliwuje, gdy widok katalogu jest zamknięty.

Lokalny skrypt

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

itemViewOtwórz

Wybucha, gdy otwiera się widok szczegółów przedmiotu.

Lokalny skrypt

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

itemViewZamknięty

Wystrzeliwuje, gdy widok szczegółów przedmiotu jest zamknięty.

Lokalny skrypt

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