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.

MerchBooth moduł rozwoju pozwala na oferowanie asysty awatar, 1>przepustek1> i 4>produktów dla rozwoju4> bezpośrednio w swoim doświadczeniu. Gracze mogą przegl

Użyj modułu

Instalacja

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

  1. Z zakładki Zobacz, otwórz Skrzynię narzędzi i wybierz Sklep z twórcami.

    Toolbox toggle button in Studio
  2. Upewnij się, że Modele sortowanie jest zaznaczone, a następnie kliknij przycisk Zobacz wszystko dla Kategorie.

  3. Lokalizuj i klikaj na płytę Moduły Rozwoju .

  4. Lokalizuj moduł Sprzedaż i kliknij go, lub przeciągnij go do 3D.

  5. W oknie Explorer przesuń cały model MerchBooth do ServerScriptService . Po uruchomieniu doświadczenia moduł zostanie rozdzielony na różne usługi i zacznie działać.

Konfiguracja

Moduł jest zaprojektowany tak, aby działał dla większości przypadków użycia, ale można go łatwo dostosować poprzez funkcję konfiguruj. Na przykład, aby stworzyć jaśniejszy motyw i wyłączyć domyślną przycisk Filtr w górnej lewej części widoku katalogowego:

  1. W StarterPlayerScripts utwórz nowy LocalScript i zmień go na KonfigurujSklep .

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

    Lokalny Skrypt - KonfigurujMerchBooth

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

Dodawanie przedmiotów

Co to jest eksponować bez eksponować? Następne sekcje wyjaśniają, jak dodać zasoby dla awatara, przepustki i produkty dla rozwój do swojego eksponować.

Zasoby dla awatara

Przedmioty takie jak odzież i akcesoria muszą być dodane poprzez ich identyfikator zasobu położony na stronie szczegółów przedmiotu w Sklepie Avatar.

  1. Utwórz Script w 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. Kopiuj ID zasobów z ich strony internetowej Sklep Avatar. Na przykład, ID czapki béjsbolowej Roblox to 607702162.

  3. Wklej każdy skopiowany identyfikator do listy wierszowej w tabeli items. Domyślnie pozycje pojawiają się w widoku katalogowym w porządku alfabetycznym, ale możesz dostosować sortowanie używając ustawićSortCatalogSort.

    Skrypt - Dodaj zasoby awatara

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Czapka Bejsbolowa Roblox
    4819740796, -- Roblox
    1374269, -- Uszy Kotka
    11884330, -- Okulary dla nerdów
    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

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

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

    Skrypt - Dodaj pasy

    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 Panelu twórcy i wybierz eksperyment.

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

  4. Kliknij przycisk dla przepustki i wybierz Kopiuj ID zasobu .

  5. Wklej każdy skopiowany identyfikator do listy w formie komy-zakropionej w tabeli items i włącz Mapa.InfoType.GamePass jako drugi parametr dla Enum.InfoType.GamePass, aby określić, że przedmioty są przepustkami. Domyślnie przedmioty będą pojawiać się w

    Skrypt - Dodaj pasy

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- Zimna Zbroja Ognia
    28521575, -- Tarcza Slime
    }
    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 Rozwiniętych

Dodanie produktów dla programistów wymaga ID produktu, które można znaleźć w Kreator Dashboard.

  1. Utwórz Script w 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 Panelu twórcy i wybierz eksperyment.

  3. W lewej kolumnie, pod Monetyzacją, wybierz Produkty dla Rozwójca.

  4. Kliknij przycisk dla produktu i wybierz Kopiuj ID zasobu .

  5. Wklej każdy skopiowany identyfikator do listy w formie kropki-zakropionej w tabeli items i włącz Ennum.InfoType.Product jako drugi parametr dla Enum.InfoType.Product, aby wskazać, że przedmioty są produktami rozwozowników. Domyślnie przedmioty pojaw

    Skrypt - Dodaj produkty dla programistów

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Uzupełnienie many
    1257880672, -- Eliksir Leczenia
    }
    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

Przycisk katalogu niestandardowego

Domyślnie, przycisk katalogowy pozwala graczom otworzyć kabinę w dowolnym momencie.

W niektórych przypadkach może być użyteczne usunąć ten przycisk i połączyć posiadać:

  1. Utwórz nowy przycisk, o którym mowa w Przyciski .

  2. Utwórz LocalScript jako dziecko obiektu przycisku.

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

    Lokalny Skrypt - Przycisk Katalogu

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

