Ticaret Standı

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

TicaretStandı geliştirici modülü, deneyiminiz içinde doğrudan avatar varlıklarını, geçişleri ve geliştirici ürünlerini satmanızı sağlar. Oyuncular öğeleri gözden geçirebilir, varlıkları kendi avatarlarında önizleyebilir, öğeleri satın alabilir ve bunları anında kullanabilir veya kuşanabilir — hepsi deneyiminizden çıkmadan. Bu, deneyiminizi para kazanmak ve diğer yaratıcıların ürünlerini satmanın ilişkilendirilmiş %40 komisyon ücreti aracılığıyla gelir elde etmenize yardımcı olabilir.

Modül kullanımı

Kurulum

Deneyiminizde TicaretStandı modülünü kullanmak için:

  1. Studio'nun Pencere menüsünden veya Ana Sayfa sekme araç çubuğundan Araç Kutusunu açın ve Yaratıcı Mağaza sekmesini seçin.

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

  3. Paketler karosunu bulun ve tıklayın.

  4. Ticaret Standı modülünü bulun ve üzerine tıklayın veya 3D görünümüne sürükleyip bırakın.

  5. Explorer penceresinde, tüm TicaretStandı modelini ReplicatedStorage içine taşıyın. Deneyimi çalıştırdığınızda 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 yapılandır 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 bölümündeki varsayılan Filtre butonunu devre dışı bırakmak için:

  1. StarterPlayerScripts içinde yeni bir LocalScript oluşturun ve adını TicaretStandıYapılandır olarak değiştirin.

  2. Yeni betiğe aşağıdaki kodu yapıştırın.

    LocalScript - TicaretStandıYapılandır

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    TicaretStandı.yapılandır({
    backgroundColor = Color3.fromRGB(220, 210, 200),
    textSize = 17,
    textFont = Enum.Font.Fondamento,
    textColor = Color3.fromRGB(20, 20, 20),
    useFilters = false
    })

Öğeler ekleyin

Bir ticaret standı olmadan ne olur? Aşağıdaki bölümler, ticaret standınıza avatar varlıkları, geçişler ve geliştirici ürünleri eklemenin yollarını anlatmaktadır.

Avatar varlıkları

Giysi ve aksesuarlar gibi öğeler, öğenin ayrıntı sayfasında bulunan varlık ID'sini kullanarak eklenmelidir. Avatar Mağazası.

  1. ServerScriptService içinde bir Script oluşturun ve aşağıdaki kodu yapıştırın.

    Script - Avatar Varlıklarını Ekle

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    TicaretStandı.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Her bir öğenin varlık ID'sini Avatar Mağazası web sitesindeki URL'den kopyalayın. Örneğin, Roblox Beyzbol Şapkası'nın ID'si 607702162'dir.

  3. Her kopyalanan ID'yi items tablosunda virgülle ayrılmış bir liste halinde yapıştırın. Varsayılan olarak, öğeler katalog görünümünde alfabetik sıraya göre görünür, ancak setCatalogSort işlevini kullanarak sıralamayı özelleştirebilirsiniz.

    Script - Avatar Varlıklarını Ekle

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    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()
    TicaretStandı.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Geçişler

