Görevler paketi

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

Görevler özellik paketi, oyuncuların tamamlayabileceği görevler oluşturarak ödüller kazanmasını ve oyununuzda ilerlemesini sağlamak için hazır işlevsellik sunar. Tüm görevlerin bir ID'si, kategorisi ve oyuncuların görevi tamamlamak için tamamlaması gereken bir görev listesi olmalıdır. Ancak, görev listesi boş olabilir, bu da görevin ödüllerinin hemen alınabilmesini sağlar.

Paketin özelleştirme seçeneklerini kullanarak, tüm görevleri benzersiz oyun deneyimi gereksinimlerinizi karşılayacak şekilde kişiselleştirebilirsiniz, örneğin:

Paketi alın

Yaratıcı Mağaza, projelerinizde kullanılmak üzere Roblox ve Roblox topluluğu tarafından oluşturulan tüm varlıkları bulmak için kullanabileceğiniz Araç Kutusu'nun bir sekmesidir; model, resim, ağ, ses, eklenti, video ve yazı tipi varlıkları dahil. Yaratıcı Mağaza'yı, açık bir oyuna bir veya daha fazla varlık eklemek için kullanabilirsiniz; bu, özellik paketlerini de içerir!

Her özellik paketi, düzgün çalışması için Çekirdek özellik paketini gerektirir. Çekirdek ve Görevler özellik paketi varlıkları envanterinize alındıktan sonra, bunları platformdaki herhangi bir projede yeniden kullanabilirsiniz.

Envanterinizdeki paketleri oyununuzda almak için:

  1. Aşağıdaki bileşenler setinde Envantere Ekle bağlantısına tıklayarak Çekirdek ve Görevler'i Studio içinde envanterinize ekleyin.

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

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

    Studio'nun Araç Kutusu penceresi, Envanter sekmesi vurgulanmış.
  4. Özellik Paketi Çekirdek karosuna, ardından Görevler Özellik Paketi karosuna tıklayın. Her iki paket klasörü de Keşfedin penceresinde görüntülenir.

  5. Paket klasörlerini ReplicatedStorage içine sürükleyin.

Görevleri tanımlayın

Her tamamlanabilir görev, görevi tamamlamak için bitirilmesi gereken bir dizi görev, yapılandırma seçenekleri ve isteğe bağlı görüntüleme meta verileri içerir; bunların tümü ReplicatedStorage.Missions.Configs.Missions içinde tanımlanabilir ve türler aynı klasördeki Types betiğinden dışa aktarılır.

Gerekli alanlar

Her görev için aşağıdaki alanlar gereklidir.

AdTürAçıklama
missionIdstringAna Görevler tablosu anahtarı. Tüm görevler, kendilerine özgü benzersiz bir dize ile tanımlanır.
categoryIdstringGörevler bir kategoriye ait olmalıdır ve UI'de kategoriye göre gruplandırılır.
taskstableOyuncunun görevi tamamlamak için bitirmesi gereken görevlerin bir listesi.

Kilitlenme koşulları

Varsayılan olarak, görevler oyuncular için otomatik olarak kilitlenir ve tam olarak bir kez tamamlanabilir. Ancak, bu davranışı değiştirmek için aşağıdaki isteğe bağlı yapılandırma seçeneklerini kullanabilirsiniz.

AdTürAçıklama
prerequisitestableGörev açılmadan önce tamamlanması gereken diğer missionIds'in bir listesi.
manualOnlyboolGörevin otomatik olarak kilitlenmesini devre dışı bırakır. Bunun yerine, görevi açmak için bir işlev çağrılmalıdır. Diğer tüm kilitlenme koşulları da karşılanmalıdır.
availableAfterUtcboolGörev, belirtilen UTC zamanından önce açılamaz.
availableBeforeUtcboolGörev, belirtilen UTC zamanından sonra açılamaz. Eğer bu zaman öncesinde açılır ama tamamlanmazsa, görev başarısız olur.
repeatableboolGörev tamamlandıktan sonra tekrar açılır.
repeatLimitnumberEğer görev tekrar edilebilir ise, bu kadar çok kez tekrar edilemez.
repeatCooldownSecondsnumberEğer görev tekrar edilebilir ise, açılmadan önce bir gecikme vardır.
expireSecondsnumberEğer görev açılmış ve belirtilen saniye sayısı içinde tamamlanmamışsa, görev başarısız olur.
expireCountOfflineboolEğer görevde expireSeconds varsa ve expireCountOffline true olarak ayarlandıysa, oyuncunun oyunda olmadığı süre görev süresine dahil edilir.

