Pacchetto missioni

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Il pacchetto di funzionalità Missioni offre funzionalità out-of-the-box per creare missioni che i giocatori possono completare per ottenere ricompense e progresso nella tua esperienza.Tutte le missioni devono avere un ID, una categoria e un elenco di compiti che i giocatori devono completare per terminare la missione.Tuttavia, l'elenco delle attività può essere vuoto, consentendo di richiedere immediatamente le ricompense della missione.

Usando le opzioni di personalizzazione del pacchetto, puoi personalizzare tutte le missioni per soddisfare i tuoi requisiti di gioco unici, come:

  • Creazione di missioni che a bordo nuovi giocatori nella tua esperienza e migliorare la ritenzione di D1.
  • Mirare a mantenimento di D7 e D30 aggiungendo obiettivi a medio e lungo termine e un senso di progresso.
  • Aumentare l'impegno aumentando la superficie dei vari sistemi nel tuo gioco e ricompensando i giocatori per l'interazione con essi.

Ottieni il pacchetto

Il Creator Store è una scheda della Toolbox che puoi utilizzare per trovare tutte le risorse create da Roblox e dalla comunità Roblox per l'uso all'interno dei tuoi progetti, tra cui modello, immagine, Mesh, maglia, audio/suono, Collegare, video e font.Puoi usare il Creator Store per aggiungere uno o più asset direttamente in un'esperienza aperta, inclusi i pacchetti delle funzionalità!

Ogni pacchetto delle funzionalità richiede che il pacchetto delle funzionalità Core funzioni correttamente.Una volta che le risorse del pacchetto Nucleo e Missioni sono all'interno del tuo Inventario, reportorio, puoi riutilizzarle in qualsiasi progetto sulla Piattaforma.

Per ottenere i pacchetti dal tuo inventario nella tua esperienza:

  1. Nella barra degli strumenti, seleziona la scheda Visualizza.

  2. Fai clic su Toolbox . La finestra Toolbox viene visualizzata.

    Studio's View tab with the Toolbox tool highlighted.
  3. Nella finestra Toolbox , fai clic sulla scheda Inventario . Le visualizzazioni di Modelli miei sono ordinate.

    Studio's Toolbox window with the Inventory tab highlighted.
  4. Fai clic sul Piastrella Feature Package Core , quindi sul Piastrella Missions Feature Package .Entrambi i cartelletti del pacchetto vengono visualizzati nella finestra Explorer .

  5. Trascina le cartelle del pacchetto in ReplicatedStorage .

Definire le missioni

Ogni missione completabile include un insieme di compiti che devono essere completati per completare la missione, le opzioni di configurazione e i metadati di visualizzazione opzionali, tutti i quali possono essere definiti entro ReplicatedStorage.Missions.Configs.Missions , con tipi esportati dallo script Types nella stessa cartella.

Campi richiesti

I seguenti campi sono richiesti per ogni missione.

NomeTipoDescrizione
missionIdstringLa chiave principale della tabella delle missioni. Tutte le missioni sono identificate da una propria Stringaunica.
categoryIdstringLe missioni devono appartenere a una categoria e sonoaggruppate per categoria nell'interfaccia utente.
taskstableUn elenco di compiti che il giocatore deve completare per completare la missione.

Sblocca le condizioni

Per impostazione predefinita, le missioni sono sbloccate per i giocatori automaticamente e possono essere completate esattamente una volta.Tuttavia, puoi utilizzare le seguenti opzioni di configurazione opzionali per modificare questo comportamento.

NomeTipoDescrizione
prerequisitestableUn elenco di altri ID missioni che devono essere completati prima che la missione possa essere sbloccata.
manualOnlyboolDisabilita lo sblocco automatico della missione.Invece, deve essere chiamata una funzione per sbloccare la missione.Altre condizioni di sblocco devono essere ancora soddisfatte.
availableAfterUtcboolLa missione non può essere sbloccata prima del tempo specificato in UTC.
availableBeforeUtcboolLa missione non può essere sbloccata dopo il tempo specificato in UTC. Se viene sbloccata ma non completata prima di questo tempo, la missione fallirà.
repeatableboolLa missione viene nuovamente sbloccata dopo che è completata.
repeatLimitnumberSe la missione è ripetibile, non può essere ripetuta più di questo molte volte.
repeatCooldownSecondsnumberSe la missione è ripetibile, c'è un ritardo prima che venga sbloccata.
expireSecondsnumberSe la missione viene sbloccata e non completata entro il numero specificato di secondi, fallirà invece.
expireCountOfflineboolSe la missione ha expireSeconds e expireCountOffline è impostata su vero, il tempo mentre il giocatore non è effettivamente nell'esperienza contribuirà all'esaurimento della missione.

