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:
Upewnij się, że wybrano sortowanie modele , a następnie kliknij przycisk Zobacz wszystko dla kategorii .
Zlokalizuj i kliknij pasek modułów rozwojowych .
Zlokalizuj moduł stoisko handlowe i kliknij go, lub przeciągnij i upuść do widoku 3D.
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:
W StarterPlayerScripts , utwórz nowy LocalScript i zmień nazwę na Konfiguruj stoisko handlowe .
Wklej następujący kod do nowego skryptu.
LocalScript - Konfiguruj stoisko handlowelocal 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.
Stwórz Script w ramach ServerScriptService i wklej następujący kod.
Skrypt - Dodaj zasoby awataralocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendKopuj ID przedmiotów zasobów z ich URL strony internetowej Sklep z awatarami. Na przykład ID Czapka baseballowa Roblox jest 607702162 .
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 awataralocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {607702162, -- Czapka baseballowa Roblox4819740796, -- Roboksy1374269, -- Uszy kota11884330, -- Nerdy okulary10476359, -- Papierowa czapka}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
Przepustki
Dodawanie przepustek wymaga identyfikatorów przepustek, które można znaleźć w panelu administratora.
Stwórz Script w ramach ServerScriptService i wklej następujący kod.
Skrypt - Dodaj przepustkilocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendPrzejdź do Pulpitu nawigacyjnego twórcy i wybierz doświadczenie.
W lewej kolumnie, pod Monetyzacją , wybierz Przepustki .
Najedź kursorem na miniaturę przepustki, kliknij przycisk ⋯ i wybierz Kopiuj ID zasobu z menu kontekstowego.
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 przepustkilocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {4343758, -- Pancerz ColdFyre28521575, -- Tarcza śluzu}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
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.
Stwórz Script w ramach ServerScriptService i wklej następujący kod.
Skrypt - Dodaj produkty dla programistówlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endendPrzejdź do Pulpitu nawigacyjnego twórcy i wybierz doświadczenie.
W lewej kolumnie, pod Monetyzacją , wybierz Produkty dla programistów .
Najedź kursorem na miniaturaproduktu, kliknij przycisk ⋯ i wybierz Kopiuj ID zasobu z menu kontekstowego.
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ówlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))local items = {1236602053, -- Uzupełnianie energii1257880672, -- Eliksir leczący}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
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ć:
Stwórz nowy przycisk, jak opisano w Przyciskach.
Stwórz LocalScript jako dziecko obiektu przycisku.
Wklej następujący kod do nowego skryptu.
LocalScript - Przycisk katalogu niestandardowegolocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Usuń domyślną przycisk kataloguMerchBooth.toggleCatalogButton(false)-- Połącz niestandardowy przyciskscript.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:
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 Używając sekcji Tagi właściwości bloku lub edytora tagów w Studio, zastosuj tag do bloku, aby wykrył go>.
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.
Wprowadź nowy LocalScript pod StarterPlayerScripts .
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 skryptlocal Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))-- Usuń domyślną 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-- Powtarzaj istniejące oznaczone regiony sklepówfor _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(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.SpheremyParticleEmitter.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.
Klucz | Typ | Opis |
---|---|---|
assetId | number liczba | ID katalogowe przedmiotu, przekazane do addItemAsync. |
title | ciąg | Tytuł przedmiotu, jak pojawia się w katalogu. |
price | number liczba | Cena przedmiotu w Robux. |
description | ciąg | Opis przedmiotu tak jak pojawia się w katalogu. |
assetType | ciąg | Sznurek reprezentujący wpisywaćakcesorium przedmiotu. |
isOwned | bool | Czy obecny gracz posiada przedmiot. |
creatorName | ciąg | Twórca przedmiotu, jak pokazano w katalogu. |
creatorType | Enum.CreatorType | Typ 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.
Nazwa | Podsumowanie |
---|---|
ProximityPrompts | Przycisk klawiatury i/lub gamepada do otwarcia widoku przedmiotu, gdy komunikaty o zbliżeniu są skonfigurowane. |
OpenMerchBooth | Przycisk klawiatury i/lub gamepada, aby otworzyć stoisko handlowe |
CloseMerchBooth | Przycisk klawiatury i/lub gamepada do zamknięcia stoisk handlowych |
Filter | Przycisk klawiatury i/lub gamepada do użycia domyślnego filtra w górnej lewej części widoku katalogu. |
ViewItem | Przycisk 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.
Klucz | Opis | Domyślny |
---|---|---|
backgroundColor | Główny kolor tła okna ( Color3 ). | [0, 0, 0] |
cornerRadius | Promień kąta dla głównego okna ( UDim ). | (0, 16) |
cornerRadiusSmall | Promień kąta dla elementów wewnątrz okna ( UDim ). | (0, 8) |
textFont | Font "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 do niektórych odmian głównego tekstu (Color3). | [153, 153, 158] |
headerFont | Font tekstu nagłówka używany do tytułu okna (Enum.Font). | GothamMedium |
headerTextSize | Rozmiar tekstu nagłówka używanego do tytułu okna. | 18 |
titleFont | Czcionka tekstu tytułu używana do nazw przedmiotów na stronie szczegółów przedmiotu (Enum.Font). | GothamBold |
titleTextSize | Rozmiar tekstu tytułowego używanego do 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 cen w widoku katalogowym lub przycisk Spróbuj ( Color3 ). | [34, 34, 34] |
secondaryButtonTextColor | Kolor tekstu dla mniejszych przycisków, takich jak przyciski cen w widoku katalogowym lub przycisk Spró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 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.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 |
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 thenMerchBooth.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: number | ID zasobu przedmiotu. |
itemInfo: table | Sł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: number | ID 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)