Etkileşim ödülleri

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

Etkileşim Ödülleri özellik paketi, belirli oyuncu etkinlikleri için oyun içi ödüller sunmak amacıyla özelleştirilebilir bir çerçevedir. Bu aktiviteler arasında günlük giriş sıraları ve oyun oturum süresi bulunmaktadır. İstemci ve sunucu mantığına ek olarak, pakette ödül ilerlemesini, ödül durumunu görüntülemek ve ödülleri almak için varsayılan bir kullanıcı arayüzü bulunmaktadır.

Paketi alın

  1. Studio'nun Pencere menüsünden veya Ana Sayfa sekmesi araç çubuğundan Araç Kutusu'nu açın.

  2. Araç Kutusu penceresinde, Envanter sekmesine tıklayın. Modellerim sıralaması görüntülenir.

    Studio'nun Araç Kutusu penceresi, Envanter sekmesi vurgulanmış.
  3. Özellik Paketi Core carrete tıklayın, ardından Etkileşim Ödülleri Özellik Paketi carrete tıklayın. Her iki paket klasörü de Gezgin penceresinde görüntülenir.

  4. Klasörleri ReplicatedStorage içine sürükleyin.

Paketi başlat

Paketleri ReplicatedStorage içine taşıyarak deneyiminizi test etmek, ReplicatedStorage.EngagementRewards.Server.Examples içindeki EngagementRewardsExample scriptini çalıştırır.

Bu script, paketi deneyiminizde kullanıma başlatmanın nasıl yapılacağını gösterir; bu, birkaç modül scriptini gerektirmekte ve gerçekten ödül(ler)i oyuncuya vermek için rewardClaimedHandlerFunction() fonksiyonunu tanımlamaktadır.

Bu fonksiyon bir boolean döndürmelidir. Örnek scriptte, oyuncuya herhangi bir ödül vermediğini, yalnızca oyuncuyu, ödülü ve talep edilen miktarı yazdırdığını görebilirsiniz.

EngagementRewardsExample

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EngagementRewardsConfig = require(ReplicatedStorage.EngagementRewards.Configs.EngagementRewardsConfig)
local EngagementRewards = require(ReplicatedStorage.EngagementRewards.Server.EngagementRewards)
local EngagementRewardsUtils = require(ReplicatedStorage.EngagementRewards.Utils.EngagementRewardsUtils)
local Types = require(ReplicatedStorage.EngagementRewards.Configs.Types)
-- Bu işleyici fonksiyonu kendi ödül talep işleyici fonksiyonunuzla değiştirin
-- Bu fonksiyon, geçen rewardId için ödül talep olayını yönetmelidir
local function rewardClaimedHandlerFunction(player: Player, rewardId: RewardId, quantity: number): (boolean, string?)
print(`Ödül {rewardId} {player} tarafından {quantity} miktarıyla talep edildi`)
return true
end
-- daha fazla

Bu scripti doğrudan değiştirebilir veya sunucu kodunuz için tercih ettiğiniz konum olan ServerScriptService içine taşınabilirsiniz. Mevcut haliyle, script yalnızca test amaçları için kullanışlıdır.

Oyuncuya ödül verme yöntemi deneyimden deneye değişiklik gösterir. Bazı deneyimlerde, bir deneyim artışı sağlayabilir veya sadece oyuncunun altın sayısını artırabilirsiniz. Diğer deneyimlerde, özel bir envanter sistemi olabilir veya diğerleri oyunu alanlarına item yerleştirebilir. Ancak her durumda, rewardClaimedHandlerFunction() fonksiyonunu kendi fonksiyonunuzla değiştirmeniz gerekir.

Ödüller ve kriterler ekleyin

Ödüllerin çoğu özelleştirmesi ReplicatedStorage.EngagementRewards.Configs.EngagementRewardsConfig içinde gerçekleşir. Bu modül scripti, ödül ve onu açmak için gereken gereksinimleri tanımlar.

Tam tür beyanlarını ReplicatedStorage.EngagementRewards.Configs.Types içinde görebilir (veya yenilerini ekleyebilirsiniz), ancak muhtemelen yalnızca EngagementRewardsConfig ile çalışmanız gerekecek. Özellik paketi iki ödül türü içerir: Zaman ve Günlük.


