任務功能包提供盒外功能,讓玩家完成任務以在您的體驗中獲得獎勵和進步。所有任務必須擁有ID、類別和玩家必須完成的任務清單,才能完成任務。然而,任務清單可以為空,允許立即領取任務的獎勵。
使用包裝的自訂選項,您可以個人化所有任務,以滿足您獨特的遊戲需求,例如:
- 透過新增中期到長期目標和進度感來達到 D7 和 D30 保留率 的目標。
- 增加參與,透過顯示遊戲中的各種系統,並獎勵玩家與它們互動。

取得包裹
創作者商店是您可以使用的工具箱標籤,包括模型、圖像、網格、音訊頻、外掛程式、視頻和字體資產,是 Roblox 和 Roblox 社群為您的項目所製作的所有資產。您可以使用創作者商店直接將一個或多個資產添加到開放的體驗中,包括功能包!
每個功能包都需要 核心 功能包正常運作。一旦 核心 和 任務 功能包資產進入您的道具欄後,您可以在平台上的任何項目上重複使用它們。
要將庫存的包裹帶入您的體驗:
在 Studio 內點擊以下組件中的 核心 和 任務 鏈接,將 加入庫存 添加到您的庫存中。
在工具欄中,選擇查看標籤。
點擊 工具箱。工具箱窗口顯示。
在 工具箱 窗口中,單擊 庫存 標籤。顯示 我的模型 排序。
點擊 功能包核心 磚塊,然後點擊 任務功能包 磚塊。兩個包夾都會顯示在 資料檢視器 視窗中。
將包裹文件夾拖入 ReplicatedStorage 。
定義任務
每個完成任務包括完成任務、配置選項和可選顯示元數據的一組任務,所有這些都可以在 ReplicatedStorage.Missions.Configs.Missions 內定義,其中類型從 Types 腳本中匯出到同一文件夾中。
必填欄位
每個任務都需要下列欄位。
名稱 | 類型 | 說明 |
---|---|---|
missionId | string | 主要任務表鑰鍵。所有任務都由自己獨特的字串標識。 |
categoryId | string | 任務必須屬於類別,並在介面上依類別群組。 |
tasks | table | 玩家必須完成任務的一個清單。 |
解鎖條件
預設情況下,任務會自動為玩家解鎖,且只能完成一次。然而,您可以使用以下 可選 配置選項來變更此行為。
名稱 | 類型 | 說明 |
---|---|---|
prerequisites | table | 一個列表其他必須完成的任務ID才能解鎖任務的列表。 |
manualOnly | bool | 停用任務的自動解鎖。相反,必須呼叫一個函數來解鎖任務。其他所有解鎖條件也必須遵守。 |
availableAfterUtc | bool | 任務無法在 UTC 指定時間之前解鎖。 |
availableBeforeUtc | bool | 任務在指定的 UTC 時間後無法解鎖。如果在此時間前解鎖但未完成,任務將失敗。 |
repeatable | bool | 任務在完成後再次解鎖。 |
repeatLimit | number | 如果任務可重複,它不能重複超過這麼多次。 |
repeatCooldownSeconds | number | 如果任務可重複,在它被解鎖之前會有一個延遲。 |
expireSeconds | number | 如果任務被解鎖但未在指定的秒數內完成,則會失敗。 |
expireCountOffline | bool | 如果任務有 expireSeconds 和 expireCountOffline 設為真實,玩家實際上不在體驗中時的時間將計入任務到期時間。 |
元資料
任務具有說明如何在任務使用者介面中顯示的元數據。您可以使用以下 可選 欄位來自訂其 metadata。
名稱 | 類型 | 說明 |
---|---|---|
displayName | string | 在使用者介面顯示任務的名稱,而不是 missionId 。 |
description | string | 一個更長的文字塊,提供額外資訊或關於任務的上下文。 |
visibleAfterComplete | bool | 如果設為真實,任務將在完成但標為已完成後仍出現在任務列表中。 |
visibleAfterFailed | bool | 如果設為真實,任務在失敗但標為失敗後仍會出現在任務列表中。 |
visibleBeforeUnlocked | bool | 如果設為真實,任務將會顯示,但在完成前會被列入任務清單。 |
invisibleWhileActive | bool | 如果設為真實,任務即使在進行中也會隱形。 |
rewards | table | 獎勵顯示資訊的列表。
|
定義任務
每個任務可以有零或更多的任務。如果任務沒有任務,它可以立即解鎖;如果任務有一個或多個任務,完成任務後,玩家可以收集與任務相關的任何獎勵。每個任務都有 taskId ,這是與給定任務相關的任務的關鍵。
任務有兩種類型:
- 定時任務 - 讓您在不同時間點開始和停止任務。任務的計時器運行時必須經過一定的時間,任務才完成。
- 計數任務 - 讓您增加或設置任務的進度。當進度達到設定值時,任務完成。
兩種任務類型都共享以下欄位:
名稱 | 類型 | 說明 |
---|---|---|
taskType | string | 指定任務類型是否為計數或定時。 |
counter | object | (可選)此任務的計數器。計數器是玩家特定的永久存儲,用於數字或計時器。多個任務可以跟蹤單一計數器;例如,如果多於一個任務跟蹤玩家收集了多少枚硬幣,那麼他們都可以共享相同的「硬幣」計數器。這些任務可獨立地跟蹤收集到的新硬幣,從零開始或繼續從計數器值(所有已收集的硬幣)計數。
|
metadata | object | (可選) 關於任務在介面上顯示的資訊。
|
callToAction | object | (可選) 一個按鈕,會觸發回稱功能。
|
計數任務欄位
計數任務有一個必須值。當任務進度達到此數量時,任務完成。
名稱 | 類型 | 說明 |
---|---|---|
goalCount | number | (可選) 完成任務所需的進度。 |
時間任務字段
時間任務有一個預定使用時間,並且開始和停止。當達到預定使用時間時,任務完成。
名稱 | 類型 | 說明 |
---|---|---|
goalSeconds | number | 完成任務所需的秒數。 |
startImmediately | bool | 如果任務必須在解鎖後立即開始計時,而不是在開始後才開始計時。 |
includesOfflineTime | bool | 如果任務應包括玩家在體驗中未主動進行時所花費的時間。 |
配置類別
類別不需要明確定義即可使用,因為任務的類別具有預設值,將被使用。然而,您可以在 ReplicatedStorage.Missions.Configs.Categories 中配置這些值,以將額外效果添加到類別。類別由獨特的CategoryIds識別,與任務配置中引用的相同。
名稱 | 類型 | 說明 |
---|---|---|
repeatDelaySeconds | number | (可選) 如果設定,類別中的所有任務每當通過指定的時間量時都會重置,並可能再次解鎖、完成和領取獎勵。這與可重複的任務不同,可在給定的類別中重複。 |
整合伺服器邏輯
看看 ReplicatedStorage.Missions.Server.Examples.MissionsExample , 它顯示您的伺服器如何與 任務包 互動。
您主要需要將四個東西連接起來一次將 任務 功能包包裝到您的體驗中:
在任務配置中定義任務。
為您的體驗添加邏輯以更新任務進度或與進度相關的計數器。
閱讀說明-- 使用跳躍任務在任務上增加進度跳躍Missions.addProgressToTask(player, "Jumping", "Jumps", 1)-- 在戰鬥時間任務上啟動計時器,使用 TimeInBattle 任務Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")-- 停止計時器在戰鬥時間任務上的計時器以執行 TimeInBattle 任務Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")-- 提高與跳躍計數器相關的所有任務的進度CounterSystem.addCounter(player, "Jumps", 1)-- 啟動與戰鬥時間計時器相關的所有定時任務的計時器計數器CounterSystem.startTimer(player, "TimeInBattle")-- 停止所有定時任務,這些任務與戰鬥時間計數器相關CounterSystem.stopTimer(player, "TimeInBattle")設定任務完成處理程式,並可選擇解鎖或失敗處理程式。使用完成處理器來從體驗中的任務中授予獎勵。
閱讀說明local function completeHandler(player: Player, missionId: Types.MissionId)print(`{player} completed mission {missionId}`)-- 授予玩家獎勵。endMissions.setCompletionHandler(missionId, completeHandler)解鎖不自動解鎖的任務。 任務 功能包逻辑確保任務完成前所有任務要求都被滿足,並且任務獎勵是可收集的。
閱讀說明Missions.unlockMission(player, "Manual")
配置常量
核心 功能包的常量在兩個地方生活:
共用常量生活在 ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants 。
包裝特定常數,在這個例子中, 任務 功能包包住在 ReplicatedStorage.Missions.Configs.Constants 。
此外,您可以在一個位置找到翻譯的字串:ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings。
自訂介面元件
修改包裝對象,例如顏色、字體和透明度,可調整任務介面的視覺呈現。例如,在 ReplicatedStorage.Missions.Configs.Constants 中,您可以啟用 SingleTaskMode 以直接在任務上顯示進度條對於只有一個任務的任務。
此外,如果您的體驗已經有一個現有的用戶介面,您想與 任務 功能包一起整合,客戶端 包含從服務伺服器傳送玩家任務的資訊所需的所有功能。