Metadati

Le missioni hanno metadata che specificano come verranno visualizzate nell'interfaccia utente delle missioni.Puoi utilizzare i seguenti opzionali campi per personalizzare i suoi metadati.

NomeTipoDescrizione
displayNamestringUn nome da mostrare per la missione nell'interfaccia utente invece del missionId .
descriptionstringUn blocco di testo più lungo che fornisce ulteriori informazioni o contesto sulla missione.
visibleAfterCompleteboolSe impostato su vero, la missione apparirà nell'elenco delle missioni anche dopo che è stata completata ma contrassegnata come completata.
visibleAfterFailedboolSe impostato su vero, la missione apparirà nell'elenco delle missioni anche dopo che è fallita ma è stata contrassegnata come fallita.
visibleBeforeUnlockedboolSe impostato su vero, la missione sarà visibile ma bloccata nell'elenco delle missioni prima di essere disponibile per il completamento.
invisibleWhileActiveboolSe impostata su vero, la missione sarà invisibile anche mentre è attivamente in corso.
rewardstableUna lista di informazioni di visualizzazione delle ricompense.
  • assetID ( number ) - L'ID dell'immagine che viene visualizzato nell'interfaccia utente delle missioni sotto le ricompense per una missione. Questo è richiesto se una ricompensa è presente.
  • displayName ( string ) - Il nome che viene visualizzato nell'interfaccia utente delle missioni sotto l'Icona.

Definire le attività

Ogni missione può avere zero o più compiti.Se una missione ha zero compiti, può essere reclamata immediatamente dopo essere stata sbloccata; se una missione ha uno o più compiti, una volta che i compiti sono completati, il giocatore può raccogliere qualsiasi ricompensa associata alla missione.Ogni attività ha un taskId, che è la chiave associata all'attività per una missione data.

Le attività si dividono in due tipi:

  • Compiti temporali - Ti consente di avviare e interrompere il compito a punti diversi nel tempo.Deve trascorrere un certo periodo di tempo mentre il timer della task è in esecuzione, quindi la task è completata.
  • Conta le attività - Ti consente di aggiungere o impostare il progresso dell'attività. Quando il progresso raggiunge un valore impostato, l'attività è completata.

Entrambi i tipi di compito condividono i seguenti campi:

NomeTipoDescrizione
taskTypestringSpecifica se il tipo di attività è conteggio o tempistico.
counterobject(Opzionale) Il contatore che questa attività traccia.I contatori sono uno storage persistente specifico per il giocatore per un numero o un timer.Numerose attività possono tracciare un singolo contapassi; ad esempio, se più di una attività traccia il numero di monete che un giocatore ha raccolto, allora tutti possono condividere lo stesso contapassi "monete".Queste attività possono tracciare in modo indipendente le nuove monete raccolte, a partire da zero, o continuare a contare dal valore del contatore (tutte le monete già raccolte).
  • counterId ( string ) - L'ID del contatore da tracciare. Usa questo ID per ottenere o impostare il valore del contatore.
  • continueFromCounter (Opzionale bool ) - Se impostato su vero, il progresso del compito corrisponderà direttamente al valore del contatore piuttosto che all'importo che è aumentato.
metadataobject(Opzionale) Informazioni su come la task viene visualizzata nell'interfaccia utente.
  • displayName ( string ) - Nome del compito, utilizzato quando viene mostrato nell'interfaccia utente.
  • numericType (Opzionale string ) - come il numero di progresso nella task deve essere visualizzato.
    • Frazione, es.5/10 o 5k/50k
    • Percentuale, esempio50% o 10%
    • LongFraction, esempio5/10 o 5000/50000
    • Boolean, ad esempioIncompleto
    • >
callToActionobject(Opzionale) Un pulsante che attiva una funzione di richiamo.
  • callback ( function ) - Funzione attivata dal pulsante callToAction .
  • buttonText ( string ) - Il testo che viene visualizzato nell'interfaccia utente dei pulsanti.

Conta i campi delle attività