Geçişlerin eklenmesi, Yaratıcı Kontrol Paneli'nde bulunan geçiş ID'lerini gerektirir.

  1. ServerScriptService içinde bir Script oluşturun ve aşağıdaki kodu yapıştırın.

    Script - Geçişleri Ekle

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    TicaretStandı.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Yaratıcı Kontrol Paneli'ne gidin ve deneyiminizi seçin.

  3. Sol sütunda, Para Kazanma altında Geçişler'i seçin.

  4. Bir geçişin küçük resminin üzerine gelin, butonuna tıklayın ve açılan menüden Varlık ID'sini Kopyala'yı seçin.

  5. Her kopyalanan ID'yi items tablosunda virgülle ayrılmış bir liste halinde yapıştırın ve öğelerin geçiş olduğunu belirtmek için addItemAsync işlevinin ikinci parametresi olarak Enum.InfoType.GamePass'i ekleyin. Varsayılan olarak, öğeler katalog görünümünde alfabetik sıraya göre görünür, ancak sıralama setCatalogSort işlevi ile özelleştirilebilir.

    Script - Geçişleri Ekle

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    local items = {
    4343758, -- ColdFyre Zırhı
    28521575, -- Sümük Kalkanı
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    TicaretStandı.addItemAsync(assetId, Enum.InfoType.GamePass)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Geliştirici Ürünleri

Geliştirici ürünlerinin eklenmesi, Yaratıcı Kontrol Paneli'nde bulunan ürün ID'lerini gerektirir.

  1. ServerScriptService içinde bir Script oluşturun ve aşağıdaki kodu yapıştırın.

    Script - Geliştirici Ürünleri Ekle

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    local items = {
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    TicaretStandı.addItemAsync(assetId)
    end)
    if not success then
    warn(errorMessage)
    end
    end
  2. Yaratıcı Kontrol Paneli'ne gidin ve deneyiminizi seçin.

  3. Sol sütunda, Para Kazanma altında Geliştirici Ürünleri'ni seçin.

  4. Bir ürünün küçük resminin üzerine gelin, butonuna tıklayın ve açılan menüden Varlık ID'sini Kopyala'yı seçin.

  5. Her kopyalanan ID'yi items tablosunda virgülle ayrılmış bir liste halinde yapıştırın ve öğelerin geliştirici ürünleri olduğunu belirtmek için addItemAsync işlevinin ikinci parametresi olarak Enum.InfoType.Product'ı ekleyin. Varsayılan olarak, öğeler katalog görünümünde alfabetik sıraya göre görünür, ancak sıralama setCatalogSort işlevi ile özelleştirilebilir.

    Script - Geliştirici Ürünleri Ekle

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    local items = {
    1236602053, -- Mana Yenileme
    1257880672, -- İyileştirici İksir
    }
    for _, assetId in items do
    local success, errorMessage = pcall(function()
    TicaretStandı.addItemAsync(assetId, Enum.InfoType.Product)
    end)
    if not success then
    warn(errorMessage)
    end
    end

Alışveriş Yapılabilen Buton

Varsayılan olarak, sağ tarafta bir alışveriş yapabilme butonu oyuncuların standı her zaman açmasını sağlar.

Bazı durumlarda, bu butonu kaldırmak ve kendi butonunuzu bağlamak faydalı olabilir:

  1. Butonlar belgesinde açıklandığı gibi yeni bir buton oluşturun.

  2. Buton nesnesinin çocuğu olarak bir LocalScript oluşturun.

  3. Yeni betiğe aşağıdaki kodu yapıştırın.

    LocalScript - Özel Alışveriş Yapılabilen Buton

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    -- Varsayılan alışveriş yapabilme butonunu kaldır
    TicaretStandı.toggleCatalogButton(false)
    -- Özel butonu bağla
    script.Parent.Activated:Connect(function()
    TicaretStandı.openMerchBooth()
    end)

Alışveriş Yapılabilir Alanlar

Deneyiminizde satışları artırmak için, bir oyuncunun bir alana girdiğinde otomatik olarak ticaret standını göstermek iyi bir yöntemdir.

Bir alışveriş yapabilir alan oluşturmak için:

  1. Tespit alanını kapsayan Anchored bloğu oluşturun. Bloğun, karakter modellerinin PrimaryPart'i ile çarpışacak kadar yüksek olduğundan emin olun (HumanoidRootPart varsayılan olarak).

    Oyuncuların dükkan tezgahının önüne yaklaşırken tespit edilmesi için blok
  2. Bloğun özelliklerinin Etiketler bölümünü kullanarak, ShopRegion etiketini bloğa uygulayın, böylece CollectionService bunu tespit edebilir.

  3. Parçanın Transparency değerini maksimuma ayarlayın, böylece deneyimde oyunculardan gizli kalır. Ayrıca onun CanCollide ve CanQuery özelliklerini devre dışı bırakın, böylece nesnelerle fiziksel olarak çarpışmaz ve ışın izleme (raycasting) tarafından tespit edilmez.

  4. StarterPlayerScripts altında yeni bir LocalScript ekleyin.

  5. Yeni betikte, karakterlerin alanı terk edip etmediğini algılamak için Touched ve TouchEnded olaylarını kullanarak ve openMerchBooth ve closeMerchBooth işlevlerini çağırarak alanı açıp kapatacak şekilde aşağıdaki kodu yapıştırın.

    LocalScript

    local Players = game:GetService("Players")
    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local CollectionService = game:GetService("CollectionService")
    local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
    -- Varsayılan alışveriş yapabilme butonunu kaldır
    TicaretStandı.toggleCatalogButton(false)
    local function setupRegion(region: BasePart)
    region.Touched:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    TicaretStandı.openMerchBooth()
    end
    end)
    region.TouchEnded:Connect(function(otherPart)
    local character = Players.LocalPlayer.Character
    if character and otherPart == character.PrimaryPart then
    TicaretStandı.closeMerchBooth()
    end
    end)
    end
    -- Mevcut etiketli alışveriş bölgeleri üzerinden dön
    for _, region in CollectionService:GetTagged("ShopRegion") do
    setupRegion(region)
    end
    -- Akışa alma yapılmayan alışveriş bölgeleri tanımlandığında tespit et
    CollectionService:GetInstanceAddedSignal("ShopRegion"):Connect(setupRegion)

