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:
Aggiungi il Nucleo e Missioni al tuo inventario all'interno di Studio facendo clic sul link Aggiungi all'inventario nel seguente set di componenti.
Nella barra degli strumenti, seleziona la scheda Visualizza.
Fai clic su Toolbox . La finestra Toolbox viene visualizzata.
Nella finestra Toolbox , fai clic sulla scheda Inventario . Le visualizzazioni di Modelli miei sono ordinate.
Fai clic sul Piastrella Feature Package Core , quindi sul Piastrella Missions Feature Package .Entrambi i cartelletti del pacchetto vengono visualizzati nella finestra Explorer .
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.
Nome | Tipo | Descrizione |
---|---|---|
missionId | string | La chiave principale della tabella delle missioni. Tutte le missioni sono identificate da una propria Stringaunica. |
categoryId | string | Le missioni devono appartenere a una categoria e sonoaggruppate per categoria nell'interfaccia utente. |
tasks | table | Un 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.
Nome | Tipo | Descrizione |
---|---|---|
prerequisites | table | Un elenco di altri ID missioni che devono essere completati prima che la missione possa essere sbloccata. |
manualOnly | bool | Disabilita lo sblocco automatico della missione.Invece, deve essere chiamata una funzione per sbloccare la missione.Altre condizioni di sblocco devono essere ancora soddisfatte. |
availableAfterUtc | bool | La missione non può essere sbloccata prima del tempo specificato in UTC. |
availableBeforeUtc | bool | La missione non può essere sbloccata dopo il tempo specificato in UTC. Se viene sbloccata ma non completata prima di questo tempo, la missione fallirà. |
repeatable | bool | La missione viene nuovamente sbloccata dopo che è completata. |
repeatLimit | number | Se la missione è ripetibile, non può essere ripetuta più di questo molte volte. |
repeatCooldownSeconds | number | Se la missione è ripetibile, c'è un ritardo prima che venga sbloccata. |
expireSeconds | number | Se la missione viene sbloccata e non completata entro il numero specificato di secondi, fallirà invece. |
expireCountOffline | bool | Se 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.
Nome | Tipo | Descrizione |
---|---|---|
displayName | string | Un nome da mostrare per la missione nell'interfaccia utente invece del missionId . |
description | string | Un blocco di testo più lungo che fornisce ulteriori informazioni o contesto sulla missione. |
visibleAfterComplete | bool | Se impostato su vero, la missione apparirà nell'elenco delle missioni anche dopo che è stata completata ma contrassegnata come completata. |
visibleAfterFailed | bool | Se impostato su vero, la missione apparirà nell'elenco delle missioni anche dopo che è fallita ma è stata contrassegnata come fallita. |
visibleBeforeUnlocked | bool | Se impostato su vero, la missione sarà visibile ma bloccata nell'elenco delle missioni prima di essere disponibile per il completamento. |
invisibleWhileActive | bool | Se impostata su vero, la missione sarà invisibile anche mentre è attivamente in corso. |
rewards | table | Una lista di informazioni di visualizzazione delle ricompense.
|
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:
Nome | Tipo | Descrizione |
---|---|---|
taskType | string | Specifica se il tipo di attività è conteggio o tempistico. |
counter | object | (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).
|
metadata | object | (Opzionale) Informazioni su come la task viene visualizzata nell'interfaccia utente.
|
callToAction | object | (Opzionale) Un pulsante che attiva una funzione di richiamo.
|
Conta i campi delle attività
Le attività di conteggio hanno un valore richiesto. Quando il progresso del compito soddisfa questa quantità, il compito è completo.
Nome | Tipo | Descrizione |
---|---|---|
goalCount | number | (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.
Nome | Tipo | Descrizione |
---|---|---|
goalSeconds | number | Il numero di secondi che devono passare per completare il compito. |
startImmediately | bool | Se l'attività dovrebbe iniziare a contare il tempo non appena viene sbloccata, piuttosto che solo dopo essere stata avviata. |
includesOfflineTime | bool | Se 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.
Nome | Tipo | Descrizione |
---|---|---|
repeatDelaySeconds | number | (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:
Definisci le missioni nella configurazione delle tue missioni.
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 SaltoMissions.addProgressToTask(player, "Jumping", "Jumps", 1)-- Avvia il timer su una missione BattlingTime con un compito TimeInBattleMissions.startTimedTask(player, "BattlingTime", "TimeInBattle")-- Ferma il timer su una missione BattlingTime con un compito TimeInBattleMissions.stopTimedTask(player, "BattlingTime", "TimeInBattle")-- Aumenta il progresso su tutti i compiti legati al contapassi dei saltiCounterSystem.addCounter(player, "Jumps", 1)-- Avvia il timer su tutti i compiti temporali legati al contapassi TimeInBattleCounterSystem.startTimer(player, "TimeInBattle")-- Ferma il timer su tutte le attività programmate legate al contapassi TimeInBattleCounterSystem.stopTimer(player, "TimeInBattle")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.
LEGGIMElocal function completeHandler(player: Player, missionId: Types.MissionId)print(`{player} completed mission {missionId}`)-- Assegna al giocatore le sue ricompense.endMissions.setCompletionHandler(missionId, completeHandler)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.
LEGGIMEMissions.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.