Kiosk z Towarami

*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ł Kiosk z Towarami dewelopera pozwala oferować akcesoria awatarów, przepustki oraz produkty dewelopera na sprzedaż bezpośrednio w Twoim doświadczeniu. Gracze mogą przeglądać przedmioty, podglądać akcesoria na własnym awatarze, kupować przedmioty i natychmiast je używać lub zakładać — wszystko to bez opuszczania Twojego doświadczenia. Może to pomóc w monetyzacji Twojego doświadczenia i przynieść dochody dzięki 40% prowizji afiliacyjnej związanej ze sprzedażą przedmiotów innych twórców.

Użytkowanie modułu

Instalacja

Aby użyć modułu Kiosk z Towarami w doświadczeniu:

  1. W menu Okno w Studio lub na pasku narzędzi zakładki Strona główna, otwórz Narzędzie i wybierz zakładkę Sklep Twórcy.

  2. Upewnij się, że wybrano sortowanie Modele, a następnie kliknij przycisk Zobacz Wszystkie dla Kategorie.

  3. Zlokalizuj i kliknij kafelek Pakiety.

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

  5. W oknie Eksplorator przenieś cały model Kiosk z Towarami do ReplicatedStorage. Po uruchomieniu doświadczenia moduł zacznie działać.

Konfiguracja

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

  1. W StarterPlayerScripts, utwórz nowy LocalScript i zmień jego nazwę na ConfigureMerchBooth.

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

    LocalScript - ConfigureMerchBooth

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    MerchBooth.configure({
    backgroundColor = Color3.fromRGB(220, 210, 200),
    textSize = 17,
    textFont = Enum.Font.Fondamento,
    textColor = Color3.fromRGB(20, 20, 20),
    useFilters = false
    })

Dodawanie przedmiotów

Co to za kiosk z towarami bez towarów? Poniższe sekcje opisują, jak dodać akcesoria awatarów, przepustki oraz produkty dewelopera do Twojego kiosku z towarami.

Akcesoria awatarów

Przedmioty, takie jak odzież i akcesoria, muszą być dodawane przy użyciu ich ID zasobu znajdującego się na stronie szczegółów przedmiotu w Sklepie Awatarów.

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

    Script - Dodaj Akcesoria Awatarów

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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. Skopiuj ID zasobów przedmiotów z ich URL w Sklepie Awatarów. Na przykład, ID Czapki Baseballowej Roblox to 607702162.

  3. Wklej każde skopiowane ID do listy oddzielonej przecinkami w tabeli items. Domyślnie przedmioty pojawiają się w widoku katalogu w porządku alfabetycznym, ale możesz dostosować sortowanie za pomocą setCatalogSort.

    Script - Dodaj Akcesoria Awatarów

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    607702162, -- Czapka Baseballowa Roblox
    4819740796, -- Robox
    1374269, -- Uszy Kotka
    11884330, -- Okulary Nerd
    10476359, -- Kapelusz Papierowy
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Przepustki

Dodanie przepustek wymaga ID przepustki, które można znaleźć w Panelu Twórcy.

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

    Script - Dodaj Przepustki

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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 Panelu Twórcy i wybierz doświadczenie.

  3. W lewej kolumnie, w sekcji Monetyzacja, wybierz Przepustki.

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

  5. Wklej każde skopiowane ID do listy oddzielonej przecinkami w tabeli items i uwzględnij Enum.InfoType.GamePass jako drugi parametr dla addItemAsync, aby wskazać, że przedmioty są przepustkami. Domyślnie przedmioty będą się pojawiać w widoku katalogu w porządku alfabetycznym, ale sortowanie można dostosować za pomocą setCatalogSort.

    Script - Dodaj Przepustki

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    4343758, -- Zbroja ColdFyre
    28521575, -- Tarcza Glutowa
    }
    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 Dewelopera

Dodanie produktów dewelopera wymaga ID produktu, które można znaleźć w Panelu Twórcy.

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

    Script - Dodaj Produkty Dewelopera

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.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 Panelu Twórcy i wybierz doświadczenie.

  3. W lewej kolumnie, w sekcji Monetyzacja, wybierz Produkty Dewelopera.

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

  5. Wklej każde skopiowane ID do listy oddzielonej przecinkami w tabeli items i uwzględnij Enum.InfoType.Product jako drugi parametr dla addItemAsync, aby wskazać, że przedmioty są produktami dewelopera. Domyślnie przedmioty będą się pojawiać w widoku katalogu w porządku alfabetycznym, ale sortowanie można dostosować za pomocą setCatalogSort.

    Script - Dodaj Produkty Dewelopera

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    local items = {
    1236602053, -- Uzupełnienie Many
    1257880672, -- Mikstura Lecząca
    }
    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