Yakınlık İpuçları

2D katalog görünümüne alternatif olarak, deneyim içindeki nesnelerin üzerine yakınlık ipuçları ekleyebilirsiniz. Bu, oyuncuların 3D ortamda öğeleri keşfetmelerini, önizlemelerini, satın almalarını ve anında kuşanmalarını teşvik eder. Ayrıntılar için addProximityButton belgesine bakın.

Eşya Donatma Efektini Değiştir

Varsayılan olarak, ticaret standı bir oyuncu bir öğe donattığında genel bir parıltı efekti gösterir. Etkiyi değiştirmek için, particleEmitterTemplate'i bir ParticleEmitter örneğinize ayarlayın yapılandır çağrısında.

LocalScript - TicaretStandıYapılandır

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
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)
TicaretStandı.yapılandır({
particleEmitterTemplate = myParticleEmitter
})

GUI Görünürlüğü

Varsayılan olarak, ticaret standı UI'sı açıldığında tüm ScreenGuis ve CoreGuis'yi gizler, bunlar arasında sohbet, lider tablosu ve Roblox'un dahil ettiği diğerleri de bulunur. Bu davranışı devre dışı bırakmak isterseniz, yapılandır çağrısında hideOtherUis'yi false olarak ayarlayın.

LocalScript - TicaretStandıYapılandır

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.yapılandır({
hideOtherUis = false
})

Karakter Hareketi

Bir karakterin ticaret standında iken hareket etmesini engellemek faydalı olabilir. Bu, yapılandır çağrısında disableCharacterMovement'i true olarak ayarlayarak yapılabilir.

LocalScript - TicaretStandıYapılandır

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.yapılandır({
disableCharacterMovement = true
})

API Referansı

Türler

Eşya

Ticaret standındaki ürünler, aşağıdaki anahtar-değer çiftleriyle bir sözlük olarak temsil edilir. Öğeler, getItems işlevi veya itemAdded olayı aracılığıyla toplanabilir.

AnahtarTürAçıklama
assetIdsayıÖğenin katalog ID'si, addItemAsync ile geçen.
titledizeÖğenin katalogda göründüğü başlık.
pricesayıÖğenin Robux cinsinden fiyatı.
descriptiondizeÖğenin katalogda görünen açıklaması.
assetTypedizeÖğenin aksesuar türünü temsil eden dize.
isOwnedboolMevcut oyuncunun ürünü sahip olup olmadığını belirtir.
creatorNamedizeÖğenin katalogda görünen yaratıcı adı.
creatorTypeEnum.CreatorTypeÜrün için yaratıcının türü.

Enum'lar

TicaretStandı. Kontroller

Ticaret standıyla etkileşimde bulunmak için tuşları ve gamepad butonlarını özelleştirmek için setControlKeyCodes ile birlikte kullanılır.

