Görev 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 özelliği paketi, oyuncuların deneyiminizde ödüller ve ilerleme elde etmek için tamamlayabilecekleri görevler oluşturmak için kutudan dışarı işlevsellik sunar.Tüm görevlerin bir kimliği, kategorisi ve oyuncuların görevi bitirmek için tamamlaması gereken bir görev listesi olmalıdır.Ancak, görev listesi boş olabilir, böylece görevin ödülleri hemen talep edilebilir.

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

  • Yeni oyuncuları deneyiminize bindiren görevler oluşturmak ve D1 muhafazasını geliştirmek.
  • Orta ve uzun vadeli hedefler ve ilerleme duygusu ekleyerek D7 ve D30 muhafaza hedefi belirlemek
  • Oyununuzdaki çeşitli sistemleri ortaya çıkararak katılımı artırmak ve oyuncuları onlarla etkileşim kurmak için ödüllendirmek.

Paket alın

Yaratıcı Dükkanı Roblox ve Roblox topluluğu tarafından yapılan tüm varlıkları bulmak için kullanabileceğiniz Araç Çubuğu'nun bir sekmesidir, model, görüntü, mesh, ses, eklenti, video ve font varlıkları dahil olmak üzere projelerinizde kullanılan tüm varlıkları bulmak için.Özellik paketleri de dahil olmak üzere açık bir deneyime bir veya daha fazla varlık doğrudan eklemek için Yaratıcı Dükkanı kullanabilirsiniz!

Her özellik paketi doğru çalışması için Çekirdek özellik paketine ihtiyaç duyar. Çekirdek ve Görevler özellik paketlerinin envanterinizde olduğunda, platformdaki herhangi bir projede yeniden kullanabilirsiniz

Paketleri envanterinden deneyiminize almak için:

  1. Araç çubuğunda, Görüntüle sekmesini seçin.

  2. Araç çantasına tıklayın . Araç çantası penceresi görüntülenir.

    Studio's View tab with the Toolbox tool highlighted.
  3. Araç kutusu penceresinde, Envanter sekmesine tıklayın. Modellerim sıralaması görüntülenir.

    Studio's Toolbox window with the Inventory tab highlighted.
  4. Özellik Paketi Çekirdeği tuşuna tıklayın, ardından Görev Özelliği Paketi tuşuna tıklayın.Her iki paket klasörü Gezgini penceresinde görüntülenir.

  5. Paket klasörlerini Yeniden Yansıtılan Depoya sürükle.

Görevleri tanımla

Her tamamlanabilir görev, görevi tamamlamak, yapılandırma seçenekleri ve seçici görüntü verilerini bitirmek için bitirilmesi gereken bir dizi görev içerir, hepsi de aynı klasörde , çıktı kaydı ile çıkarılan kaydı ile tanımlanabilir.

Gerekli alanlar

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

AdıTürAçıklama
missionIdstringAna Görev tablosu anahtarı. Tüm görevler kendi benzersiz diziile tanımlanır.
categoryIdstringGörevler bir kategoriye ait olmalı ve UI'de kategoriye göre gruplandırılmalıdır.
taskstableOyuncunun görevi tamamlaması için bitirmesi gereken görevlerin bir listesi.

Şartların kilidini aç

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

AdıTürAçıklama
prerequisitestableGörevin kilidi açılmadan önce tamamlanması gereken diğer görev kimliklerinin bir listesi.
manualOnlyboolGörevin otomatik kilidini açmayı devre dışı bırakır.Bunun yerine, görevin kilidini açmak için bir işlev çağrılmalıdır.Diğer kilit koşullarının da hala karşılanması gerekir.
availableAfterUtcboolBelirtilen UTC saatinden önce görevin kilidi açılamaz.
availableBeforeUtcboolBelirtilen UTC saatinden sonra görev açılamaz. Eğer bu saatten önce açılır ve bu saatten önce bitirilmezse, görev başarısız olur.
repeatableboolGörev tamamlandıktan sonra tekrar kilidi açılır.
repeatLimitnumberEğer görev tekrarlanabilirse, bu kadar çok kez tekrarlanamaz.
repeatCooldownSecondsnumberEğer görev tekrarlanabilirse, kilidi açılmadan önce bir gecikme olur.
expireSecondsnumberEğer görev kilitlenir ve belirtilen sürede bitirilmezse, yerine başarısız olur.
expireCountOfflineboolEğer görevin expireSeconds ve expireCountOffline varsa ve oyuncu aslında deneyimde değilse, oyuncunun deneyime girmesi süresi görevin sona ermesine yönelik olarak sayılacaktır.

