Pacchetto pass stagionali

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

Il pacchetto di funzionalità Pass Stagionali offre funzionalità pronte all'uso per creare sistemi di progressione basati su missioni a tempo limitato, in cui i giocatori possono completare obiettivi di missione per guadagnare ricompense disponibili solo durante un periodo di tempo predefinito. Utilizzando le opzioni di personalizzazione del pacchetto, puoi personalizzare tutti i pass stagionali per offrire nuovi contenuti al tuo pubblico, promuovere la retention dei giocatori e generare entrate.

Ottieni il pacchetto

Il Creator Store è una scheda del Toolbox che puoi utilizzare per trovare tutte le risorse create da Roblox e dalla comunità di Roblox per l'uso nei tuoi progetti, inclusi modelli, immagini, mesh, audio, plugin, video e font. Puoi utilizzare il Creator Store per aggiungere una o più risorse direttamente in un gioco aperto, inclusi i pacchetti di funzionalità!

Ogni pacchetto di funzionalità richiede il pacchetto di funzionalità Core per funzionare correttamente, e il pacchetto Pass Stagionali richiede il pacchetto di funzionalità Missions per definire le missioni di una stagione. Una volta che tutti e tre i pacchetti di risorse sono nel tuo inventario, puoi riutilizzarli in qualsiasi progetto sulla piattaforma.

Per ottenere i pacchetti dal tuo inventario nel tuo gioco:

  1. Dal menu Finestra di Studio o dalla barra degli strumenti della scheda Home, apri il Toolbox.

  2. Nella finestra Toolbox, fai clic sulla scheda Inventario. La visualizzazione I miei modelli viene mostrata.

    Finestra del Toolbox di Studio con la scheda Inventario evidenziata.
  3. Fai clic sulla tile Pacchetto di funzionalità Core, sulla tile Pacchetto di funzionalità Missions, quindi sulla tile Pacchetto di funzionalità Pass Stagionali. Tutte e tre le cartelle del pacchetto vengono visualizzate nella finestra Explorer.

  4. Trascina le cartelle del pacchetto in ReplicatedStorage.

  5. Consenti alle chiamate del data store di tracciare gli acquisti dei giocatori con i pacchetti.

    1. Apri la finestra FileImpostazioni esperienza di Studio.
    2. Naviga alla scheda Sicurezza, quindi abilita Abilita accesso Studio ai servizi API.

Configura le dipendenze delle missioni

Affinché le stagioni funzionino correttamente, devi aggiungere logica affinché il pacchetto di funzionalità Pass Stagionali possa tracciare i progressi dei giocatori e aggiornare i suoi componenti UI. Per semplicità, l'esempio qui sotto utilizza il pacchetto di funzionalità Missions e chiama SeasonPasses.addProgressToSeason() dopo che i giocatori completano le missioni, ma puoi tracciare i progressi dei giocatori come preferisci. Tuttavia, sia che tu definisca missioni o meno, devi comunque aggiungere il pacchetto di funzionalità Missions al tuo gioco affinché il codice Pass Stagionali funzioni.

Le missioni hanno ciascuna un insieme di compiti che devono essere completati per completare la missione, opzioni di configurazione e metadati di visualizzazione opzionali. Per una guida approfondita su come configurare le missioni e i loro compiti, consulta Definisci missioni.

Aggiungi XP dalle missioni alle stagioni

Questo esempio utilizza il pacchetto di funzionalità Missions per definire missioni che i giocatori possono completare per guadagnare esperienza (XP) e progredire attraverso la stagione. Per premiare i giocatori con XP quando completano una missione definita, devi aggiungere logica allo script server ReplicatedStorage.Missions.Server.Examples.MissionsExample in modo che possa importare i dati del pass stagionale e premiare i giocatori in base ai loro progressi.

local SeasonPasses = require(ReplicatedStorage.SeasonPasses.Server.SeasonPasses)
local function completeHandler(player: Player, missionId: Types.MissionId)
print(`{player} ha completato la missione {missionId}`)
if missionId == "Walking" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Walking2" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Walking3" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Availability" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Manual" then
SeasonPasses.addProgressToSeason(player, 100)
end
if missionId == "Minutely" then
SeasonPasses.addProgressToSeason(player, 100)
end
end