Przyciski katalogu

Domyślnie po prawej stronie znajduje się przycisk katalogu, który pozwala graczom otworzyć kiosk w dowolnym momencie.

W niektórych przypadkach można usunąć ten przycisk i połączyć go z własnym:

  1. Utwórz nowy przycisk, zgodnie z opisem w Przyciskach.

  2. Utwórz LocalScript jako dziecko obiektu przycisku.

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

    LocalScript - Przyciski Katalogu

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

Obszary do zakupu

Pomocnym sposobem na zachęcenie do zakupów w Twoim doświadczeniu jest automatyczne wyświetlanie kiosku z towarami, gdy gracz wchodzi do obszaru.

Aby stworzyć obszar do zakupów:

  1. Utwórz blok Anchored, który obejmuje obszar detekcji. Upewnij się, że blok jest wystarczająco wysoki, aby kolidować z PrimaryPart modeli postaci (HumanoidRootPart domyślnie).

    Blok do detekcji, gdy gracze zbliżają się do przodu lady sklepowej
  2. Używając sekcji Tagi właściwości bloku, zastosuj tag ShopRegion do bloku, aby CollectionService mógł go wykryć.

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

  4. Wstaw nowy LocalScript w StarterPlayerScripts.

  5. W nowym skrypcie wklej następujący kod, który używa zdarzeń Touched oraz TouchEnded, aby wykrywać, kiedy postacie wchodzą/opuszczają obszar i wywołuje openMerchBooth oraz closeMerchBooth, aby otworzyć/zamknąć GUI kiosku.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage.MerchBooth)
    -- Usuń domyślny 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
    -- Iteruj przez istniejące oznaczone obszary sklepu
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Wykryj, kiedy niestrumieniowane obszary sklepu wchodzą w zasięg
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Proximity Prompts

Alternatywnie do widoku katalogu 2D, możesz dodać proximity prompts nad obiektami w doświadczeniu. Zachęca to graczy do odkrywania przedmiotów w środowisku 3D, podglądania ich na własnym awatarze, kupowania ich i natychmiastowego zakładania. Zobacz addProximityButton po szczegóły.

Zmiana efektu zakupu

Domyślnie kiosk z towarami pokazuje ogólny efekt iskier, gdy gracz zakłada przedmiot z niego. Aby zmienić efekt, ustaw particleEmitterTemplate na swoją własną instancję ParticleEmitter w wywołaniu configure.

LocalScript - ConfigureMerchBooth

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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
})

Widoczność GUI

Domyślnie kiosk z towarami ukrywa wszystkie ScreenGuis i CoreGuis, gdy jego interfejs użytkownika się pojawia, w tym czat, tablicę wyników i inne dołączone przez Roblox. Jeśli chcesz wyłączyć to zachowanie, ustaw hideOtherUis na false w wywołaniu configure.

LocalScript - ConfigureMerchBooth

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

Ruch postaci

Możesz uniemożliwić postaci poruszania się, gdy jest w kiosku z towarami. Można to zrobić, ustawiając disableCharacterMovement na true w wywołaniu configure.

LocalScript - ConfigureMerchBooth

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

Referencja API

Typy

Przedmiot

Przedmioty w kiosku z towarami są reprezentowane przez słownik z następującymi pary klucz-wartość. Przedmioty można uzyskać za pomocą funkcji getItems lub zdarzenia itemAdded.

KluczTypOpis
assetIdnumberID katalogowe przedmiotu, przekazywane do addItemAsync.
titlestringTytuł przedmiotu, jak pojawia się w katalogu.
pricenumberCena przedmiotu w Robuxach.
descriptionstringOpis przedmiotu, jak pojawia się w katalogu.
assetTypestringString reprezentujący typ akcesorium przedmiotu.
isOwnedboolCzy aktualny gracz posiada przedmiot.
creatorNamestringNazwa twórcy przedmiotu, jak pokazano w katalogu.
creatorTypeEnum.CreatorTypeTyp twórcy przedmiotu.

Enums

MerchBooth.Controls

Używane wraz z setControlKeyCodes do dostosowania klawiszy i przycisków gamepada do interakcji z kiosk z towarami.

