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

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

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

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:
W StarterPlayerScripts, utwórz nowy LocalScript i zmień jego nazwę na ConfigureMerchBooth.

Wklej następujący kod do nowego skryptu.
LocalScript - ConfigureMerchBoothlocal 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.
Utwórz Script w ServerScriptService i wklej następujący kod.
Script - Dodaj Akcesoria Awatarówlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendSkopiuj ID zasobów przedmiotów z ich URL w Sklepie Awatarów. Na przykład, ID Czapki Baseballowej Roblox to 607702162.

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ówlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {607702162, -- Czapka Baseballowa Roblox4819740796, -- Robox1374269, -- Uszy Kotka11884330, -- Okulary Nerd10476359, -- Kapelusz Papierowy}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
Przepustki
Dodanie przepustek wymaga ID przepustki, które można znaleźć w Panelu Twórcy.
Utwórz Script w ServerScriptService i wklej następujący kod.
Script - Dodaj Przepustkilocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendPrzejdź do Panelu Twórcy i wybierz doświadczenie.
W lewej kolumnie, w sekcji Monetyzacja, wybierz Przepustki.
Najedź na miniaturę przepustki, kliknij przycisk ⋯ i wybierz Skopiuj ID zasobu z menu kontekstowego.

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 Przepustkilocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {4343758, -- Zbroja ColdFyre28521575, -- Tarcza Glutowa}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
Produkty Dewelopera
Dodanie produktów dewelopera wymaga ID produktu, które można znaleźć w Panelu Twórcy.
Utwórz Script w ServerScriptService i wklej następujący kod.
Script - Dodaj Produkty Deweloperalocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendPrzejdź do Panelu Twórcy i wybierz doświadczenie.
W lewej kolumnie, w sekcji Monetyzacja, wybierz Produkty Dewelopera.
Najedź na miniaturę produktu, kliknij przycisk ⋯ i wybierz Kopiuj ID zasobu z menu kontekstowego.

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 Deweloperalocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {1236602053, -- Uzupełnienie Many1257880672, -- Mikstura Lecząca}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
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:
Utwórz nowy przycisk, zgodnie z opisem w Przyciskach.
Utwórz LocalScript jako dziecko obiektu przycisku.

Wklej następujący kod do nowego skryptu.
LocalScript - Przyciski Katalogulocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- Usuń domyślny przycisk kataloguMerchBooth.toggleCatalogButton(false)-- Połącz z niestandardowym przyciskiemscript.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:
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 Używając sekcji Tagi właściwości bloku, zastosuj tag ShopRegion do bloku, aby CollectionService mógł go wykryć.
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.