Aggiungi icone di ricompensa per i livelli di stagione

Oltre a concedere XP ai giocatori quando completano missioni, il pacchetto di funzionalità Pass Stagionali utilizza il pacchetto di funzionalità Missions per definire livelli di ricompensa unici all'interno di una stagione. Se desideri aggiungere un'icona sullo schermo per una ricompensa di livello che i giocatori possono guadagnare se ottengono abbastanza XP, aggiungi un ID risorsa nella configurazione di Missions per ogni ricompensa di livello della stagione.

Tier3Mission = {
categoryId = "Generale",
metadata = {
displayName = "Missione di Livello 3",
description = "Salta 10 volte",
visibleAfterComplete = true,
visibleBeforeUnlocked = true,
rewards = {
{
icon = 16826775737,
displayName = "Oggetto",
},
{
icon = 106912146245070,
displayName = "XP Stagionale",
},
},
},
}

Configura le stagioni

Dopo aver impostato ogni missione che desideri includere in una stagione, è tempo di configurare il pass stagionale stesso. In ReplicatedStorage.SeasonPasses.Configs.Season, c'è un esempio di configurazione di una stagione per il tuo riferimento, e i seguenti campioni di codice provengono da quel file.

Definisci i pass

I pass ti consentono di addebitare ai giocatori una tariffa unica in Robux per accedere alle missioni e alle potenziali ricompense di un pass stagionale. Dopo aver creato un pass con un ID risorsa unico, puoi impostare i dettagli del pass nel campo premiumTrack della tua stagione. Ad esempio, il seguente campione di codice definisce un pass con un ID risorsa di esempio di 928192647 per rappresentare un pass stagionale, quindi assegna al pass stagionale un nome di tracciamento di "Tracciamento Premium".

premiumTrack = {
pricing = {
gamePassId = 928192647,
},
trackMetadata = {
trackName = "Tracciamento Premium",
},
},

Configura livelli e ricompense

I livelli di stagione rappresentano le pietre miliari che i giocatori devono raggiungere per guadagnare ricompense durante una stagione. Per salire di livello, i giocatori completano missioni per guadagnare XP, e quando guadagnano abbastanza XP, passano al livello successivo e ricevono ricompense per il livello appena completato. I livelli hanno una proprietà upperBoundXP che imposta la soglia di XP necessaria per richiedere le ricompense per un livello. Ogni livello può offrire due tipi di ricompense:

  • Gratuito - Una ricompensa che i giocatori possono guadagnare senza acquistare il pass stagionale.
  • Premium - Una ricompensa che i giocatori possono guadagnare solo acquistando il pass stagionale.

Per dimostrare, rivedi il seguente campione di codice per una stagione con un livello che richiede 100 XP per guadagnare una ricompensa di lancia di ghiaccio gratuita e una ricompensa di scudo esplosivo premium. L'icon è l'ID risorsa dell'immagine UI da visualizzare per una ricompensa, e il displayName visualizza un nome per la ricompensa. Nota che il displayName viene visualizzato nell'UI, ma il rewardId è nascosto al giocatore ed è principalmente utilizzato per scopi di data store.

tiers = {
[1] = {
upperBoundXP = 100,
freeReward = {
icon = 128181721602852,
displayName = "Lancia di Ghiaccio",
rewardId = "iceLance",
},
premiumReward = {
icon = 95882371958115,
displayName = "Scudo Esplosivo",
rewardId = "blastShield",
},
},
}

Sebbene questo script sia a scopo illustrativo su come configurare un livello alla volta, la maggior parte delle stagioni include più di un livello. Man mano che definisci più livelli e ricompense per una stagione, assicurati che ogni rewardId sia numerico e in ordine crescente in modo che i tuoi livelli vengano visualizzati nell'ordine in cui li definisci nell'elenco dei livelli.

Definisci i dettagli della stagione

