MerchBooth geliştirici modülü, oyun içinde doğrudan avatar varlıkları, geçişler ve geliştirici ürünleri sunmanıza olanak tanır. Oyuncular, öğeleri gözden geçirebilir, varlıkları kendi avatarlarında önizleyebilir, öğeleri satın alabilir ve bunları anında kullanabilir veya takabilir — hepsi oyununuzdan çıkmadan. Bu, oyununuzu monetize etmenize ve diğer yaratıcıların öğelerini satmanın %40'lık ortaklık ücreti aracılığıyla gelir elde etmenize yardımcı olabilir.
Modül kullanımı
Kurulum
MerchBooth modülünü bir oyunda kullanmak için:
Studio'nun Pencere menüsünden veya Ana Sayfa sekmesi araç çubuğundan Araç Kutusu'nu açın ve Yaratıcı Mağaza sekmesini seçin.

Modeller sıralamasının seçili olduğundan emin olun, ardından Kategoriler için Hepsini Gör butonuna tıklayın.

Paketler kutusunu bulun ve tıklayın.
Merch Booth modülünü bulun ve tıklayın veya 3D görünümüne sürükleyip bırakın.

Explorer penceresinde, tüm MerchBooth modelini ReplicatedStorage içine taşıyın. Oyun çalıştırıldığında modül çalışmaya başlayacaktır.
Yapılandırma
Modül, çoğu kullanım durumu için önceden yapılandırılmıştır, ancak configure işlevi aracılığıyla kolayca özelleştirilebilir. Örneğin, daha açık bir tema oluşturmak ve katalog görünümünün sol üst alanındaki varsayılan Filtre butonunu devre dışı bırakmak için:
StarterPlayerScripts içinde yeni bir LocalScript oluşturun ve adını ConfigureMerchBooth olarak değiştirin.

Yeni script'e aşağıdaki kodu yapıştırın.
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})
Öğeleri ekle
Ticaret standı, ticaret olmadan neye benzer? Aşağıdaki bölümler, ticaret standınıza avatar varlıkları, geçişler ve geliştirici ürünleri eklemeyi açıklamaktadır.
Avatar varlıkları
Giysi ve aksesuarlar gibi öğeler, öğenin detay sayfasında bulunan varlık ID'leri aracılığıyla eklenmelidir. Avatar Mağazası.
ServerScriptService içinde bir Script oluşturun ve aşağıdaki kodu yapıştırın.
Script - Add Avatar Assetslocal 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)endendHer bir öğe varlık ID'sini Avatar Mağazası web sitesi URL'sinden kopyalayın. Örneğin, Roblox Beyzbol Şapkası'nın ID'si 607702162'dir.

Her kopyalanan ID'yi items tablosunda virgülle ayrılmış bir listeye yapıştırın. Varsayılan olarak, öğeler katalog görünümünde alfabetik sırayla görünür, ancak setCatalogSort kullanarak sıralamayı özelleştirebilirsiniz.
Script - Add Avatar Assetslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {607702162, -- Roblox Beyzbol Şapkası4819740796, -- Robox1374269, -- Kedi Kulakları11884330, -- Zeki Gözlükler10476359, -- Kağıt Şapka}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId)end)if not success thenwarn(errorMessage)endend
Geçişler
Geçişler eklemek, Yaratıcı Kontrol Paneli'nde bulunan geçiş ID'lerini gerektirir.
ServerScriptService içinde bir Script oluşturun ve aşağıdaki kodu yapıştırın.
Script - Add Passeslocal 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)endendYaratıcı Kontrol Paneli'ne gidin ve oyunu seçin.
Sol sütunda, Monetizasyon altında Geçişler'i seçin.
Bir geçişin küçük resminin üzerine gelin, ⋯ butonuna tıklayın ve bağlam menüsünden Varlık ID'sini Kopyala seçeneğini seçin.