Zakupione regiony

Przydatnym sposobem na zwiększenie sprzedaży w swoim doświadczeniu jest automatyczne pokazanie kabiny sprzedaży, gdy gracz wchodzi w obszar.

Aby stworzyć regiony sklepowe:

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

    Zablokuj, aby wykryć, gdy gracze zbliżą się do przodu licznika sklepu
  2. Używając sekcji Tagi właściwości bloku lub Studio's Tag Editor, zastosuj tag ShopRegion na bloku, aby 2> Class.CollectionService2> wykrył go.

  3. Ustaw Transparency części na maksymalny, aby ukryć ją od graczy w doświadczeniu. Włącz również CanCollide i CanQuery właściwości, aby uniknąć fizycznego kolidowania z nią i wykrywania przez sieci.

  4. Wprowadź nowy LocalScript pod StarterPlayerScripts .

  5. W nowym skrypcie wklej następujący kod, który używa Touched i TouchEnded wydarzeń, aby wykryć, gdy postacie wchodzą/wychodzą z regionu i wzywają otwarty sklep internetowy i 2> zamknięty sklep internetowy2>,

    Lokalny Skrypt

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Usuń przycisk katalogu domyślnego
    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
    -- Przeglądaj obszary sklepu
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Wykryj, gdy regiony nieobsługiwane sklepu płyną
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Wskazówki dotyczące bliskości

Jako alternatywę dla 2D witryny katalogowej możesz dodać zaproszenia do bliskości nad obiektami w doświadczeniu. To zachęca graczy do odkrywania przedmiotów w środowisku 3D, zapobiega im przeglądanie ich sami na swoim własnym awatarze, zakupy i natychmiastowe ich wyposażenie. Zobacz dodajPrzyciskBliskości dla szczegółów.

Zmiana efektu wyposażenia

Domyślnie kabina sprzedaży towarów pokazuje ogólny efekt błysku, gdy gracz używa przedmiotu z niej. Aby zmienić efekt, ustaw particleEmitterTemplate na swojej własnej instancji ParticleEmitter w wezwaniu require.

Lokalny Skrypt - KonfigurujMerchBooth

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

Widoczność GUI

Domyślnie kabina sprzedaży towarów ukrywa wszystkie ScreenGuis i CoreGuis kiedy jej UI się pojawia, w tym czat, rankingwyników i inne włączone przez Roblox. Jeśli chcesz wyłączyć ten zachowanie, ustaw hideOtherU

Lokalny Skrypt - KonfigurujMerchBooth

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

Ruch postaci

Możliwe jest, aby zapobiec znakomitarnej ruchu, gdy są w sklepie. Można to zrobić ustawiając disableCharacterMovement na true w wezwaniu configure.

Lokalny Skrypt - KonfigurujMerchBooth

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

Referencja API

Typy

Rzecz

Przedmioty w sklepie są reprezentowane przez słownik z następującymi parami kluczowych. Przedmioty można zbierać poprzez funkcję getItems lub wydarzenie itemAdded.

KluczTypOpis
assetIdliczbaID katalogu przedmiotu, przekazane do addItemAsync.
titleciągTytuł przedmiotu, który pojawia się w katalogu.
priceliczbaCena przedmiotu w Robux.
opisciągOpis przedmiotu, jak wygląda w katalogu.
assetTypeciągStrumień przedstawiający wpisywaćakcesorium przedmiotu.
isOwnedbooleanCzy obecny gracz posiada przedmiot.
creatorNameciągTwórca przedmiotu, jak pokazano w katalogu.
creatorTypeEnum.CreatorTypeTyp twórcy dla przedmiotu.

Enumy

MerchBooth.Zarządzanie

Używany wraz z setControlKeyCodes , aby dostosować klucze i przyciski gamepadu do interakcji z stoiskiem handlowym.

NazwaPodsumowanie
ProximityPromptsPrzycisk klucza i / lub przycisku gamepad'a, aby otworzyć widok przedmiotu, gdy zaprośniki są skonfigurowane.
OpenMerchBoothPrzycisk klucza i / lub przycisku gamepad'a, aby otworzyć stoiska handlowego.
CloseMerchBoothPrzycisk klucza i / lub przycisku gamepad'a, aby zamknąć stoiska handlowego.
FilterKlucz i/lub przycisk gamepadu, aby użyć domyślnego Filtruj pulldown w górnej lewej obszarze widoku katalogowego.
ViewItemPrzycisk klucza i/lub przycisku gry, aby otworzyć określony widok kabiny.
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

