Stand Merch

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

The MerchBooth modul pengembang memungkinkan Anda menawarkan aset avatar , pas , dan produk pengembang untuk dijual langsung dalam pengalaman Anda.Pemain dapat menelusuri item, melihat pratinjau aset di avatar mereka sendiri, membeli item, dan langsung menggunakannya atau melengkapinya - semua tanpa meninggalkan pengalaman mereka.Ini dapat membantu Anda monetarisasi pengalaman Anda dan mendapatkan pendapatan melalui biaya afiliasi 40% yang terkait dengan menjual item pencipta lain.

Penggunaan modul

Instalasi

Untuk menggunakan modul MerchBooth dalam pengalaman:

  1. Dari tab Pandangan, buka Kotak Alat dan pilih tab Toko Pencipta .

    Toolbox toggle button in Studio
  2. Pastikan pengurutan Model dipilih, lalu klik tombol Lihat Semua untuk Kategori .

  3. Temukan dan klik ubin Modul Pengembang .

  4. Temukan modul Stand Merch dan klik, atau seret dan lepaskan ke dalam tampilan 3D.

  5. Di jendela Explorer, pindahkan seluruh model MerchBooth ke ServerScriptService .Setelah menjalankan pengalaman, modul akan didistribusikan ke berbagai layanan dan mulai berjalan.

Konfigurasi

Modul sudah diatur sebelumnya untuk bekerja untuk sebagian besar kasus penggunaan, tetapi dapat dengan mudah disesuaikan melalui fungsi konfigurasi.Sebagai contoh, untuk membuat tema yang lebih ringan dan menonaktifkan tombol default Filter di bagian atas kiri area tampilan katalog:

  1. Di StarterPlayerScripts , buat yang baru LocalScript dan ganti namanya menjadi KonfigurasiMerchBooth .

  2. Tempelkan kode berikut ke skrip baru.

    Skrip Lokal - KonfigurasiBooth Merch

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

Tambahkan item

Apa itu stan dagang tanpa merch? Bagian berikut menjelaskan cara menambahkan aset avatar , pas , dan produk pengembang ke stan dagang Anda.

Aset avatar

Item seperti pakaian dan aksesori harus ditambahkan melalui ID aset mereka yang terletak di halaman rincian item di Toko Avatar.

  1. Buat Script di dalam ServerScriptService dan tempelkan kode berikut.

    Skrip - Tambahkan Aset Avatar

    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. Salin ID aset item dari URL situs web Toko Avatar mereka. Misalnya, ID dari Topi Bisbol Roblox adalah 607702162 .

  3. Tempelkan setiap ID yang disalin ke dalam daftar terpisah dengan koma di dalam tabel items.Secara default, item muncul dalam tampilan katalog dalam urutan alfabetis, tetapi Anda dapat menyesuaikan pengurutan menggunakan setCatalogSort .

    Skrip - Tambahkan Aset Avatar

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    607702162, -- Topi Bisbol Roblox Dasar
    4819740796, -- Robox
    1374269, -- Telinga Kucing
    11884330, -- Kacamata Nerd
    10476359, -- Topi Kertas
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    MerchBooth.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Kepas

Menambahkan pas memerlukan ID pas yang dapat ditemukan di Dashboard Pencipta.

  1. Buat Script di dalam ServerScriptService dan tempelkan kode berikut.

    Skrip - Tambahkan Pas

    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. Navigasikan ke Dashboard Pencipta dan pilih pengalaman.

  3. Di kolom kiri, di bawah Monetarisasi , pilih Pas .

  4. Pasang mouse di atas thumbnail pas, klik tombol dan pilih Copy Asset ID dari menu konteks.

  5. Tempelkan setiap ID yang disalin ke daftar terpisah dengan koma dalam tabel items dan dan termasuk Enum.InfoType.GamePass sebagai parameter kedua untuk addItemAsync untuk menunjukkan bahwa item disampaikan.Secara default, item akan muncul di tampilan katalog dalam urutan alfabetis, tetapi pengurutan dapat disesuaikan melalui setCatalogSort .

    Skrip - Tambahkan Pas

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    4343758, -- Armor ColdFyre
    28521575, -- Pelindung 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