NazwaStreszczenie
ProximityPromptsKlawisz i/lub przycisk gamepada do otwierania widoku przedmiotu, gdy są skonfigurowane proximity prompts.
OpenMerchBoothKlawisz i/lub przycisk gamepada do otwierania kiosku z towarami.
CloseMerchBoothKlawisz i/lub przycisk gamepada do zamykania kiosku z towarami.
FilterKlawisz i/lub przycisk gamepada do używania domyślnego rozwijanego Filtra w lewym górnym rogu widoku katalogu.
ViewItemKlawisz i/lub przycisk gamepada do otwierania konkretnego widoku przedmiotu kiosku z towarami.
LocalScript

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

Funkcje

configure

configure(config: table)

Nadpisuje domyślne opcje konfiguracyjne klienta za pomocą następujących kluczy/wartości w tabeli config. Ta funkcja może być wywoływana tylko z LocalScript.

KluczOpisDomyślny
backgroundColorGłówny kolor tła okna (Color3).[0, 0, 0]
cornerRadiusPromień narożnika głównego okna (UDim).(0, 16)
cornerRadiusSmallPromień narożnika dla elementów wewnątrz okna (UDim).(0, 8)
textFontCzcionka "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 dla niektórych wariantów głównego tekstu (Color3).[153, 153, 158]
headerFontCzcionka tekstu nagłówka używana dla tytułu okna (Enum.Font).GothamMedium
headerTextSizeRozmiar tekstu nagłówka używanego dla tytułu okna.18
titleFontCzcionka tekstu tytułu używanego dla nazw przedmiotów na stronie szczegółów przedmiotu (Enum.Font).GothamBold
titleTextSizeRozmiar tekstu tytułu używanego dla 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 cenowe w widoku katalogu lub przycisk Wypróbuj (Color3).[34, 34, 34]
secondaryButtonTextColorKolor tekstu dla mniejszych przycisków, takich jak przyciski cenowe w widoku katalogu lub przycisk Wypró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 instancja ParticleEmitter, która pojawia się i odtwarza się przy zakładaniu.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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)

Asynchronicznie dodaje przedmiot do kiosku z towarami, aby był kwalifikowany do zakupu w doświadczeniu. assetId to ID zasobu przedmiotu, productType to enum Enum.InfoType przedmiotu, a hideFromCatalog może być używane do ukrywania przedmiotu w widoku katalogu.

Zobacz Dodawanie przedmiotów po szczegóły, ponieważ użycie różni się nieco dla zasobów w porównaniu do przepustek lub produktów dewelopera.

Script - Dodaj Akcesoria Awatarów

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Czapka Baseballowa Roblox
4819740796, -- Robox
1374269, -- Uszy Kotka
11884330, -- Okulary Nerd
10476359, -- Kapelusz Papierowy
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Dodaj Przepustki

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
4343758, -- Zbroja ColdFyre
28521575, -- Tarcza Glutowa
}
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 - Dodaj Produkty Dewelopera

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
1236602053, -- Uzupełnienie Many
1257880672, -- Mikstura Lecząca
}
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

getItems

getItems(): table

Zwraca słownik reprezentujący wszystkie aktualnie zarejestrowane przedmioty. Każdy klucz to ID zasobu przedmiotu jako ciąg znaków, a każda wartość klucza to Przedmiot. Ta funkcja może być wywoływana tylko z Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local items = MerchBooth.getItems()
print(items)
end

removeItem

removeItem(assetId: number)

Usuwa rejestrację przedmiotu wcześniej dodanego za pomocą addItemAsync, usuwając jego kafelek w widoku katalogu oraz wszelkie proximity prompts przypisane do niego. Ta funkcja może być wywoływana tylko z Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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

addProximityButton

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

Dodaje proximity prompt nad danym adornee, który uruchomi wyświetlenie widoku zakupu przedmiotu, biorąc pod uwagę jego ID zasobu. Może to być używane jako alternatywa dla widoku katalogu 2D, zachęcając graczy do odkrywania przedmiotów w środowisku 3D.

Należy pamiętać, że przedmiot musi być dodany za pomocą addItemAsync zanim będzie można przypisać do niego przycisk proximity. Zobacz także removeProximityButton, aby usunąć prompt proximity z obiektu.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
end

removeProximityButton

removeProximityButton(adornee: BasePart|Model|Attachment)