AdÖzet
ProximityPromptsÖğelerin görünümünü açmak için ayarlanan yakınlık ipuçları için anahtar ve/veya gamepad butonu.
OpenMerchBoothTicaret standını açmak için anahtar ve/veya gamepad butonu.
CloseMerchBoothTicaret standını kapatmak için anahtar ve/veya gamepad butonu.
FilterKatalog görünümünün sol üst kısmında gösterilen varsayılan Filtre açılırını kullanmak için anahtar ve/veya gamepad butonu.
ViewItemBelirli bir ticaret standı öğesinin görünümünü açmak için anahtar ve/veya gamepad butonu.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.setControlKeyCodes(TicaretStandı.Kontroller.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1
})

İşlevler

yapılandır

yapılandır(config: table)

config tablosundaki aşağıdaki anahtar/değerler aracılığıyla varsayılan istemci tarafı yapılandırma seçeneklerini geçersiz kılmaktadır. Bu işlev yalnızca bir LocalScript içinde çağrılabilir.

AnahtarAçıklamaVarsayılan
backgroundColorPencerenin ana arka plan rengi (Color3).[0, 0, 0]
cornerRadiusAna pencerenin köşe yarıçapı (UDim).(0, 16)
cornerRadiusSmallPencere içindeki elemanların köşe yarıçapı (UDim).(0, 8)
textFontFiyatlar, açıklamalar ve diğer genel bilgiler gibi "ana metin" için yazı tipi (Enum.Font).Gotham
textSizeAna metin boyutu.14
textColorAna metin rengi (Color3).[255, 255, 255]
secondaryTextColorAna metin değişkenlerinin bazıları için kullanılan renk (Color3).[153, 153, 158]
headerFontPencere başlığı için kullanılan başlık metni yazı tipi (Enum.Font).GothamMedium
headerTextSizePencere başlığı için kullanılan başlık metni boyutu.18
titleFontÖğenin ayrıntı sayfasındaki öğe adları için kullanılan başlık metni yazı biçimi (Enum.Font).GothamBold
titleTextSizeÖğenin ayrıntı sayfasındaki öğe adları için kullanılan başlık metni boyutu.28
buttonColorÖğenin görünümündeki ana satın alma butonu gibi tıklanabilir durumda olan büyük butonların arka plan rengi (Color3).[255, 255, 255]
buttonTextColorÖğenin görünümündeki ana satın alma butonu gibi tıklanabilir durumda olan büyük butonların metin rengi (Color3).[0, 0, 0]
secondaryButtonColorKatalog görünümündeki fiyat butonları veya Deneme butonu gibi daha küçük butonlar için arka plan rengi (Color3).[34, 34, 34]
secondaryButtonTextColorKatalog görünümündeki fiyat butonları veya Deneme butonu gibi daha küçük butonlar için metin rengi (Color3).[255, 255, 255]
inactiveButtonColorBir tıklama durumunda olmayan durumda olan tüm butonların arka plan rengi (Color3).[153, 153, 158]
inactiveButtonTextColorBir tıklama durumunda olmayan durumda olan tüm butonların metin rengi (Color3).[255, 255, 255]
particleEmitterTemplateDonatıldığında görünen ve oynatılan isteğe bağlı özel ParticleEmitter örneği.
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.yapılandır({
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 ekleyerek deneyimde satın alınabilir hale getirir. assetId, ürünün varlık ID'sidir, productType, ürünün Enum.InfoType enumudur ve hideFromCatalog, ürünün katalog görünümünde gizlenmesi için kullanılabilir.

Detaylar için Öğelerin Eklenmesi sayfasına bakın, çünkü kullanım varlıklar ile oyun geçişleri veya geliştirici ürünleri arasında biraz farklıdır.

Script - Avatar Varlıklarını Ekle

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
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()
TicaretStandı.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
end
Script - Geçişleri Ekle

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local items = {
4343758, -- ColdFyre Zırhı
28521575, -- Sümük Kalkanı
}
for _, assetId in items do
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(assetId, Enum.InfoType.GamePass)
end)
if not success then
warn(errorMessage)
end
end
Script - Geliştirici Ürünleri Ekle

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local items = {
1236602053, -- Mana Yenileme
1257880672, -- İyileştirici İksir
}
for _, assetId in items do
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(assetId, Enum.InfoType.Product)
end)
if not success then
warn(errorMessage)
end
end