konfigurować

konfigurować(config: table )

Przywraca domyślne opcje konfiguracji strony klienta poprzez następujące klucze/werte w tabeli config. Ta funkcja może być wywołana tylko z LocalScript .

KluczOpisDomyślny
backgroundColorGłówny kolor tła okna ( Color3 ).[0, 0, 0]
cornerRadiusOkrągły rozmiar dla głównego okna ( UDim ).(0, 16)
cornerRadiusSmallOkrągły rozmiar krawędzi dla elementów w oknie ( UDim ).(0, 8)
textFontFont "głównego tekstu", takich 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 zmian głównego tekstu ( Color3 ).[153, 153, 158]
headerFontFonty tekstu używane do tytułu okna ( Enum.Font ).GothamMedium
headerTextSizeRozmiar tekstu nagłówka używany do tytułu okna.18
titleFontFont tytułowy używany do nazw przedmiotów na stronie szczegółów przedmiotu ( Enum.Font ).GothamBold
titleTextSizeRozmiar tekstu tytułowego używany do nazw przedmiotów na stronie szczegółów przedmiotu.28
buttonColorKolor tła dla większych przycisków w paśmie klikalnym, takich jak główny przycisk zakupu w widoku przedmiotu ( Color3 ).[255, 255, 255]
buttonTextColorKolor tekstu dla większych przycisków w państwie, w którym można kliknąć, 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 nieklikalnym stanie ( Color3 ).[153, 153, 158]
inactiveButtonTextColorKolor tekstu dla wszystkich przycisków w nieklikalnym stanie ( Color3 ).[255, 255, 255]
particleEmitterTemplateOpcjonalny niestandardowy ParticleEmitter instans, który pojawia się i gra na equip.
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,
})

dodajZwieszczone

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

Asynchronicznie dodaje pozycję do kiosku, aby była ona kwalifikująca się do zakupu w doświadczeniu. assetId to ID zasobu przedmiot, productType to zasobu Enum.InfoType i 1> hideFromCatalog1> można użyć do ukrycia pozycji w widoku katalogu.

Zobacz Dodawanie przedmiotów dla szczegółów, ponieważ użycie zmienia się nieco dla zasobów w porównaniu z przepustkami lub 2>produktami dla rozwój2> .

Skrypt - Dodaj zasoby awatara

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Czapka Bejsbolowa Roblox
4819740796, -- Roblox
1374269, -- Uszy Kotka
11884330, -- Okulary dla nerdów
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 pasy

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- Zimna Zbroja Ognia
28521575, -- Tarcza Slime
}
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łnienie many
1257880672, -- Eliksir Leczenia
}
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ńPrzedmiot

dostaćPrzedmioty": table

Zwraca dyktary reprezentujące wszystkie rejestrowane obecnie pozycje. Każdy przedmiotjest tożsamością zasobu jako ciągi każda wartość klucza jest Script. Ta funkcja może być wywołana tylko z Class.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 )

Narejestruje przedmiot wcześniej dodany za pomocą addItemAsync, usuwając jego płytę w widoku katalogowym i wszystkie powiadomienia o bliskości przypisane do niego. Ta funkcja 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

dodajPrzyciskBliskości

dodajPrzyciskBliskości(adornee: BasePart | Model | Attachment , assetId: 1> number1> )

Dodaje powiadomienie o bliskości nad adornee, które wyświetli widok przedmiotu, dany jego ID. Można używać jako alternatywy dla 2D-wizualizacji katalogu, zachęcając graczy do odkrywania przedmiotów w środowisku 3D.

Uwaga, że przed przyciskiem bliskości można dodać przedmiot poprzez dodajPrzedmiotAsync, aby przycisk bliskości nie był przypisany do obiektu. Zobacz również usuńPrzyciskBliskości, aby usunąć okienko prośby o bliskość z obiektu.

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

usuńPrzyciskBliskości

usuńPrzyciskBliskości(adornee: BasePart | Model | Attachment )