Her kopyalanan ID'yi items tablosunda virgülle ayrılmış bir listeye yapıştırın ve öğelerin geçiş olduğunu belirtmek için addItemAsync için ikinci parametre olarak Enum.InfoType.GamePass ekleyin. Varsayılan olarak, öğeler katalog görünümünde alfabetik sırayla görünür, ancak sıralama setCatalogSort aracılığıyla özelleştirilebilir.
Script - Add Passeslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {4343758, -- ColdFyre Zırhı28521575, -- Slime Kalkanı}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)end)if not success thenwarn(errorMessage)endend
Geliştirici Ürünleri
Geliştirici ürünleri eklemek, Yaratıcı Kontrol Paneli'nde bulunan ürün ID'lerini gerektirir.
ServerScriptService içinde bir Script oluşturun ve aşağıdaki kodu yapıştırın.
Script - Add Developer Productslocal 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)endendYaratıcı Kontrol Paneli'ne gidin ve oyunu seçin.
Sol sütunda, Monetizasyon altında Geliştirici Ürünleri'ni seçin.
Bir ürünün küçük resminin üzerine gelin, ⋯ butonuna tıklayın ve bağlam menüsünden Varlık ID'sini Kopyala seçeneğini seçin.

Her kopyalanan ID'yi items tablosunda virgülle ayrılmış bir listeye yapıştırın ve öğelerin geliştirici ürünleri olduğunu belirtmek için addItemAsync için ikinci parametre olarak Enum.InfoType.Product ekleyin. Varsayılan olarak, öğeler katalog görünümünde alfabetik sırayla görünür, ancak sıralama setCatalogSort kullanılarak özelleştirilebilir.
Script - Add Developer Productslocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)local items = {1236602053, -- Mana Yenileme1257880672, -- İyileştirme İksiri}for _, assetId in items dolocal success, errorMessage = pcall(function()MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)end)if not success thenwarn(errorMessage)endend
Özel katalog butonu
Varsayılan olarak, sağ tarafta bir katalog butonu, oyuncuların standı her zaman açmasına olanak tanır.

Bazı durumlarda, bu butonu kaldırmak ve kendi butonunuzu bağlamak faydalı olabilir:
Butonlar bölümünde açıklandığı gibi yeni bir buton oluşturun.
Buton nesnesinin altına bir LocalScript oluşturun.

Yeni script'e aşağıdaki kodu yapıştırın.
LocalScript - Custom Catalog Buttonlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- Varsayılan katalog butonunu kaldırMerchBooth.toggleCatalogButton(false)-- Özel butonu bağlascript.Parent.Activated:Connect(function()MerchBooth.openMerchBooth()end)
Alışveriş yapılabilir bölgeler
Oyununuza satın alımları yönlendirmek için, bir oyuncu bir alana girdiğinde otomatik olarak ticaret standını göstermek faydalı bir yoldur.
Alışveriş yapılabilir bir bölge oluşturmak için:
Tespit bölgesini kapsayan bir Anchored bloğu oluşturun. Bloğun, karakter modellerinin PrimaryPart ile çarpışacak kadar yüksek olduğundan emin olun (HumanoidRootPart varsayılan olarak).

Oyuncuların dükkan tezgahının önüne yaklaştıklarında tespit etmek için blok Bloğun özelliklerinin Etiketler bölümünü kullanarak, ShopRegion etiketini bloğa uygulayın, böylece CollectionService bunu tespit edebilir.
Parçanın Transparency değerini maksimuma ayarlayarak oyuncuların oyunda görmesini engelleyin. Ayrıca, nesnelerin fiziksel olarak onunla çarpışmaması ve ışın izlerinin onu tespit etmemesi için CanCollide ve CanQuery özelliklerini devre dışı bırakın.


StarterPlayerScripts altında yeni bir LocalScript ekleyin.