getItems

getItems(): table

Şu anda kaydedilmiş tüm öğeleri temsil eden bir sözlük döner. Her anahtar bir öğenin varlık ID'si olarak bir dize ve her anahtarın değeri bir Eşyadır. Bu işlev yalnızca bir Script içinde çağrılabilir.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(4819740796)
end)
if success then
local items = TicaretStandı.getItems()
print(items)
end

removeItem

removeItem(assetId: number)

Daha önce addItemAsync ile eklenen bir öğeyi kayıttan çıkarır, katalog görünümündeki tilesını ve ona atanan tüm yakınlık ipuçlarını kaldırır. Bu işlev yalnızca bir Script içinde çağrılabilir.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(4819740796)
end)
if success then
-- Bazı zaman sonra öğeyi kaldır
task.wait(5)
TicaretStandı.removeItem(4819740796)
end

addProximityButton

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

Verilen adornee'ye, onun varlık ID'sini belirterek bir yakınlık ipucu ekler. Bu, 3D ortamda ürünlerin keşfedilmesini teşvik eder.

Not: Bir öğe, bir yakınlık butonuna atanmadan önce addItemAsync ile eklenmiş olmalıdır. Ayrıca, bir nesneden yakınlık ipucunu kaldırmak için removeProximityButton ile bakın.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
TicaretStandı.addProximityButton(item, 4819740796)
end
end

removeProximityButton

removeProximityButton(adornee: BasePart|Model|Attachment)

addProximityButton ile oluşturulan bir yakınlık ipucu kaldırır. Bu işlev yalnızca bir Script içinde çağrılabilir.

Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Workspace = game:GetService("Workspace")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(4819740796)
end)
if success then
local item = Workspace:FindFirstChild("Robox")
if item then
TicaretStandı.addProximityButton(item, 4819740796)
end
-- Bir süre sonra ipucunu kaldır
task.wait(5)
TicaretStandı.removeProximityButton(item)
end

setCatalogSort

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şya bilgilerine dayalı mantık kullanabilir. Bu işlev yalnızca bir LocalScript içinde çağrılabilir.

Katalogu sıralamak için birkaç örnek:

Fiyat Düşükten Yükseğe

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.setCatalogSort(function(a, b)
return a.price < b.price
end)
Fiyat Yüksekten Düşüğe

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.setCatalogSort(function(a, b)
return a.price > b.price
end)
Fiyat Düşükten Yükseğe & Alfabetik

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.setCatalogSort(function(a, b)
return if a.price == b.price then a.title < b.title else a.price < b.price
end)

setControlKeyCodes

setControlKeyCodes(control: TicaretStandı.Kontroller, keyCodes: table)

Ticaret standı ile etkileşimler için tuş ve buton değerlerini yapılandırır. İlk parametre bir TicaretStandı.Kontroller enum'u, ikinci parametre ise keyboard ve/veya gamepad anahtarlarını içeren bir tablodur.

Enum (control)Varsayılan keyCodes Anahtarları/Değerleri
TicaretStandı.Kontroller.ProximityPromptskeyboard = Enum.KeyCode.E
gamepad = Enum.KeyCode.ButtonY
TicaretStandı.Kontroller.OpenMerchBoothgamepad = Enum.KeyCode.ButtonY
TicaretStandı.Kontroller.CloseMerchBoothgamepad = Enum.KeyCode.ButtonB
TicaretStandı.Kontroller.Filtergamepad = Enum.KeyCode.ButtonX
TicaretStandı.Kontroller.ViewItemgamepad = Enum.KeyCode.ButtonA
LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.setControlKeyCodes(TicaretStandı.Kontroller.ProximityPrompts, {
keyboard = Enum.KeyCode.Q,
gamepad = Enum.KeyCode.ButtonL1,
})

openMerchBooth

openMerchBooth()