Wstaw nowy LocalScript w StarterPlayerScripts.

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.
LocalScriptlocal Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- Usuń domyślny przycisk kataloguMerchBooth.toggleCatalogButton(false)local function setupRegion(region: BasePart)region.Touched:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.openMerchBooth()endend)region.TouchEnded:Connect(function(otherPart)local character = Players.LocalPlayer.Characterif character and otherPart == character.PrimaryPart thenMerchBooth.closeMerchBooth()endend)end-- Iteruj przez istniejące oznaczone obszary sklepufor _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(region)end-- Wykryj, kiedy niestrumieniowane obszary sklepu wchodzą w zasięgCollectionService: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 - ConfigureMerchBoothlocal 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.SpheremyParticleEmitter.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 - ConfigureMerchBoothlocal 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 - ConfigureMerchBoothlocal 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.
| Klucz | Typ | Opis |
|---|---|---|
| assetId | number | ID katalogowe przedmiotu, przekazywane do addItemAsync. |
| title | string | Tytuł przedmiotu, jak pojawia się w katalogu. |
| price | number | Cena przedmiotu w Robuxach. |
| description | string | Opis przedmiotu, jak pojawia się w katalogu. |
| assetType | string | String reprezentujący typ akcesorium przedmiotu. |
| isOwned | bool | Czy aktualny gracz posiada przedmiot. |
| creatorName | string | Nazwa twórcy przedmiotu, jak pokazano w katalogu. |
| creatorType | Enum.CreatorType | Typ twórcy przedmiotu. |
Enums
MerchBooth.Controls
Używane wraz z setControlKeyCodes do dostosowania klawiszy i przycisków gamepada do interakcji z kiosk z towarami.
| Nazwa | Streszczenie |
|---|---|
| ProximityPrompts | Klawisz i/lub przycisk gamepada do otwierania widoku przedmiotu, gdy są skonfigurowane proximity prompts. |
| OpenMerchBooth | Klawisz i/lub przycisk gamepada do otwierania kiosku z towarami. |
| CloseMerchBooth | Klawisz i/lub przycisk gamepada do zamykania kiosku z towarami. |
| Filter | Klawisz i/lub przycisk gamepada do używania domyślnego rozwijanego Filtra w lewym górnym rogu widoku katalogu. |
| ViewItem | Klawisz i/lub przycisk gamepada do otwierania konkretnego widoku przedmiotu kiosku z towarami. |
LocalScriptlocal 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.
| Klucz | Opis | Domyślny |
|---|---|---|
| backgroundColor | Główny kolor tła okna (Color3). | [0, 0, 0] |
| cornerRadius | Promień narożnika głównego okna (UDim). | (0, 16) |
| cornerRadiusSmall | Promień narożnika dla elementów wewnątrz okna (UDim). | (0, 8) |
| textFont | Czcionka "głównego tekstu", takiego jak ceny, opisy i inne ogólne informacje (Enum.Font). | Gotham |
| textSize | Rozmiar głównego tekstu. | 14 |
| textColor | Kolor głównego tekstu (Color3). | [255, 255, 255] |
| secondaryTextColor | Kolor używany dla niektórych wariantów głównego tekstu (Color3). | [153, 153, 158] |
| headerFont | Czcionka tekstu nagłówka używana dla tytułu okna (Enum.Font). | GothamMedium |
| headerTextSize | Rozmiar tekstu nagłówka używanego dla tytułu okna. | 18 |
| titleFont | Czcionka tekstu tytułu używanego dla nazw przedmiotów na stronie szczegółów przedmiotu (Enum.Font). | GothamBold |
| titleTextSize | Rozmiar tekstu tytułu używanego dla nazw przedmiotów na stronie szczegółów przedmiotu. | 28 |
| buttonColor | Kolor tła dla większych przycisków w stanie klikalnym, takich jak główny przycisk zakupu w widoku przedmiotu (Color3). | [255, 255, 255] |
| buttonTextColor | Kolor tekstu dla większych przycisków w stanie klikalnym, takich jak główny przycisk zakupu w widoku przedmiotu (Color3). | [0, 0, 0] |
| secondaryButtonColor | Kolor tła dla mniejszych przycisków, takich jak przyciski cenowe w widoku katalogu lub przycisk Wypróbuj (Color3). | [34, 34, 34] |
| secondaryButtonTextColor | Kolor tekstu dla mniejszych przycisków, takich jak przyciski cenowe w widoku katalogu lub przycisk Wypróbuj (Color3). | [255, 255, 255] |
| inactiveButtonColor | Kolor tła dla wszystkich przycisków w stanie nieklikalnym (Color3). | [153, 153, 158] |
| inactiveButtonTextColor | Kolor tekstu dla wszystkich przycisków w stanie nieklikalnym (Color3). | [255, 255, 255] |
| particleEmitterTemplate | Opcjonalna instancja ParticleEmitter, która pojawia się i odtwarza się przy zakładaniu. |
LocalScriptlocal 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.ProximityPrompts | keyboard = Enum.KeyCode.E gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.OpenMerchBooth | gamepad = Enum.KeyCode.ButtonY |
| MerchBooth.Controls.CloseMerchBooth | gamepad = Enum.KeyCode.ButtonB |
| MerchBooth.Controls.Filter | gamepad = Enum.KeyCode.ButtonX |
| MerchBooth.Controls.ViewItem | gamepad = Enum.KeyCode.ButtonA |
LocalScriptlocal 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.
LocalScriptlocal 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.
LocalScriptlocal 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.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local isEnabled = MerchBooth.isMerchBoothEnabled()if isEnabled thenMerchBooth.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: number | ID zasobu przedmiotu. |
| itemInfo: table | Sł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: number | ID 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)