Yeni script'e, karakterlerin bölgeye girdiğinde/çıktığında tespit etmek için Touched ve TouchEnded olaylarını kullanan ve openMerchBooth ve closeMerchBooth çağrılarını açıp kapatan aşağıdaki kodu yapıştırın.
LocalScriptlocal Players = game:GetService("Players")local ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local MerchBooth = require(ReplicatedStorage.MerchBooth)-- Varsayılan katalog butonunu kaldırMerchBooth.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-- Mevcut etiketli dükkan bölgeleri arasında yineleme yapfor _, region in CollectionService:GetTagged("ShopRegion") dosetupRegion(region)end-- Akışa giren akışta olmayan dükkan bölgelerini tespit etCollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)
Yakınlık istemleri
2D katalog görünümüne alternatif olarak, oyun içi nesnelerin üzerine yakınlık istemleri ekleyebilirsiniz. Bu, oyuncuları 3D ortamda öğeleri keşfetmeye, kendi avatarlarında önizlemeye, satın almaya ve anında takmaya teşvik eder. Ayrıntılar için addProximityButton bölümüne bakın.
Ekipman efektini değiştir
Varsayılan olarak, ticaret standı, bir oyuncu bir öğeyi ekip ettiğinde genel bir parıltı efekti gösterir. Etkiyi değiştirmek için, particleEmitterTemplate değerini bir configure çağrısında kendi ParticleEmitter örneğinize ayarlayın.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local myParticleEmitter = Instance.new("ParticleEmitter")
myParticleEmitter.SpreadAngle = Vector2.new(22, 22)
myParticleEmitter.Lifetime = NumberRange.new(0.5, 1.5)
myParticleEmitter.Shape = Enum.ParticleEmitterShape.Sphere
myParticleEmitter.Transparency = NumberSequence.new(0, 1)
myParticleEmitter.RotSpeed = NumberRange.new(200, 200)
MerchBooth.configure({
particleEmitterTemplate = myParticleEmitter
})GUI görünürlüğü
Varsayılan olarak, ticaret standı, UI'si göründüğünde tüm ScreenGuis ve CoreGuis'yi gizler, bunlar arasında sohbet, liderlik panosu ve Roblox tarafından dahil edilen diğerleri bulunur. Bu davranışı devre dışı bırakmak istiyorsanız, hideOtherUis değerini false olarak ayarlayın bir configure çağrısında.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
hideOtherUis = false
})Karakter hareketi
Bir karakterin ticaret standında bulunduğu süre boyunca hareket etmesini engellemek faydalı olabilir. Bu, disableCharacterMovement değerini true olarak ayarlayarak yapılabilir bir configure çağrısında.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
disableCharacterMovement = true
})API referansı
Türler
Öğeler
Ticaret standındaki öğeler, aşağıdaki anahtar-değer çiftleri ile bir sözlükle temsil edilir. Öğeler, getItems işlevi veya itemAdded olayı aracılığıyla toplanabilir.
| Anahtar | Tür | Açıklama |
|---|---|---|
| assetId | number | Öğenin katalog ID'si, addItemAsync ile geçilir. |
| title | string | Öğenin katalogda göründüğü başlık. |
| price | number | Öğenin fiyatı Robux cinsinden. |
| description | string | Öğenin katalogda göründüğü açıklama. |
| assetType | string | Öğenin aksesuar türünü temsil eden dize. |
| isOwned | bool | Mevcut oyuncunun öğeyi sahip olup olmadığı. |
| creatorName | string | Öğenin katalogda göründüğü yaratıcı adı. |
| creatorType | Enum.CreatorType | Öğenin yaratıcı türü. |
Enum'lar
MerchBooth.Controls
Ticaret standı ile etkileşim için tuşları ve oyun kumandası butonlarını özelleştirmek için setControlKeyCodes ile birlikte kullanılır.
| Ad | Özet |
|---|---|
| ProximityPrompts | yakınlık istemleri yapılandırıldığında öğe görünümünü açmak için tuş ve/veya oyun kumandası butonu. |
| OpenMerchBooth | Ticaret standını açmak için tuş ve/veya oyun kumandası butonu. |
| CloseMerchBooth | Ticaret standını kapatmak için tuş ve/veya oyun kumandası butonu. |
| Filter | Katalog görünümünün sol üst alanında gösterilen varsayılan Filtre açılır menüsünü kullanmak için tuş ve/veya oyun kumandası butonu. |
| ViewItem | Belirli bir ticaret standı öğe görünümünü açmak için tuş ve/veya oyun kumandası butonu. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})Fonksiyonlar
configure
configure(config: table)
Aşağıdaki anahtar/değer çiftleri aracılığıyla varsayılan istemci tarafı yapılandırma seçeneklerini geçersiz kılar. Bu işlev yalnızca bir LocalScript içinden çağrılabilir.
| Anahtar | Açıklama | Varsayılan |
|---|---|---|
| backgroundColor | Pencerenin ana arka plan rengi (Color3). | [0, 0, 0] |
| cornerRadius | Ana pencere için köşe yarıçapı (UDim). | (0, 16) |
| cornerRadiusSmall | Pencere içindeki öğeler için köşe yarıçapı (UDim). | (0, 8) |
| textFont | Fiyatlar, açıklamalar ve diğer genel bilgiler gibi "ana metin" için yazı tipi (Enum.Font). | Gotham |
| textSize | Ana metin boyutu. | 14 |
| textColor | Ana metin rengi (Color3). | [255, 255, 255] |
| secondaryTextColor | Ana metnin bazı varyasyonları için kullanılan renk (Color3). | [153, 153, 158] |
| headerFont | Pencere başlığı için kullanılan başlık metni yazı tipi (Enum.Font). | GothamMedium |
| headerTextSize | Pencere başlığı için kullanılan başlık metni boyutu. | 18 |
| titleFont | Öğe detay sayfasındaki öğe adları için kullanılan başlık metni yazı tipi (Enum.Font). | GothamBold |
| titleTextSize | Öğe detay sayfasındaki öğe adları için kullanılan başlık metni boyutu. | 28 |
| buttonColor | Büyük butonlar için tıklanabilir durumda arka plan rengi, örneğin öğe görünümündeki ana satın alma butonu (Color3). | [255, 255, 255] |
| buttonTextColor | Büyük butonlar için tıklanabilir durumda metin rengi, örneğin öğe görünümündeki ana satın alma butonu (Color3). | [0, 0, 0] |
| secondaryButtonColor | Katalog görünümündeki fiyat butonları veya Denemek butonu gibi daha küçük butonlar için arka plan rengi (Color3). | [34, 34, 34] |
| secondaryButtonTextColor | Katalog görünümündeki fiyat butonları veya Denemek butonu gibi daha küçük butonlar için metin rengi (Color3). | [255, 255, 255] |
| inactiveButtonColor | Tıklanamaz durumda olan tüm butonlar için arka plan rengi (Color3). | [153, 153, 158] |
| inactiveButtonTextColor | Tıklanamaz durumda olan tüm butonlar için metin rengi (Color3). | [255, 255, 255] |
| particleEmitterTemplate | Takıldığında görünen ve oynatılan isteğe bağlı özel ParticleEmitter örneği. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.configure({
backgroundColor = Color3.fromRGB(255, 255, 255),
textSize = 16,
textFont = Enum.Font.Roboto,
textColor = Color3.fromRGB(20, 20, 20),
hideOtherUis = false,
})addItemAsync
addItemAsync(assetId: number, productType: Enum.InfoType, hideFromCatalog: boolean)
Bir öğeyi ticaret standına asenkron olarak ekler, böylece oyunda satın alınabilir hale gelir. assetId, öğenin varlık ID'sidir, productType, öğenin Enum.InfoType enum'udur ve hideFromCatalog, öğeyi katalog görünümünde gizlemek için kullanılabilir.
Ayrıntılar için Öğeleri Ekleme bölümüne bakın, çünkü kullanım varlıklar ile geçişler veya geliştirici ürünleri arasında biraz farklılık gösterir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
607702162, -- Roblox Beyzbol Şapkası
4819740796, -- Robox
1374269, -- Kedi Kulakları
11884330, -- Zeki Gözlükler
10476359, -- Kağıt Şapka
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
endlocal ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
4343758, -- ColdFyre Zırhı
28521575, -- Slime Kalkanı
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
warn(errorMessage)
end
endlocal ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local items = {
1236602053, -- Mana Yenileme
1257880672, -- İyileştirme İksiri
}
for _, assetId in items do
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
warn(errorMessage)
end
endgetItems
getItems(): table
Şu anda kayıtlı olan tüm öğeleri temsil eden bir sözlük döndürür. Her anahtar, bir öğenin varlık ID'si olarak bir dize ve her anahtarın değeri bir Öğe dir. Bu işlev yalnızca bir Script içinden çağrılabilir.
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)
endremoveItem
removeItem(assetId: number)
Daha önce addItemAsync ile eklenmiş bir öğeyi kayıttan çıkarır, katalog görünümündeki kutusunu ve ona atanan herhangi bir yakınlık istemini kaldırır. Bu işlev yalnızca bir Script içinden çağrılabilir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local success, errorMessage = pcall(function()
MerchBooth.addItemAsync(4819740796)
end)
if success then
-- Bir süre sonra, öğeyi kaldır
task.wait(5)
MerchBooth.removeItem(4819740796)
endaddProximityButton
addProximityButton(adornee: BasePart|Model|Attachment, assetId: number)
Verilen adornee üzerinde bir yakınlık istemi ekler, bu da bir öğenin satın alma görünümünü tetikler, varlık ID'sine bağlı olarak. Bu, 2D katalog görünümüne alternatif olarak kullanılabilir ve oyuncuları 3D ortamda öğeleri keşfetmeye teşvik eder.
Bir öğe, bir yakınlık butonuna atanabilmesi için addItemAsync ile eklenmelidir. Ayrıca, bir nesneden yakınlık istemini kaldırmak için removeProximityButton bölümüne de bakın.
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
endremoveProximityButton
removeProximityButton(adornee: BasePart|Model|Attachment)
addProximityButton aracılığıyla oluşturulan bir yakınlık istemini kaldırır. Bu işlev yalnızca bir Script içinden çağrılabilir.
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
-- Bir süre sonra, istemi kaldır
task.wait(5)
MerchBooth.removeProximityButton(item)
endsetCatalogSort
setCatalogSort(sortFunction: function): boolean
Katalog görünümünde kullanılacak sıralama işlevini sortFunction olarak ayarlar. Sağlanan sıralama işlevi, price veya title gibi Öğe bilgisine dayalı mantık kullanabilir. Bu işlev yalnızca bir LocalScript içinden çağrılabilir.
Katalogu sıralamak için bazı örnekler:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price < b.price
end)local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setCatalogSort(function(a, b)
return a.price > b.price
end)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)
Ticaret standı ile etkileşim için tuş ve buton değerlerini yapılandırır. İlk parametre bir MerchBooth.Controls enum'u olmalı ve ikinci parametre, keyboard ve/veya gamepad anahtarlarını içeren ve karşılık gelen Enum.KeyCode enum'larını içeren bir tablo olmalıdır.
| Enum (control) | Varsayılan keyCodes Anahtarları/Değerleri |
|---|---|
| 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 |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.setControlKeyCodes(MerchBooth.Controls.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})openMerchBooth
openMerchBooth()
Ticaret standı penceresini açar (kapalıysa) ve katalog görünümüne yönlendirir. Bu işlev yalnızca bir LocalScript içinden çağrılabilir.
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)
Verilen itemId'nin tekil öğe görünümüne yönlendirir, ticaret standı penceresini açar eğer şu anda kapalıysa. Bu işlev yalnızca bir LocalScript içinden çağrılabilir.
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)
endtoggleCatalogButton
toggleCatalogButton(enabled: boolean)
Ekranın sağ tarafındaki katalog butonunu açıp kapatır. Bu, özel buton uygularken veya ticaret standının görünümünü bölgeler veya yakınlık istemleri ile sınırlarken faydalıdır. Yalnızca bir LocalScript içinden çağrılabilir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.toggleCatalogButton(false)isMerchBoothOpen
isMerchBoothOpen(): Tuple
Katalog veya öğe görünümü açık olduğunda true döndürür. Eğer öğe görünümü açıksa, öğenin varlık ID'si ikinci değer olarak döndürülür. Bu işlev yalnızca bir LocalScript içinden çağrılabilir.
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)
endcloseMerchBooth
closeMerchBooth()
Ticaret standı penceresini kapatır. Bu işlev yalnızca bir LocalScript içinden çağrılabilir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.closeMerchBooth()isMerchBoothEnabled
isMerchBoothEnabled(): boolean
Bu işlev, ticaret standının şu anda etkin olup olmadığını kontrol etmek için setEnabled ile birlikte kullanılabilir. Yalnızca bir LocalScript içinden çağrılabilir.
setEnabled
setEnabled(enabled: boolean)
Ticaret standının tamamının etkin olup olmadığını ayarlar. Devre dışı bırakıldığında, bu işlev tüm UI'yi, yakınlık istemleri dahil olmak üzere kaldırır ve tüm olayları keser. Bu işlev yalnızca bir LocalScript içinden çağrılabilir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
local isEnabled = MerchBooth.isMerchBoothEnabled()
if isEnabled then
MerchBooth.setEnabled(false)
endOlaylar
itemAdded
Bir öğe addItemAsync aracılığıyla eklendiğinde tetiklenir. Bu olay yalnızca bir Script içinde bağlanabilir.
| Parametreler | |
|---|---|
| assetId: number | Öğe varlık ID'si. |
| itemInfo: table | price veya title gibi Öğe bilgilerini içeren sözlük. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemAdded:Connect(function(assetId, itemInfo)
print("Varlık ID'si", assetId, "olan öğe eklendi")
print(itemInfo)
end)itemRemoved
Bir öğe removeItem aracılığıyla kaldırıldığında tetiklenir. Bu olay yalnızca bir Script içinde bağlanabilir.
| Parametreler | |
|---|---|
| assetId: number | Öğe varlık ID'si. |
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemRemoved:Connect(function(assetId)
print("Varlık ID'si", assetId, "olan öğe kaldırıldı")
end)merchBoothOpened
Katalog veya öğe detay görünümü açıldığında tetiklenir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothOpened:Connect(function()
print("Stand görünümü açıldı")
end)merchBoothClosed
Katalog veya öğe detay görünümü kapandığında tetiklenir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.merchBoothClosed:Connect(function()
print("Stand görünümü kapandı")
end)catalogViewOpened
Katalog görünümü açıldığında tetiklenir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewOpened:Connect(function()
print("Katalog görünümü açıldı")
end)catalogViewClosed
Katalog görünümü kapandığında tetiklenir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.catalogViewClosed:Connect(function()
print("Katalog görünümü kapandı")
end)itemViewOpened
Öğe detay görünümü açıldığında tetiklenir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewOpened:Connect(function()
print("Öğe görünümü açıldı")
end)itemViewClosed
Öğe detay görünümü kapandığında tetiklenir.
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local MerchBooth = require(ReplicatedStorage.MerchBooth)
MerchBooth.itemViewClosed:Connect(function()
print("Öğe görünümü kapandı")
end)