Ticaret standı penceresini (kapatılmışsa) açar ve katalog görünümüne yönlendirir. Bu işlev yalnızca bir LocalScript içinde çağrılabilir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(assetId)
end)
if not success then
warn(errorMessage)
end
TicaretStandı.openMerchBooth()

openItemView

openItemView(itemId: number)

Verilen itemId için tek bir öğe görünümüne yönlendirir, ticaret standı penceresini eğer şu anda kapalıysa açar. Bu işlev yalnızca bir LocalScript içinde çağrılabilir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(4819740796)
end)
if success then
TicaretStandı.openItemView(4819740796)
end

toggleCatalogButton

toggleCatalogButton(enabled: boolean)

Ekranın sağ tarafındaki katalog butonunu açıp kapatır. Bu, özel buton uygular veya ticaret standının görünümünü bölgeler veya yakınlık ipuçlarıa sınırlamak için faydalıdır. Ancak bir LocalScript içinde çağrılabilir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.toggleCatalogButton(false)

isMerchBoothOpen

isMerchBoothOpen(): Tuple

Katalog veya öğe görünümü açıldığında true döner. Eğer öğe görünümü açıksa, öğenin varlık ID'si ikinci değer olarak döner. Bu işlev yalnızca bir LocalScript içinde çağrılabilir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
local success, errorMessage = pcall(function()
TicaretStandı.addItemAsync(4819740796)
end)
if success then
TicaretStandı.openItemView(4819740796)
local isOpen, itemId = TicaretStandı.isMerchBoothOpen()
print(isOpen, itemId)
end

closeMerchBooth

closeMerchBooth()

Ticaret standı penceresini kapatır. Bu işlev yalnızca bir LocalScript içinde çağrılabilir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.closeMerchBooth()

isMerchBoothEnabled

isMerchBoothEnabled(): boolean

Bu işlev, ticaret standının şu anda etkin olup olmadığını kontrol etmek amacıyla setEnabled ile birlikte kullanılabilir. Bir LocalScript içinde çağrılmalıdır.

setEnabled

setEnabled(enabled: boolean)

Ticaret standının etkin olup olmadığını ayarlar. Devre dışı bırakıldığında, bu işlev tüm UI'yi, yakınlık ipuçları da dahil olmak üzere kaldırır ve tüm olayları bağlantılarını keser. Bu işlev yalnızca bir LocalScript içinde çağrılabilir.

LocalScript

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

Olaylar

itemAdded

Bir öğe addItemAsync aracıyla eklendiğinde tetiklenir. Bu olay yalnızca bir Script içinde bağlanabilir.

Parametreler
assetId: numberÖğe varlık ID'si.
itemInfo: tableFiyat veya başlık gibi öğe bilgilerini içeren sözlük.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.itemAdded:Connect(function(assetId, itemInfo)
print("Varlık ID'si ile öğe eklendi", assetId)
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.
Script

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.itemRemoved:Connect(function(assetId)
print("Varlık ID'si ile öğe kaldırıldı", assetId)
end)

merchBoothOpened

Katalog veya öğe ayrıntı görünümü açıldığında tetiklenir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.merchBoothOpened:Connect(function()
print("Stant görünümü açıldı")
end)

merchBoothClosed

Katalog veya öğe ayrıntı görünümü kapandığında tetiklenir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.merchBoothClosed:Connect(function()
print("Stant görünümü kapandı")
end)

catalogViewOpened

Katalog görünümü açıldığında tetiklenir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.catalogViewOpened:Connect(function()
print("Katalog görünümü açıldı")
end)

catalogViewClosed

Katalog görünümü kapandığında tetiklenir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.catalogViewClosed:Connect(function()
print("Katalog görünümü kapandı")
end)

itemViewOpened

Öğe ayrıntı görünümü açıldığında tetiklenir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.itemViewOpened:Connect(function()
print("Öğe görünümü açıldı")
end)

itemViewClosed

Öğe ayrıntı görünümü kapandığında tetiklenir.

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TicaretStandı = require(ReplicatedStorage.TicaretStandı)
TicaretStandı.itemViewClosed:Connect(function()
print("Öğe görünümü kapandı")
end)
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.