Le attività di conteggio hanno un valore richiesto. Quando il progresso del compito soddisfa questa quantità, il compito è completo.

NomeTipoDescrizione
goalCountnumber(Opzionale) Il progresso richiesto per completare il compito.

Campi delle attività del tempo

Le attività temporali hanno un tempo target di spesa e vengono avviate e interrotte. Quando viene raggiunta la quantità target di tempo, l'attività è completata.

NomeTipoDescrizione
goalSecondsnumberIl numero di secondi che devono passare per completare il compito.
startImmediatelyboolSe l'attività dovrebbe iniziare a contare il tempo non appena viene sbloccata, piuttosto che solo dopo essere stata avviata.
includesOfflineTimeboolSe la task deve includere il tempo speso mentre il giocatore non è attivamente nell'esperienza.

Configurare le categorie

Le categorie non devono essere definiti esplicitamente per essere utilizzati, poiché la categoria per una missione ha valori predefiniti che verranno utilizzati.Tuttavia, puoi configurare questi valori in ReplicatedStorage.Missions.Configs.Categories per aggiungere effetti aggiuntivi alla categoria.Le categorie sono identificate da uniche CategoryIds , le stesse citate nella configurazione delle missioni.

NomeTipoDescrizione
repeatDelaySecondsnumber(Opzionale) Se Impostare, tutte le missioni nella categoria vengono ripristinate ogni volta che passa la quantità di tempo specificata e possono essere sbloccate, completate e le loro ricompense reclamate di nuovo.Questo è separato dalle missioni ripetibili, che possono essere ripetute all'interno di una categoria data.

Integrare la logica del server

Dai un'occhiata a ReplicatedStorage.Missions.Server.Examples.MissionsExample, che mostra come il tuo server interagirà con il pacchetto funzionalità Missioni .

Devi principalmente collegare quattro cose una volta dopo aver trascinato il pacchetto funzione Missioni nella tua esperienza:

  1. Definisci le missioni nella configurazione delle tue missioni.

  2. Aggiungi logica alla tua esperienza per aggiornare i progressi delle attività o i contatori ai quali sono legati i progressi.

    LEGGIME

    -- Aumenta i progressi su una missione di Salto con un compito di Salto
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- Avvia il timer su una missione BattlingTime con un compito TimeInBattle
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Ferma il timer su una missione BattlingTime con un compito TimeInBattle
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Aumenta il progresso su tutti i compiti legati al contapassi dei salti
    CounterSystem.addCounter(player, "Jumps", 1)
    -- Avvia il timer su tutti i compiti temporali legati al contapassi TimeInBattle
    CounterSystem.startTimer(player, "TimeInBattle")
    -- Ferma il timer su tutte le attività programmate legate al contapassi TimeInBattle
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. Imposta i completatori della missione e, opzionalmente, sblocca o fallisce i completatori.Usa il completamento del handler per assegnare le ricompense dalla missione nella tua esperienza.

    LEGGIME

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} completed mission {missionId}`)
    -- Assegna al giocatore le sue ricompense.
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. Sblocca missioni che non vengono sbloccate automaticamente.La logica del pacchetto delle missioni garantisce che tutti i requisiti delle missioni siano soddisfatti prima che la missione sia completata e le sue ricompense siano Collezionabile.

    LEGGIME

    Missions.unlockMission(player, "Manual")

Configura le costanti

Le costanti per il pacchetto funzionale Core sono live in due punti:

  • Le costanti condivise vivono in ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants .

  • Costanti specifiche del pacchetto, in questo caso il pacchetto funzione Missioni , vive in ReplicatedStorage.Missions.Configs.Constants .

Inoltre, puoi trovare stringhe per la traduzione divise in una posizione: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings .

Personalizza componenti dell'interfaccia utente

Modificando gli oggetti del pacchetto, come colori, caratteri e trasparenza, puoi regolare la presentazione visiva della tua interfaccia utente delle missioni.Ad esempio, in ReplicatedStorage.Missions.Configs.Constants , puoi abilitare SingleTaskMode a visualizzare una barra di progresso per una task direttamente sulla missione stessa per le missioni che hanno solo una singola task.

Inoltre, se la tua esperienza ha già un'interfaccia utente esistente che vorresti integrare con il pacchetto funzioni Missioni, il cliente > contiene tutte le funzioni necessarie per ottenere le informazioni sulle missioni di un Giocatoreinviate dal Server.