Usuwa proximity prompt wygenerowany przez addProximityButton. Ta funkcja może być wywoływana tylko z Script.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local MerchBooth = require(ReplicatedStorage.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ń prompt
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setCatalogSort

setCatalogSort(sortFunction: function): boolean

Ustawia funkcję sortowania sortFunction do użycia w widoku katalogu. Podana funkcja sortująca może używać logiki opartej na informacjach o Przedmiocie, takich jak price lub title. Ta funkcja może być wywoływana tylko z LocalScript.

Oto kilka przykładów sortowania katalogu:

Cena od najniższej do najwyższej

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.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.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Cena od najniższej do najwyższej i alfabetycznie

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return if a.price == b.price then a.title < b.title else a.price < b.price
end)

setControlKeyCodes

setControlKeyCodes(control: MerchBooth.Controls, keyCodes: table)

Konfiguruje klawisze i wartości przycisków do interakcji z kiosk z towarami. Pierwszym parametrem musi być enum MerchBooth.Controls, a drugim parametrem tabela zawierająca klawisze keyboard i/lub gamepad z odpowiadającymi enumami Enum.KeyCode.

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
LocalScript

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

openMerchBooth

openMerchBooth()

Otwiera okno kiosku z towarami (jeśli jest zamknięte) i przechodzi do widoku katalogu. Ta funkcja może być wywoływana tylko z LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
MerchBooth.openMerchBooth()

openItemView

openItemView(itemId: number)

Przechodzi do jednego widoku przedmiotu o podanym itemId, otwierając okno kiosku z towarami, jeśli jest aktualnie zamknięte. Ta funkcja może być wywoływana tylko z LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end

toggleCatalogButton

toggleCatalogButton(enabled: boolean)

Przełącza przycisk katalogu po prawej stronie ekranu włączony/wyłączony. Jest to przydatne, gdy implementujesz niestandardowy przycisk lub ograniczasz pojawienie się kiosku z towarami do obszarów lub proximity prompts. Może być wywoływana tylko z LocalScript.

LocalScript

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

isMerchBoothOpen

isMerchBoothOpen(): Tuple

Zwraca true, jeśli otwarty jest którykolwiek z widoków katalogu lub przedmiotu. Jeśli widok przedmiotu jest otwarty, ID zasobu przedmiotu zwracane jest jako drugi wartość. Ta funkcja może być wywoływana tylko z LocalScript.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
local isOpen, itemId = MerchBooth.isMerchBoothOpen()
print(isOpen, itemId)
end

closeMerchBooth

closeMerchBooth()

Zamyka okno kiosku z towarami. Ta funkcja może być wywoływana tylko z LocalScript.

LocalScript

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

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Funkcja ta może być używana w tandemie z setEnabled, aby sprawdzić, czy kiosk z towarami jest obecnie włączony, czy nie. Może być wywoływana tylko z LocalScript.

setEnabled

setEnabled(enabled: boolean)

Ustawia, czy cały kiosk z towarami jest włączony, czy nie. Gdy jest wyłączony, ta funkcja usuwa cały interfejs użytkownika, w tym proximity prompts, i rozłącza wszystkie zdarzenia. Ta funkcja może być wywoływana tylko z LocalScript.

LocalScript

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

Zdarzenia

itemAdded

Wysyła zdarzenie, gdy przedmiot zostanie dodany przez addItemAsync. To zdarzenie może być łączone tylko w Script.

Parametry
assetId: numberID zasobu przedmiotu.
itemInfo: tableSłownik zawierający informacje o Przedmiocie, takie jak price lub title.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Przedmiot dodany z ID zasobu", assetId)
print(itemInfo)
end)

itemRemoved

Wysyła zdarzenie, gdy przedmiot zostanie usunięty przez removeItem. To zdarzenie może być łączone tylko w Script.

Parametry
assetId: numberID zasobu przedmiotu.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Przedmiot usunięty z ID zasobu", assetId)
end)

merchBoothOpened

Wysyła zdarzenie, gdy otwarte są widoki katalogu lub szczegółów przedmiotu.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Widok kiosku otwarty")
end)

merchBoothClosed

Wysyła zdarzenie, gdy zamknięte są widoki katalogu lub szczegółów przedmiotu.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Widok kiosku zamknięty")
end)

catalogViewOpened

Wysyła zdarzenie, gdy otwarty jest widok katalogu.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Widok katalogu otwarty")
end)

catalogViewClosed

Wysyła zdarzenie, gdy zamknięty jest widok katalogu.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Widok katalogu zamknięty")
end)

itemViewOpened

Wysyła zdarzenie, gdy otwarty jest widok szczegółów przedmiotu.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Widok przedmiotu otwarty")
end)

itemViewClosed

Wysyła zdarzenie, gdy zamknięty jest widok szczegółów przedmiotu.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Widok przedmiotu zamknięty")
end)
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.