Meta veriler

Görevlerin, Görevler kullanıcı arayüzünde nasıl görüntüleneceğini belirten meta verileri vardır. Meta verilerini özelleştirmek için aşağıdaki isteğe bağlı alanları kullanabilirsiniz.

AdTürAçıklama
displayNamestringGörev için kullanıcı arayüzünde missionId yerine görüntülenecek bir ad.
descriptionstringGörev hakkında ek bilgi veya bağlam sağlayan daha uzun bir metin bloğu.
visibleAfterCompleteboolTrue olarak ayarlandığında, görev tamamlandıktan sonra bile tamamlanmış olarak işaretlenmiş olsa bile görevler listesinde görünecektir.
visibleAfterFailedboolTrue olarak ayarlandığında, görev başarısız olduktan sonra bile başarısız olarak işaretlenmiş olsa bile görevler listesinde görünecektir.
visibleBeforeUnlockedboolTrue olarak ayarlandığında, görev tamamlanabilir hale gelmeden önce görevler listesinde görünür ancak kilitli olacaktır.
invisibleWhileActiveboolTrue olarak ayarlandığında, görev aktif olarak ilerlerken bile görünmez olacaktır.
rewardstableÖdül görüntüleme bilgileri listesi.
  • assetID (number) - Görev için ödüller altında görevler UI'sinde görüntülenen resim ID'si. Eğer bir ödül varsa bu gereklidir.
  • displayName (string) - İkonun altında görevler UI'sinde görüntülenen ad.

Görevleri tanımlayın

Her görev sıfır veya daha fazla göreve sahip olabilir. Eğer bir görev sıfır görev içeriyorsa, açıldıktan hemen sonra talep edilebilir; eğer bir görev bir veya daha fazla göreve sahipse, görevler tamamlandığında oyuncu göreve bağlı ödülleri toplayabilir. Her görevin bir taskId'si vardır; bu, belirli bir görev için göreve bağlı anahtardır.

Görevler iki türde gelir:

  • Zamanlı Görevler - Görevi farklı zaman noktalarında başlatıp durdurmanıza olanak tanır. Görev zamanlayıcısı çalışırken belirli bir süre geçmelidir, ardından görev tamamlanır.
  • Sayım Görevleri - Görevin ilerlemesini artırmanıza veya ayarlamanıza olanak tanır. İlerleme belirli bir değere ulaştığında, görev tamamlanır.

Her iki görev türü de aşağıdaki alanları paylaşır:

AdTürAçıklama
taskTypestringGörev türünün sayım mı yoksa zamanlı mı olduğunu belirtir.
counterobject(İsteğe bağlı) Bu görevin izlediği sayaç. Sayacılar, bir sayı veya zamanlayıcı için oyuncuya özgü kalıcı depolamadır. Birden fazla görev, tek bir sayacı izleyebilir; örneğin, birden fazla görev, bir oyuncunun topladığı madeni para sayısını izliyorsa, hepsi aynı "madeni paralar" sayacını paylaşabilir. Bu görevler, sıfırdan başlayarak yeni toplanan madeni paraları bağımsız olarak izleyebilir veya sayaç değerinden (zaten toplanan tüm madeni paralar) devam edebilir.
  • counterId (string) - İzlenecek sayacın ID'si. Bu ID'yi kullanarak sayacın değerini almak veya ayarlamak için kullanın.
  • continueFromCounter (İsteğe bağlı bool) - True olarak ayarlandığında, görev ilerlemesi doğrudan sayacın değerine eşit olacaktır, artış miktarına değil.
metadataobject(İsteğe bağlı) Görevin UI'de nasıl görüntüleneceği hakkında bilgi.
  • displayName (string) - UI'de gösterildiğinde görev adı.
  • numericType (İsteğe bağlı string) - Görevdeki ilerleme sayısının nasıl görüntüleneceği.
    • Kesir, örn. 5/10 veya 5k/50k
    • Yüzde, örn. 50% veya 10%
    • Uzun Kesir, örn. 5/10 veya 5000/50000
    • Boolean, örn. Tamamlanmamış
callToActionobject(İsteğe bağlı) Bir geri çağırma işlevini tetikleyen bir düğme.
  • callback (function) - callToAction düğmesi tarafından tetiklenen işlev.
  • buttonText (string) - Düğme UI'sinde görüntülenen metin.

Sayım görevleri alanları

Sayım görevlerinin bir zorunlu değeri vardır. Görev ilerlemesi bu miktara ulaştığında, görev tamamlanır.

AdTürAçıklama
goalCountnumber(İsteğe bağlı) Görevi tamamlamak için gereken ilerleme.