Produk Pengembang

Menambahkan produk pengembang membutuhkan ID produk yang dapat ditemukan di Dashboard Pencipta.

  1. Buat Script di dalam ServerScriptService dan tempelkan kode berikut.

    Skrip - Tambahkan Produk Pengembang

    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. Navigasikan ke Dashboard Pencipta dan pilih pengalaman.

  3. Di kolom kiri, di bawah Monetarisasi , pilih Produk Pengembang .

  4. Pasang mouse di atas thumbnail produk, klik tombol dan pilih Copy Asset ID dari menu konteks.

  5. Tempelkan setiap ID yang disalin ke daftar terpisah dengan koma dalam tabel dan termasuk dan sebagai parameter kedua untuk addItemAsync untuk menunjukkan bahwa item adalah produk pengembang.Secara default, item muncul di tampilan katalog dalam urutan alfabetik, tetapi Anda dapat menyesuaikan pengurutan menggunakan setCatalogSort .

    Skrip - Tambahkan Produk Pengembang

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    local items = {
    1236602053, -- Isi Ulang Mana
    1257880672, -- Ramuan Penyembuhan
    }
    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

Tombol katalog khusus

Secara default, tombol katalog sisi kanan membiarkan pemain membuka stan kapan saja.

Dalam beberapa kasus, mungkin berguna untuk menghapus tombol ini dan menghubungkan milik Anda memiliki:

  1. Buat tombol baru seperti yang dijelaskan di Tombol.

  2. Buat LocalScript sebagai anak dari objek tombol.

  3. Tempelkan kode berikut ke skrip baru.

    Skrip Lokal - Tombol Katalog Kustom

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Hapus tombol katalog default
    MerchBooth.toggleCatalogButton(false)
    -- Hubungkan tombol khusus
    script.Parent.Activated:Connect(function()
    MerchBooth.openMerchBooth()
    end)

Wilayah yang dapat dibeli

Cara berguna untuk mendorong pembelian dalam pengalaman Anda adalah dengan secara otomatis menampilkan stan pedagang saat pemain memasuki area.

Untuk membuat wilayah belanja:

  1. Buat blok Anchored yang mencakup wilayah deteksi.Pastikan blok cukup tinggi untuk bertabrakan dengan PrimaryPart model karakter ( HumanoidRootPart secara default).

    Blok untuk mendeteksi ketika pemain mendekati depan konter toko
  2. Menggunakan bagian Tag dari properti blok, atau Editor Tag Studio, terapkan tag ShopRegion ke blok sehingga CollectionService mendeteksi.

  3. Atur bagian Transparency ke maksimum untuk menyembunyikannya dari pemain dalam pengalaman.Juga nonaktifkan properti CanCollide dan CanQuery-nya sehingga objek tidak secara fisik bertabrakan dengannya dan raycast tidak mendeteksi hal itu.

  4. Sisipkan baru LocalScript di bawah StarterPlayerScripts .

  5. Dalam skrip baru, tempel kode berikut yang menggunakan Touched dan TouchEnded peristiwa untuk mendeteksi kapan karakter memasuki/meninggalkan wilayah dan memanggil openMerchBooth dan closeMerchBooth untuk membuka/tutup GUI booth.

    Skrip Lokal

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
    -- Hapus tombol katalog default
    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
    -- Berulang melalui wilayah toko ber标签 yang ada
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Deteksi ketika wilayah toko non-streaming mengalir masuk
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Peringatan jarak dekat

Sebagai alternatif dari pandangan katalog 2D, Anda dapat menambahkan prompt jarak dekat di objek dalam pengalaman.Ini mendorong pemain untuk menemukan item di lingkungan 3D, mempratinjau mereka di avatar mereka sendiri, membelinya, dan langsung melengkapinya.Lihat tambahProximityButton untuk rincian.

Ubah efek perlengkapan