Usuwa wniosek o bliskość generowany przez dodajPrzyciskBliskości. Ta funkcja 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 item = workspace:FindFirstChild("Robox")
if item then
MerchBooth.addProximityButton(item, 4819740796)
end
-- Po pewnym czasie usuń wskazówkę
task.wait(5)
MerchBooth.removeProximityButton(item)
end

setKatalogSort

setCatalogSort(sortFunction: function>: boolean

Ustawia funkcję sortowania sortFunction , aby była używana w widoku katalogowym. Dostarczona funkcja sortowania może używać logiki opartej na informacjach item . Ta funkcja może być wywołana tylko z price.

Tu są przykłady do 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 High-to-Low

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 & Alphabetical

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)

ustawKluczeKontrolne

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

Konfiguruje wartości klucza i przycisku dla interakcji z kabiną sprzedaży. Pierwszy parametr musi być MerchBooth.Controls zapisem i drugi parametr to tabela zawierająca klucze keyboard i/lub gamepad z odpowiadającym 2> Amount.KeyCode2> enums.

Lista ( control )Domyślny keyCodes Klucze/Wartości
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,
})

otwartyKiosk

otwartyMercBooth(%)

Otwiera okno kabiny sprzedaży (jeśli jest zamknięte) i przegląda katalog. 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()

otwartyPrzeglad

otwórzItemView(itemId: number )

Przegląda pojedynczą widok przedmiotu danego itemId, otwierając okno kabiny sprzedaży, jeśli jest ona obecnie zamknięta. 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(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
end

Przycisk katalogowy

ToggleCatalogButton(required: button

Przełączałą na/wyłącz przycisk katalogowy po prawej stronie ekranu. To jest użyteczne, gdy wdrożysz niestandardowy przycisk lub ograniczysz wygląd kabiny sprzedaży do obszarów lub powiadomień o bliskości. Można to zwołać tylko z 2>Class.LocalScript2>.

Lokalny Skrypt

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

isMerchBoothOtwórz

isMerchBoothOpen() Tuple

Wykonuje true jeśli katalog lub widok przedmiotu jest otwarty. Jeśli widok przedmiotu jest otwarty, to ID zasobu przedmiotu jest zwracane jako druga wartość. 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(4819740796)
end)
if success then
MerchBooth.openItemView(4819740796)
local isOpen, itemId = MerchBooth.isMerchBoothOpen()
print(isOpen, itemId)
end

zamknijSkrzynię

zamknijSkrzynięZdjęciami()

Zamknięcie okna kabiny sprzedaży. 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()

isMerchBoothWłączone

isMerchBoothEnabled() boolean

Funkcja ta może być używana wraz z setEnabled, aby sprawdzić, czy kabina handlowa jest obecnie włączona lub nie. Można ją wzywać tylko z LocalScript.

setWłączone

setEnabled(łączące: boolean )

Ustawia, czy cały stoiska handlowy jest włączony lub nie. Gdy jest wyłączony, ta funkcja usuwa całą UI, w tym wskazówki dotykowe i odłącza wszystkie wydarzenia. Ta funkcja może być uruchomiona 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

przedmiotDodano

Występuje, gdy przedmiot jest dodany za pośrednictwem dodajItemAsync. Wydarzenie może być połączone tylko w Script.

Parametry
assetId: numberIdentyfikator zasobu przedmiotu.
itemInfo: tableSłownik informacji przedmiotu 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)

usuniętyPrzedmiot

Występuje, gdy przedmiot jest usunięty za pośrednictwem usuńPrzedmiot. Ten wydarzenie może być połączony tylko w Script .

Parametry
assetId: numberIdentyfikator 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)

merchBoothOtwarty

Wyst?puje, gdy otwarty zostanie jeden z katalogu lub szczeg?lny widok przedmiotu.

Lokalny Skrypt

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

zamknięty merchBooth

Wyst?puje, gdy katalogowy lub szczeg?lny widok przedmiotu zostanie zamkni?ty.

Lokalny Skrypt

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

aktualny katalog

Wystrzela się, gdy otwarta zostanie widok katalogu.

Lokalny Skrypt

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

katalogViewClosed

Wystrzela się, gdy widok katalogu zostanie zamknięty.

Lokalny Skrypt

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

otwartyPrzejdź

Wystrzeliwany jest, gdy otwarty zostanie szczegółowy widok 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

Wystrzela się, gdy szczegółowy wgląd na przedmiot 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)