Zaman görevleri alanları

Zaman görevleri, harcanan hedef süreye sahiptir ve başlatılıp durdurulabilir. Hedef süre karşılandığında, görev tamamlanır.

AdTürAçıklama
goalSecondsnumberGörevi tamamlamak için geçmesi gereken saniye sayısı.
startImmediatelyboolGörev açıldığında zaman sayımına hemen başlaması gerektiğini belirtir, yalnızca başlatıldığında değil.
includesOfflineTimeboolGörev, oyuncunun oyunda aktif olmadığı süreyi de içermelidir.

Kategorileri yapılandırın

Kategorilerin kullanılmak üzere açıkça tanımlanması gerekmez, çünkü bir görev için kategori varsayılan değerler kullanılır. Ancak, bu değerleri ReplicatedStorage.Missions.Configs.Categories içinde yapılandırarak kategoriye ek etkiler ekleyebilirsiniz. Kategoriler, görevler yapılandırmasında referans verilen benzersiz CategoryIds ile tanımlanır.

AdTürAçıklama
repeatDelaySecondsnumber(İsteğe bağlı) Ayarlandığında, kategorideki tüm görevler, belirtilen süre geçtikçe sıfırlanır ve tekrar açılabilir, tamamlanabilir ve ödülleri tekrar alınabilir. Bu, belirli bir kategori tekrarı içinde tekrar edilebilir görevlerden ayrıdır.

Sunucu mantığını entegre edin

ReplicatedStorage.Missions.Server.Examples.MissionsExample'a göz atın; bu, sunucunuzun Görevler özellik paketi ile nasıl etkileşime gireceğini gösterir.

Görevler özellik paketini oyununuza sürükledikten sonra dört şeyi bağlamanız gerekir:

  1. Görevler yapılandırmanızda görevleri tanımlayın.

  2. Görev ilerlemesini veya ilerlemenin bağlı olduğu sayaçları güncellemek için oyununuzda mantık ekleyin.

    README
    -- Jumps görevine sahip Jumping görevinde ilerlemeyi artırır
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- BattlingTime görevinde TimeInBattle görevinde zamanlayıcıyı başlatır
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- BattlingTime görevinde TimeInBattle görevinde zamanlayıcıyı durdurur
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Jumps sayacına bağlı tüm görevlerde ilerlemeyi artırır
    CounterSystem.addCounter(player, "Jumps", 1)
    -- TimeInBattle zamanlayıcı sayacına bağlı tüm zamanlı görevlerde zamanlayıcıyı başlatır
    CounterSystem.startTimer(player, "TimeInBattle")
    -- TimeInBattle zamanlayıcı sayacına bağlı tüm zamanlı görevlerde zamanlayıcıyı durdurur
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. Görev tamamlama işleyicilerini ayarlayın ve isteğe bağlı olarak açma veya başarısız olma işleyicileri ekleyin. Tamamlama işleyicisini, oyununuzda görevden ödülleri vermek için kullanın.

    README
    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} görev {missionId} tamamlandı`)
    -- Oyuncuya ödüllerini ver.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Otomatik olarak açılmayan görevleri açın. Görevler özellik paketi mantığı, görevin tamamlanabilmesi için tüm görev gereksinimlerinin karşılandığından emin olur ve ödülleri toplanabilir hale getirir.

    README
    Missions.unlockMission(player, "Manual")

Sabitleri yapılandırın

Çekirdek özellik paketi için sabitler iki yerde bulunur:

  • Paylaşılan sabitler ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants içinde bulunur.

  • Paket özel sabitleri, bu durumda Görevler özellik paketi, ReplicatedStorage.Missions.Configs.Constants içinde bulunur.

Ayrıca, çeviri için dizeleri bir yerde bulabilirsiniz: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

UI bileşenlerini özelleştirin

Paket nesnelerini, renkler, yazı tipi ve saydamlık gibi değiştirerek, görevler UI'nizin görsel sunumunu ayarlayabilirsiniz. Örneğin, ReplicatedStorage.Missions.Configs.Constants içinde SingleTaskMode'u etkinleştirerek, yalnızca tek bir görevi olan görevler için görevin kendisinde bir ilerleme çubuğu görüntüleyebilirsiniz.

Ayrıca, oyununuzda zaten mevcut bir UI varsa ve bunu Görevler özellik paketi ile entegre etmek istiyorsanız, istemci ModuleScript MissionsClient, sunucudan bir oyuncunun görevleri hakkında bilgi almak için gerekli tüm işlevleri içerir.

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