Ora che hai un pass stagionale con livelli e ricompense, è tempo di definire i dettagli della tua stagione:

  • title - Il nome della tua stagione.
  • description - La descrizione della tua stagione.
  • startUtc - L'inizio della stagione in tempo universale coordinato.
  • endUtc - La fine della stagione in tempo universale coordinato.
  • seasonId - Ti consente di tracciare l'XP guadagnato da un giocatore durante la stagione data.

Il pacchetto utilizza startUtc e endUtc per visualizzare il conto alla rovescia della stagione.

startUtc = DateTime.fromUniversalTime(2024, 10, 01, 17, 0, 0),
endUtc = DateTime.fromUniversalTime(2025, 2, 28, 17, 0, 0),
title = "Stagione 1",
description = "Verso la Città Spaziale",
seasonId = "season1",

Integra la logica del server

Dai un'occhiata a ReplicatedStorage.SeasonPasses.Server.Examples.SeasonPassesExample, che mostra come il tuo server interagirà con il Pacchetto di funzionalità Pass Stagionali. Il frammento qui sotto proviene da quel script.

Devi principalmente creare una funzione di gestione per premiare le ricompense richieste ai tuoi giocatori. Ad esempio, il seguente campione di codice crea una funzione rewardClaimedHandlerFunction() che traccia quando i giocatori progrediscono al livello successivo, quindi li premia con la ricompensa gratuita, o con entrambe le ricompense gratuita e premium se hanno acquistato il pass stagionale.

Per i tuoi scopi, sostituisci la chiamata task.wait() con logica che consenta ai giocatori di ottenere le ricompense che hanno richiesto nella stagione. Questa funzione deve restituire un booleano: true se il server ha concesso la ricompensa, false se non l'ha fatto.

local function rewardClaimedHandlerFunction(_player: Player, _rewardId: Types.RewardId): boolean
task.wait(2)
return true
end
local function initializeRewardClaimedHandlers()
for tierId, tier in pairs(Season.tiers) do
if tier then
if tier.freeReward then
SeasonPasses.setRewardClaimedHandler(tier.freeReward.rewardId, rewardClaimedHandlerFunction)
end
if tier.premiumReward then
SeasonPasses.setRewardClaimedHandler(tier.premiumReward.rewardId, rewardClaimedHandlerFunction)
end
end
end
end

Configura costanti

Le costanti per il pacchetto di funzionalità Core vivono in due posti:

  • Le costanti condivise vivono in ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.
  • Le costanti specifiche del pacchetto, in questo caso il pacchetto di funzionalità Pass Stagionali, vivono in ReplicatedStorage.SeasonPasses.Configs.Constants. Le principali cose che potresti voler regolare per soddisfare i requisiti di design del tuo gioco:
  • ID risorse audio
  • Durata dell'effetto di acquisto e colori delle particelle Inoltre, puoi trovare stringhe per la traduzione suddivise in un'unica posizione: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

Personalizza i componenti UI

Modificando gli oggetti del pacchetto, come colori, font e trasparenza, puoi regolare la presentazione visiva dei tuoi prompt di pass stagionale. Tuttavia, tieni presente che se sposti uno qualsiasi degli oggetti gerarchicamente, il codice non sarà in grado di trovarli e dovrai apportare modifiche al tuo codice.

Una stagione è composta dai seguenti componenti di alto livello che vengono aggiunti programmaticamente ai componenti UI del Pacchetto di funzionalità Missions:

  • SeasonBottomFrame – Il frame che include informazioni su ciascun tracciato, un frame scorrevole delle ricompense per i livelli e dati sui livelli.
  • SeasonDescriptionFrame - Il frame nell'intestazione che visualizza il titolo della stagione, la descrizione e il conto alla rovescia.
  • TierRewardFrame - Il frame che visualizza una ricompensa specifica per un livello.
  • TierProgressFrame - Il frame che visualizza i progressi che il giocatore ha fatto verso il livello attuale su cui sta lavorando.
  • PurchaseFrame - Il frame che invita il giocatore ad acquistare un pass premium.
  • SeasonProgressFrame - Il frame che visualizza la barra di progresso del giocatore durante l'intera stagione.
  • RewardsButtonFrame - Il frame che aggiunge un pulsante che consente di visualizzare le informazioni della stagione attraverso il SeasonBottomFrame.
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.