Pakiet przepustek sezonowych

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Pakiet funkcji Przepustki Sezonowe oferuje gotową funkcjonalność do tworzenia systemów postępu opartych na zadaniach, które są dostępne przez ograniczony czas, w których gracze mogą realizować cele zadań, aby zdobywać nagrody, które są dostępne tylko w określonym czasie. Korzystając z opcji dostosowywania pakietu, możesz spersonalizować wszystkie przepustki sezonowe, aby dostarczać nową zawartość swojej publiczności, promować zatrzymywanie graczy i generować przychody.

Uzyskaj pakiet

Sklep Twórcy to zakładka w Narzędziu, której możesz użyć do znalezienia wszystkich zasobów stworzonych przez Roblox i społeczność Roblox do wykorzystania w swoich projektach, w tym zasobów modelu, obrazu, siatki, dźwięku, wtyczki, wideo i czcionek. Możesz użyć Sklepu Twórcy, aby dodać jeden lub więcej zasobów bezpośrednio do otwartej gry, w tym pakiety funkcji!

Każdy pakiet funkcji wymaga pakietu Core, aby działał poprawnie, a pakiet Przepustki Sezonowe wymaga pakietu Missions, aby zdefiniować misje sezonu. Gdy wszystkie trzy zasoby pakietu znajdują się w Twoim inwentarzu, możesz je ponownie wykorzystać w dowolnym projekcie na platformie.

Aby przenieść pakiety z inwentarza do gry:

  1. Z menu Okno w Studio lub paska narzędzi zakładki Strona główna, otwórz Narzędzie.

  2. W oknie Narzędzie kliknij zakładkę Inwentarz. Wyświetli się sortowanie Moje modele.

    Okno Narzędzia w Studio z wyróżnioną zakładką Inwentarz.
  3. Kliknij kafelek Pakiet funkcji Core, kafelek Pakiet funkcji Missions, a następnie kafelek Pakiet funkcji Przepustki Sezonowe. Wszystkie trzy foldery pakietów wyświetlą się w oknie Eksplorator.

  4. Przeciągnij foldery pakietów do ReplicatedStorage.

  5. Zezwól na wywołania przechowywania danych, aby śledzić zakupy graczy z pakietami.

    1. Otwórz okno PlikUstawienia doświadczenia w Studio.
    2. Przejdź do zakładki Bezpieczeństwo, a następnie włącz Włącz dostęp Studio do usług API.

Skonfiguruj zależności misji

Aby sezony działały poprawnie, musisz dodać logikę, aby pakiet funkcji Przepustki Sezonowe mógł śledzić postęp graczy i aktualizować swoje komponenty UI. Dla uproszczenia, poniższy przykład używa pakietu funkcji Missions i wywołuje SeasonPasses.addProgressToSeason(), gdy gracze ukończą misje, ale możesz śledzić postęp graczy w dowolny sposób. Niezależnie od tego, czy definiujesz misje, czy nie, musisz nadal dodać pakiet funkcji Missions do swojej gry, aby kod Przepustki Sezonowe działał.

Misje mają zestaw zadań, które muszą być ukończone, aby zakończyć misję, opcje konfiguracyjne i opcjonalne metadane wyświetlania. Aby uzyskać szczegółowy przewodnik na temat konfigurowania misji i ich zadań, zobacz Zdefiniuj misje.

Dodaj XP z misji do sezonów

Ten przykład używa pakietu funkcji Missions, aby zdefiniować misje, które gracze mogą ukończyć, aby zdobyć doświadczenie (XP) i postępować w sezonie. Aby przyznać graczom XP, gdy ukończą zdefiniowaną misję, musisz dodać logikę do skryptu serwera ReplicatedStorage.Missions.Server.Examples.MissionsExample, aby mógł importować dane przepustki sezonowej i nagradzać graczy zgodnie z ich postępem.