Meta veriler

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

AdıTürAçıklama
displayNamestringKullanıcı arayüzünde gösterilecek bir isim, missionId yerine misyon için.
descriptionstringGörevle ilgili ek bilgi veya konteks sağlayan daha uzun bir metin bloku.
visibleAfterCompleteboolDoğru olarak ayarlanırsa, görev tamamlandıktan sonra bile görev listesinde görünecek ve tamamlandı olarak işaretlenecektir.
visibleAfterFailedboolDoğru ayarlanırsa, görev başarısız olsa bile görevler listesinde görünecek ve başarısız olarak işaretlenecektir.
visibleBeforeUnlockedboolDoğru olarak ayarlanırsa, görev mevcut olmadan önce listede görünecek ve bitirilmesi için kilitlenecektir.
invisibleWhileActiveboolDoğru ayarlanırsa, görev aktifken bile görünmez olacaktır.
rewardstableÖdül görüntüleme bilgilerinin bir listesi.
  • assetID ( number ) - Görevler arayüzünde bir görev için ödüller altında görüntülenen görüntü ID'si. Bu, bir ödül mevcutsa gerekli.
  • displayName ( string ) - Simgenin altında görev arayüzünde görüntülenen isim.

Görevleri tanımla

Her görev sıfır veya daha fazla görev içerebilir.Bir görevin sıfır görevi varsa, kilidi açıldıktan hemen sonra talep edilebilir; bir görevin bir veya daha fazla görevi varsa, görevler tamamlandıktan sonra oyuncu görevle ilgili herhangi bir ödülü toplayabilir.Her görevin bir taskId var, ki bu, belirli bir görev için görevle ilişkili anahtardır.

Görevler iki tipe gelir:

  • Süreli Görevler - Görevi zamanın farklı noktalarında başlatmanızı ve durdurmanızı sağlar.Görevin zamanlayıcısı çalışırken belli bir süre geçmelidir, ardından görev tamamlanır.
  • Görevleri say - Görevin ilerlemesini eklemek veya ayarlamak için izin verir. İlerleme belli bir değere ulaştığında, görev tamamlanır.

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

AdıTürAçıklama
taskTypestringGörev türünün sayılı veya zamanlı olup olmadığını belirtir.
counterobject(Opsiyonel) Bu görevin takip ettiği sayaç.Sayaçlar, bir sayı veya bir zamanlayıcı için oyuncu özel kalıcı depolama alanıdır.Birden fazla görev tek bir karşı teklifizleyebilir; örneğin, eğer birden fazla görev bir oyuncunun topladığı kaç para olduğunu izlerse, hepsi aynı "para" karşı teklifpaylaşabilir.Bu görevler, sıfırdan başlayarak yeni toplanan paraları bağımsız olarak izleyebilir veya sayıcı değerinden sayımı sürdürebilir (tüm paralar zaten toplandı).
  • counterId ( string ) - Takip edilecek sayacın kimliği. Bu kimliği kullanarak karşı teklifdeğerini alın veya ayarlayın.
  • continueFromCounter (Opsiyonel bool ) - Eğer doğru ayarlanırsa, görev ilerlemesi artış miktarı yerine sayacın değerine doğrudan eşleşecektir.
metadataobject(Opsiyonel) Görevin UI'de nasıl göründüğüyle ilgili bilgi.
  • displayName ( string ) - UI'de gösterildiğinde kullanılan görevin adı.
  • numericType (Opsiyonel string ) - görevdeki ilerleme sayısının nasıl gösterilmesi gerektiği.
    • Bölüm, örn.5/10 veya 5k/50k
    • Yüzde, örneğin50% veya 10%
    • Uzun Bölüm, örneğin5/10 veya 5000/50000
    • Boolean, örneğinTamamlanmamış
callToActionobject(Opsiyonel) Bir geri çağrı işlevini tetikleyen bir düğme.
  • callback ( function ) - İşlev, callToAction düğmesi tarafından tetiklenen işlev.
  • buttonText ( string ) - Düğme arayüzünde görüntülenen metin.

Görev alanları say

Görev sayısının gerekli bir değeri vardır. Görev ilerlemesi bu miktara ulaştığında görev tamamlanır.

AdıTürAçıklama
goalCountnumber(Opsiyonel) Görevi tamamlamak için gereken ilerleme.

Zaman görevleri alanları

Süre görevlerinin hedef süre miktarı vardır ve başlatılır ve durdurulur. Hedef süre miktarı karşılandığında görev tamamlanır.