Secara default, stan pedagang menunjukkan efek kilauan umum saat pemain memperlengkapi item dari itu.Untuk mengubah efek, atur particleEmitterTemplate ke instansi Anda sendiri dari ParticleEmitter dalam panggilan konfigurasi.

Skrip Lokal - KonfigurasiBooth Merch

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

Keterlihatan GUI

Secara default, stan dagang menyembunyikan semua ScreenGuis dan CoreGuis ketika UI muncul, termasuk obrolan, papan peringkat, dan lainnya yang dimasukkan oleh Roblox.Jika Anda ingin menonaktifkan perilaku ini, atur hideOtherUis ke false dalam panggilan konfigurasi.

Skrip Lokal - KonfigurasiBooth Merch

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

Gerakan karakter

Bisa menjadi menguntungkan untuk mencegah karakter bergerak saat mereka berada di stan barang dagangan.Ini dapat dilakukan dengan menetapkan disableCharacterMovement ke true dalam panggilan konfigurasi.

Skrip Lokal - KonfigurasiBooth Merch

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

Referensi API

Jenis

Barang

Item di stan dagang diwakili oleh kamus dengan pas kunci-nilai berikut.Item dapat dikumpulkan melalui fungsi mendapatkan item atau acara item ditambahkan.

KunciJenisDeskripsi
assetIdangkaID Katalog dari item, seperti yang dikirim ke addItemAsync.
titlestringJudul item seperti yang muncul di katalog.
priceangkaHarga item dalam Robux.
descriptionstringDeskripsi item seperti yang muncul di katalog.
assetTypestringString yang mewakili ketikaksesori item.
isOwnedboolApakah pemain saat ini memiliki item.
creatorNamestringPembuat item seperti yang ditunjukkan dalam katalog.
creatorTypeEnum.CreatorTypeJenis pencipta untuk item.

Enums

MerchBooth.Controls

Digunakan bersama dengan setControlKeyCodes untuk menyesuaikan tombol kunci dan gamepad untuk berinteraksi dengan stan barang dagangan.

NamaSingkatan
ProximityPromptsTombol kunci dan/atau gamepad untuk membuka tampilan item saat peringatan jarak jauh dikonfigurasi.
OpenMerchBoothTombol kunci dan/atau gamepad untuk membuka stan dagang.
CloseMerchBoothTombol kunci dan/atau gamepad untuk menutup stan dagang.
FilterTombol kunci dan/atau gamepad untuk menggunakan default Filter pulldown di bagian atas kiri area tampilan katalog.
ViewItemTombol kunci dan/atau gamepad untuk membuka tampilan item stan barang khusus.
Skrip Lokal

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

Fungsi

mengonfigurasi

mengonfigurasi(config: table )

Menggantikan opsi konfigurasi sisi klien default melalui kunci/nilai berikut di tabel config.Fungsi ini hanya dapat dipanggil dari LocalScript .

KunciDeskripsiStandar
backgroundColorWarna latar belakang utama dari jendela ( Color3 ).[0, 0, 0]
cornerRadiusRadius sudut untuk jendela utama ( UDim ).(0, 16)
cornerRadiusSmallRadius sudut untuk elemen di dalam jendela ( UDim ).(0, 8)
textFontFont "teks utama" seperti harga, deskripsi, dan informasi umum lainnya ( Enum.Font ).Gotham
textSizeUkuran teks utama.14
textColorWarna teks utama ( Color3 ).[255, 255, 255]
secondaryTextColorWarna yang digunakan untuk beberapa variasi teks utama ( Color3 ).[153, 153, 158]
headerFontFont teks kepala yang digunakan untuk judul jendela ( Enum.Font ).GothamMedium
headerTextSizeUkuran teks kepala yang digunakan untuk judul jendela.18
titleFontFont teks judul yang digunakan untuk nama item di halaman rincian item ( Enum.Font ).GothamBold
titleTextSizeUkuran teks judul yang digunakan untuk nama item di halaman rincian item.28
buttonColorWarna latar belakang untuk tombol yang lebih besar dalam keadaan dapat diklik, seperti tombol pembelian utama di tampilan item ( Color3 ).[255, 255, 255]
buttonTextColorWarna teks untuk tombol yang lebih besar dalam keadaan klikable, seperti tombol pembelian utama di tampilan item ( Color3 ).[0, 0, 0]
secondaryButtonColorWarna latar belakang untuk tombol yang lebih kecil seperti tombol harga di tampilan katalog atau tombol Coba Pada ( Color3 ).[34, 34, 34]
secondaryButtonTextColorWarna teks untuk tombol yang lebih kecil seperti tombol harga di tampilan katalog atau tombol Coba pada ( Color3 ).[255, 255, 255]
inactiveButtonColorWarna latar belakang untuk semua tombol dalam keadaan tidak dapat diklik ( Color3 ).[153, 153, 158]
inactiveButtonTextColorWarna teks untuk semua tombol dalam keadaan tidak dapat diklik ( Color3 ).[255, 255, 255]
particleEmitterTemplateopsional kustom ParticleEmitter instansi yang muncul dan dimainkan di equip.
Skrip Lokal

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