local SeasonPasses = require(ReplicatedStorage.SeasonPasses.Server.SeasonPasses)
local function completeHandler(player: Player, missionId: Types.MissionId)
print(`{player} ukończył misję {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

Dodaj ikony nagród poziomów sezonu

Oprócz przyznawania graczom XP, gdy ukończą misje, pakiet funkcji Przepustki Sezonowe używa pakietu funkcji Missions, aby zdefiniować unikalne poziomy nagród w sezonie. Jeśli chcesz dodać ikonę na ekranie dla nagrody poziomu, którą gracze mogą zdobyć, jeśli zdobędą wystarczająco dużo XP, dodaj identyfikator zasobu w konfiguracji Missions dla każdej nagrody poziomu sezonu.

Tier3Mission = {
categoryId = "General",
metadata = {
displayName = "Misja Poziom 3",
description = "Skocz 10 razy",
visibleAfterComplete = true,
visibleBeforeUnlocked = true,
rewards = {
{
icon = 16826775737,
displayName = "Przedmiot",
},
{
icon = 106912146245070,
displayName = "XP Sezonowe",
},
},
},
}

Skonfiguruj sezony

Po skonfigurowaniu każdej misji, którą chcesz uwzględnić w sezonie, czas skonfigurować samą przepustkę sezonową. W ReplicatedStorage.SeasonPasses.Configs.Season znajduje się przykład konfiguracji sezonu do Twojej wiadomości, a poniższe próbki kodu pochodzą z tego pliku.

Zdefiniuj przepustki

Przepustki pozwalają na pobieranie od graczy jednorazowej opłaty w Robuxach, aby uzyskać dostęp do misji i potencjalnych nagród przepustki sezonowej. Po utworzeniu przepustki z unikalnym identyfikatorem zasobu, możesz ustawić szczegóły przepustki w polu premiumTrack swojego sezonu. Na przykład, poniższy przykład kodu definiuje przepustkę z przykładowym identyfikatorem zasobu 928192647, aby reprezentować przepustkę sezonową, a następnie nadaje jej nazwę ścieżki "Premium Track".

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

Skonfiguruj poziomy i nagrody

Poziomy sezonu reprezentują kamienie milowe, które gracze muszą osiągnąć, aby zdobywać nagrody w trakcie sezonu. Aby wspinać się po poziomach, gracze wykonują misje, aby zdobywać XP, a gdy zdobędą wystarczająco dużo XP, przechodzą do następnego poziomu i otrzymują nagrody za poziom, który właśnie ukończyli. Poziomy mają właściwość upperBoundXP, która ustawia próg XP niezbędny do odebrania nagród za dany poziom. Każdy poziom może oferować dwa rodzaje nagród:

  • Darmowe - Nagroda, którą gracze mogą zdobyć bez zakupu przepustki sezonowej.
  • Premium - Nagroda, którą gracze mogą zdobyć tylko poprzez zakup przepustki sezonowej.

Aby to zobrazować, zapoznaj się z poniższym przykładem kodu dla sezonu z jednym poziomem, który wymaga 100 XP, aby zdobyć darmową nagrodę w postaci lodowego włóczni i nagrodę premium w postaci tarczy wybuchowej. icon to identyfikator zasobu obrazu UI do wyświetlenia dla nagrody, a displayName wyświetla nazwę nagrody. Zauważ, że displayName wyświetla się w UI, ale rewardId jest ukryty przed graczem i jest głównie używany do celów przechowywania danych.

tiers = {
[1] = {
upperBoundXP = 100,
freeReward = {
icon = 128181721602852,
displayName = "Lodowa Włócznia",
rewardId = "iceLance",
},
premiumReward = {
icon = 95882371958115,
displayName = "Tarcza Wybuchowa",
rewardId = "blastShield",
},
},
}

Chociaż ten skrypt ma na celu ilustrację, jak skonfigurować jeden poziom na raz, większość sezonów zawiera więcej niż jeden poziom. Gdy definiujesz wiele poziomów i nagród dla sezonu, upewnij się, że każdy rewardId jest numeryczny i w rosnącej kolejności, aby Twoje poziomy wyświetlały się w kolejności, w jakiej je zdefiniujesz na liście poziomów.

Zdefiniuj szczegóły sezonu

Teraz, gdy masz przepustkę sezonową z poziomami i nagrodami, czas zdefiniować szczegóły swojego sezonu:

  • title - Nazwa Twojego sezonu.
  • description - Opis Twojego sezonu.
  • startUtc - Początek sezonu w czasie uniwersalnym skoordynowanym.
  • endUtc - Koniec sezonu w czasie uniwersalnym skoordynowanym.
  • seasonId - Pozwala śledzić XP, które gracz zdobywa w danym sezonie.

Pakiet używa startUtc i endUtc, aby wyświetlić odliczanie sezonu.

startUtc = DateTime.fromUniversalTime(2024, 10, 01, 17, 0, 0),
endUtc = DateTime.fromUniversalTime(2025, 2, 28, 17, 0, 0),
title = "Sezon 1",
description = "W Kosmicznym Mieście",
seasonId = "season1",

Zintegruj logikę serwera

Zobacz ReplicatedStorage.SeasonPasses.Server.Examples.SeasonPassesExample, który pokazuje, jak Twój serwer będzie współdziałał z Pakietem Funkcji Przepustki Sezonowej. Fragment poniżej pochodzi z tego skryptu.

Musisz głównie stworzyć funkcję obsługi dla przyznawania nagród, które gracze zgłosili. Na przykład, poniższy przykład kodu tworzy funkcję rewardClaimedHandlerFunction(), która śledzi, kiedy gracze przechodzą do następnego poziomu, a następnie nagradza ich albo tylko nagrodą darmową, albo zarówno nagrodą darmową, jak i premium, jeśli zakupili przepustkę sezonową.

Dla Twoich potrzeb, zastąp wywołanie task.wait() logiką, która pozwala graczom otrzymać nagrody, które zgłosili w sezonie. Ta funkcja musi zwracać wartość logiczną: true, jeśli serwer przyznał nagrodę, false, jeśli nie.

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

Skonfiguruj stałe

Stałe dla pakietu funkcji Core znajdują się w dwóch miejscach:

  • Wspólne stałe znajdują się w ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.
  • Stałe specyficzne dla pakietu, w tym przypadku pakietu funkcji Przepustki Sezonowe, znajdują się w ReplicatedStorage.SeasonPasses.Configs.Constants. Główne rzeczy, które możesz chcieć dostosować, aby spełnić wymagania projektowe swojej gry:
  • Identyfikatory zasobów dźwięku
  • Czas trwania efektu zakupu i kolory cząsteczek Dodatkowo, możesz znaleźć ciągi do tłumaczenia zebrane w jednym miejscu: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

Dostosuj komponenty UI

Modyfikując obiekty pakietu, takie jak kolory, czcionka i przezroczystość, możesz dostosować wizualną prezentację swoich komunikatów o przepustkach sezonowych. Pamiętaj jednak, że jeśli przeniesiesz którykolwiek z obiektów w hierarchii, kod nie będzie w stanie ich znaleźć i będziesz musiał dostosować swój kod.

Sezon składa się z następujących komponentów na wysokim poziomie, które są programowo dodawane do komponentów UI Pakietu Funkcji Misji:

  • SeasonBottomFrame – Ramka, która zawiera informacje o każdej ścieżce, przewijającą ramkę nagród za poziomy i dane poziomów.
  • SeasonDescriptionFrame - Ramka w nagłówku, która wyświetla tytuł sezonu, opis i odliczanie.
  • TierRewardFrame - Ramka, która wyświetla konkretną nagrodę za poziom.
  • TierProgressFrame - Ramka, która wyświetla postęp, jaki gracz osiągnął w kierunku aktualnego poziomu, nad którym pracuje.
  • PurchaseFrame - Ramka, która zachęca gracza do zakupu przepustki premium.
  • SeasonProgressFrame - Ramka, która wyświetla pasek postępu gracza przez cały sezon.
  • RewardsButtonFrame - Ramka, która dodaje przycisk, który pozwala na wyświetlenie informacji o sezonie przez SeasonBottomFrame.
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.