local engagementRewardsConfig: Types.EngagementRewardsConfig = {
[Types.RewardType.Time] = {
tabDisplayName = "Zaman",
tabOrder = 1,
description = "Ödülleri açmak için oynamaya devam edin!",
rewards = {
MinutesPlayed1 = {
icon = 116913478160966,
displayName = "Buz Mızrağı",
requiredSecondsInGame = 1 * 5,
},
-- daha fazla
[Types.RewardType.Daily] = {
tabDisplayName = "Günlük",
tabOrder = 2,
description = "Ödülleri açmak için günlük oynayın!",
rewards = {
DailyStreak1 = {
icon = 116913478160966,
displayName = "Buz Mızrağı",
requiredDaysVisitedStreak = 1,
effect = Types.RewardEffect.Valuable,
},
-- daha fazla

Her iki ödül türü de bir simge gerektirir; bu, bir resim için bir Roblox varlık kimliğidir (decal değildir). Ayrıca kullanıcı arayüzünde kullanılmak üzere bir görüntü adı istediğinizi düşünüyorsunuzdur. 1 dışındaki değerler için quantity belirtin. Ayrıca isteğe bağlı olarak bir ödülü değerli olarak işaretleyebilirsiniz (effect = Types.RewardEffect.Valuable), böylece kullanıcı arayüzünde farklı bir arka plan çerçevesi alır.

DeğişkenTürAçıklamaVarsayılanGereken
iconSayıUI simgesi için bir Roblox varlık kimliği.N/AEvet
displayNameDizeUI'de kullanılmak üzere ödüller için bir ad.RewardIdHayır
quantitySayıÖdenecek item sayısı.1Hayır
effectRewardEffectUI'de kullanılacak görsel efekt. Kullanıcı Arayüzünü Özelleştir.Types.RewardEffect.DefaultHayır

Zaman ödülleri

Zaman ödülleri, oyunda belirli bir süre sonra açılır. Bu sayıları ihtiyaçlarınıza göre özelleştirin. Kolay testler için küçük sayılar kullanabilir ve yayınlanan deneyimde 10 dakikadan sonra bir ödül, ardından 30 dakikadan sonra bir ödül, ardından bir saat sonra bir başka ödül verebilirsiniz.

Çarpma, insanlara saniyeleri çalışmayı daha kolay hale getirir; bu nedenle iki saat için 2 * 60 * 60 belirtmek isteyebilirsiniz, 7200 yerine.

DeğişkenTürAçıklamaVarsayılanGereken
requiredSecondsInGameSayıOyuncunun ödülü kazanmak için oyunda harcaması gereken saniye sayısı (pozitif tamsayı).N/AEvet

Günlük ödüller

Günlük ödüller, belirli bir sayıda ardışık günlük girişten sonra açılır. Örneğin, bir oyuncunun ilk günde giriş yaptığında üç iksir veya bir tarçınlı rulo verebilirsiniz. Takip eden günlerde, daha değerli yenilebilir eşyalar verebilir, ardından yedi gün üst üste giriş yaptıktan sonra dayanıklı bir item, örneğin yeni bir balık oltası verebilirsiniz.

DeğişkenTürAçıklamaVarsayılanGereken
requiredDaysVisitedStreakSayıOyuncunun ödülü kazanmak için deneyime ardışık olarak bağlanması gereken gün sayısı.N/AEvet

DailyRewardTabConfig içinde iki ek günlük ödül yapılandırma seçeneği mevcuttur.


[Types.RewardType.Daily] = {
tabDisplayName = "Günlük",
tabOrder = 2,
description = "Ödülleri açmak için günlük oynayın!",
isHiddenOnJoin = true,
isAlignedToStreakResetTime = true,
rewards = {
DailyStreak1 = {
icon = 116913478160966,
displayName = "Buz Mızrağı",
requiredDaysVisitedStreak = 1,
},
-- daha fazla
DeğişkenTürAçıklamaVarsayılanGereken
isHiddenOnJoinBooleanDoğru olduğunda, ödüller deneyime katılırken otomatik olarak görünmez. Yanlış olduğunda, oyuncunun talep edecek yeni bir günlük ödülü varsa oyuna katıldıklarında otomatik olarak ödüller görünür.YanlışHayır
isAlignedToStreakResetTimeBooleanDoğru olduğunda, 2. gün ödülleri, ilk 1. gün talep edilebilir zamanından 24 saat sonra talep edilebilir. Yanlış olduğunda, 2. gün ödülleri, 1. gün talep edilebilir zamanından sonraki ilk gece yarısında talep edilebilir. Örneğin, bir oyuncu saat 11:00'de (23:00) giriş yapar ve 1. gün ödülünü talep ederse, doğru demek, 2. gün ödülünü talep etmelerini sağlamak için bir sonraki gün 11:00'de talep edemeyecekleri anlamına gelir. Yanlış demek ise, 2. gün ödülünü, 1. gün talep edilebilir zamanının 1 saat sonra 12:00'de (00:00) talep edebilecekleri anlamına gelir. 3. gün ve sonrası için ödüller her zaman bir önceki günün talep edilebilir zamanından 24 saat sonra mevcuttur.YanlışHayır

Kullanıcı arayüzünü özelleştirin

Önceki bölümde, kullanıcı arayüzünün temel özelleştirmesine olanak tanıyan tabDisplayName, tabOrder ve description alanlarını fark etmiş olabilirsiniz. Ayrıca ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings içerisinde bazı kullanıcı arayüzü metinlerini de bulabilirsiniz.

  • effect değişkenini kullanarak yeni bir ödül arka planı belirtmek için ReplicatedStorage.EngagementRewards.Objects.RewardItemFrames içine bir çerçeve ekleyin. Daha sonra çerçevenin adını ReplicatedStorage.EngagementRewards.Configs.Types içindeki Types.RewardEffect tablosuna ekleyin.

  • Daha kapsamlı kişiselleştirme için ReplicatedStorage.EngagementRewards.Objects içindeki nesneleri değiştirin. Örneğin, RewardsHudButton.Background çerçevesinin BackgroundColor3 değerini veya FooterContentFrame.ClaimableUIGradient için Color değerini değiştirebilirsiniz.

  • Kullanıcı arayüzü için giriş noktası, gerekli nesneleri alıp kullanıcı arayüzünü başlatan ReplicatedStorage.EngagementRewards.Client.UIController scriptidir. Baş düzey nesneleri eklemeyi veya yeniden adlandırmayı (yalnızca alt nesneleri eklemek veya özellikleri değiştirmek yerine) planlıyorsanız, bu klasördeki kodu güncelleyerek bunları işleyebilmeniz gerekebilir.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.