tambahkanItemAsync

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

Secara asinkron menambahkan item ke stan barang sehingga memenuhi syarat untuk dibeli dalam pengalaman. assetId adalah ID aset item, productType adalah enumerasi item Enum.InfoType , dan hideFromCatalog dapat digunakan untuk menyembunyikan item di tampilan katalog.

Lihat Menambahkan Item untuk rincian, karena penggunaan berbeda sedikit untuk aset versus pas permainan atau produk pengembang .

Skrip - Tambahkan Aset Avatar

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
607702162, -- Topi Bisbol Roblox Dasar
4819740796, -- Robox
1374269, -- Telinga Kucing
11884330, -- Kacamata Nerd
10476359, -- Topi Kertas
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Skrip - Tambahkan Pas

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
4343758, -- Armor ColdFyre
28521575, -- Pelindung 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
Skrip - Tambahkan Produk Pengembang

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local items = {
1236602053, -- Isi Ulang Mana
1257880672, -- Ramuan Penyembuhan
}
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

dapatkanItem

mendapatkan item:: table

Kembalikan kamus yang mewakili semua item yang terdaftar saat ini.Setiap kunci adalah ID aset item sebagai string, dan nilai setiap unitadalah Item.Fungsi ini hanya dapat dipanggil dari Script .

Skrip

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

menghapusItem

menghapusItem(asetId: number )

Menghapus item yang sebelumnya ditambahkan dengan addItemAsync, menghapus ubinnya di pandangan katalog dan setiap prompt kedekatan yang ditugaskan kepadanya.Fungsi ini hanya dapat dipanggil dari Script.

Skrip

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Setelah beberapa waktu, hapus item
task.wait(5)
MerchBooth.removeItem(4819740796)
end

tambahkanTombol Kedekatan

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

Menambahkan peringatan proximity di atas yang diberikan adornee yang akan memicu tampilan pandangan pembelian item, mengingat ID asetnya.Ini dapat digunakan sebagai alternatif untuk pandangan katalog 2D, mendorong pemain untuk menemukan item di lingkungan 3D.

Perhatikan bahwa item harus ditambahkan melalui addItemAsync sebelum tombol proximity dapat ditugaskan kepadanya.Lihat juga removeProximityButton untuk menghapus prompt kedekatan dari objek.

Skrip

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

hapusTombol Kedekatan

menghapusTombol Kedekatan(adornee: BasePart | Model | Attachment )

Menghapus peringatan proximity yang dihasilkan melalui addProximityButton. Fungsi ini hanya dapat dipanggil dari Script .

Skrip

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
-- Setelah beberapa saat, hapus perintah
task.wait(5)
MerchBooth.removeProximityButton(item)
end

aturKatalogSortir

setCatalogSort(sortFunction: function ): boolean