AdıTürAçıklama
goalSecondsnumberGörevi tamamlamak için geçmesi gereken saniye sayısı.
startImmediatelyboolGörev, yalnızca başladıktan sonra değil, hemen zaman sayımına başlamalıdır, eğer görev yalnızca başladıktan sonra sayım yapılırsa.
includesOfflineTimeboolEğer görev, oyuncu aktif olarak deneyimde değilken harcanan süre içermelidir.

Kategorileri yapılandır

Kategorilerin kullanılmak üzere açıkça tanımlanması gerekmez, çünkü bir görevin kategorisi için varsayılan değerler kullanılacaktır.Ancak, bu değerleri kategoride ek etkiler eklemek için ReplicatedStorage.Missions.Configs.Categories düzenleyebilirsiniz.Kategoriler benzersiz CategoryIds tarafından tanımlanır, görevlerde referans edilen aynılar.

AdıTürAçıklama
repeatDelaySecondsnumber(Opsiyonel) ayarla, kategorideki tüm görevler, belirtilen süre geçtiğinde her seferinde sıfırlanır ve kilidi açılabilir, tamamlanabilir ve ödülleri tekrar talep edilebilir.Bu, tekrarlanabilir görevlerden ayrıdır, ki bunlar belli bir kategori tekrarı içinde tekrarlanabilir.

Sunucu mantığını entegre et

Sunucunuzun ReplicatedStorage.Missions.Server.Examples.MissionsExample ile nasıl etkileşime gireceğini gösteren Görevler özelliği paketine bir göz atın.

Ana olarak, deneyiminize Görevler özelliği paketini sürükledikten sonra dört şey bağlamanız gerekir:

  1. Görevlerinizi görev yapılandırmasında tanımlayın.

  2. Görev ilerleme durumunu veya ilerlemeye bağlı sayaçları güncellemek için deneyime mantık ekleyin.

    OKUMAK İçin README

    -- Bir görevde Jumps görevi ile atlayarak ilerleme artırır
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- Savaş Zamanı adlı bir görevde zamanlayıcıyı bir TimeInBattle görevi ile başlatır
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Zamanlayıcıyı bir görevde Savaş Süresi ile TimeInBattle göreviyle durdurur
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Zıplama sayacına bağlı tüm görevlerin ilerlemesini artırır
    CounterSystem.addCounter(player, "Jumps", 1)
    -- Savaş Süresi sayacısına bağlı tüm zamanlı görevler üzerinde zamanlayıcıyı başlatır TimeInBattle sayaç sayacısına bağlı tüm zamanlı görevler üzerinde zamanlayıcıyı başlatır
    CounterSystem.startTimer(player, "TimeInBattle")
    -- Savaş Zamanı sayaç sayacına bağlı tüm zamanlı görevleri durdurur TimeInBattle sayaç sayacına bağlı tüm zamanlı görevleri karşı teklif
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. Görev bitirme elemanlarını ayarlayın ve isteğe bağlı olarak elemanların kilidini açın veya başarısız olun.Deneyiminizdeki görevlerden ödülleri vermek için tamamlayıcıyı kullanın.

    OKUMAK İçin README

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} completed mission {missionId}`)
    -- Oyunculara ödüllerini verin.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Otomatik olarak kilidi açılmayan görevlerin kilidini açın. Görevler özellik paketi mantığı, görev tamamlanmadan önce tüm görev gereksinimlerinin karşılandığını ve ödüllerin koleksiyonolduğunu garanti eder.

    OKUMAK İçin README

    Missions.unlockMission(player, "Manual")

Konstantları yapılandır

Çekirdek özelliği paketi için sabitler iki noktada yaşıyor:

  • Paylaşılan sabitler ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants 'de yaşar.

  • Paket spesifik konular, bu durumda Görevler özelliği paketi, canlı olarak yaşıyor ReplicatedStorage.Missions.Configs.Constants .

Ayrıca, çeviri için ayrılmış bir konuma sahip dize bulabilirsiniz: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings .

UI bileşenlerini özelleştirin

Renkler, yazı tipi ve saydamlık gibi paket nesnelerini değiştirerek, görevlerinizin görsel sunumunu ayarlayabilirsiniz.Örneğin, ReplicatedStorage.Missions.Configs.Constants , bir görevin sadece tek bir görevi olduğu durumlarda görevin kendisi üzerinde bir görev çubuğu görüntülemek için SingleTaskMode 'yi etkinleştirebilirsiniz.

Ayrıca, deneyiminiz zaten Misyonlar özelliği paketiyle entegre olmak istediğiniz mevcut bir UI'ye sahipse, istemci tüm oyuncunun gönderdiği oyunların bilgilerini almak için gerekli tüm fonksiyonları içerir.