Mengatur fungsi penyortiran sortFunction untuk digunakan dalam tampilan katalog.Fungsi penyortiran yang disediakan dapat menggunakan logika berdasarkan Item informasi seperti price atau title .Fungsi ini hanya dapat dipanggil dari LocalScript .

Berikut adalah beberapa contoh untuk mengurutkan katalog:

Harga Rendah ke Tinggi

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)
Harga Tinggi ke Rendah

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage:WaitForChild("MerchBooth"))
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)
Harga Rendah ke Tinggi & Alfabetik

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)

setControlKeyCodes

setControlKeyCommands(kontrol: MerchBooth.Controls , kode kunci: table )

Konfigurasi nilai kunci dan tombol untuk interaksi dengan stan pedagang.Parameter pertama harus menjadi enum MerchBooth.Controls dan parameter kedua adalah tabel yang berisi kunci keyboard dan/atau gamepad dengan enum yang sesuai Enum.KeyCode.

Enum ( control )Kunci/Nilai Dasar keyCodes default
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
Skrip Lokal

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

openMerchBooth

openMerchBooth()

Membuka jendela stan dagang (jika ditutup) dan menavigasi ke tampilan katalog. Fungsi ini hanya dapat dipanggil dari LocalScript.

Skrip Lokal

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

bukaItemView

openItemView(itemId: number )

Navigasi ke tampilan item tunggal dari itemId yang diberikan, membuka jendela stan barang jika saat ini ditutup.Fungsi ini hanya dapat dipanggil dari LocalScript .

Skrip Lokal

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

tombol katalog beralih

aktifkanTombol Katalog(enabled: boolean )

Beralih pada/mati tombol katalog di sisi kanan layar.Ini berguna saat menerapkan tombol khusus atau membatasi penampilan stan pedagang ke wilayah atau peringatan jarak jauh .Hanya dapat dipanggil dari LocalScript .

Skrip Lokal

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

adalahMerchBoothOpen

isMerchBoothOpen(): Tuple

Kembalikan true jika katalog atau tampilan item terbuka.Jika pandangan item terbuka, ID aset item dikembalikan sebagai nilai kedua.Fungsi ini hanya dapat dipanggil dari LocalScript .

Skrip Lokal

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

tutupMerchBooth

tutupMerchBooth()

Tutup jendela stan dagang. Fungsi ini hanya dapat dipanggil dari LocalScript.

Skrip Lokal

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

adalahMerchBoothEnabled

isMerchBoothEnabled(): boolean

Fungsi ini dapat digunakan bersama dengan setEnabled untuk memeriksa apakah stan pedagang saat ini diaktifkan atau tidak.Hanya dapat dipanggil dari LocalScript .

aturEnabled

setEnabled(enabled: boolean )

Mengatur apakah seluruh stan dagang diaktifkan atau tidak.Saat dinonaktifkan, fungsi ini menghapus seluruh UI, termasuk prompt jarak dekat , dan memutus semua peristiwa .Fungsi ini hanya dapat dipanggil dari LocalScript.

Skrip Lokal

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

Peristiwa

ditambahkan item

Memicu ketika item ditambahkan melalui addItemAsync. Acara ini hanya dapat terhubung di Script .

Parameter
asetId: numberID aset barang.
itemInfo: tableKamus dari Item informasi seperti price atau title .
Skrip

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)

itemDihapus

Memicu ketika item dihapus melalui removeItem. Acara ini hanya dapat terhubung di Script .

Parameter
asetId: numberID aset barang.
Skrip

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

Melepaskan api ketika terbuka detail tampilan katalog atau .

Skrip Lokal

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

merchBoothClosed

Melepaskan api ketika katalog atau rincian item ditutup.

Skrip Lokal

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

katalogViewDibuka

Melepaskan api saat pandangan katalog dibuka.

Skrip Lokal

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

katalogViewClosed

Melepaskan api saat pandangan katalog ditutup.

Skrip Lokal

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

itemViewTerbuka

Memicu ketika terbuka tampilan rincian item.

Skrip Lokal

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

itemViewTutup

Memicu ketika tampilan rincian item ditutup.

Skrip Lokal

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