ชุดฟีเจอร์ภารกิจ

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ชุดฟีเจอร์ ภารกิจ นำเสนอฟังก์ชันการทำงานที่จัดเตรียมไว้ล่วงหน้าเพื่อสร้างภารกิจที่ผู้เล่นสามารถทำสำเร็จเพื่อรับรางวัลและก้าวหน้าในประสบการณ์ของคุณ โดยภารกิจทั้งหมดจะต้องมี ID, หมวดหมู่ และรายการของงานที่ผู้เล่นต้องทำเพื่อให้ภารกิจเสร็จสมบูรณ์ อย่างไรก็ตาม รายการงานสามารถว่างเปล่าได้ ทำให้ผู้เล่นสามารถรับรางวัลภารกิจได้ทันที

โดยใช้ตัวเลือกการปรับแต่งของชุดฟีเจอร์ คุณสามารถปรับเปลี่ยนภารกิจทั้งหมดให้ตรงกับความต้องการในการเล่นเกมที่ไม่ซ้ำใครของคุณ เช่น:

  • สร้างภารกิจที่ช่วย แนะนำ ผู้เล่นใหม่ให้เข้าสู่ประสบการณ์ของคุณและปรับปรุง ความคงอยู่ D1
  • มุ่งเน้นการรักษาผู้เล่นในวันที่ 7 และ 30 โดยการเพิ่มเป้าหมายระยะกลางถึงระยะยาวและรู้สึกถึงความก้าวหน้า
  • เพิ่ม การมีส่วนร่วม โดยการนำเสนอระบบต่างๆ ในเกมของคุณและให้รางวัลแก่ผู้เล่นสำหรับการโต้ตอบกับมัน

รับชุดฟีเจอร์

Creator Store เป็นแท็บใน Toolbox ที่คุณสามารถใช้เพื่อค้นหาทรัพยากรทั้งหมดที่สร้างโดย Roblox และชุมชน Roblox สำหรับใช้ในโปรเจกต์ของคุณ รวมถึงโมเดล, รูปภาพ, เมช, เสียง, ปลั๊กอิน, วิดีโอ และทรัพยากรฟอนต์ คุณสามารถใช้ Creator Store เพื่อเพิ่มทรัพยากรหนึ่งหรือมากกว่าโดยตรงลงในประสบการณ์ที่เปิดอยู่ รวมถึงชุดฟีเจอร์ด้วย!

ชุดฟีเจอร์ทุกชุดต้องการ Core ชุดฟีเจอร์เพื่อทำงานได้อย่างถูกต้อง เมื่อคุณมี Core และ Missions ชุดฟีเจอร์ในคลังของคุณแล้ว คุณสามารถนำไปใช้ซ้ำในโปรเจกต์ใดๆ บนแพลตฟอร์ม

ในการนำชุดฟีเจอร์จากคลังของคุณเข้าสู่ประสบการณ์ของคุณ:

  1. จากเมนู Window ของ Studio หรือแถบเครื่องมือ Home เปิด Toolbox

  2. ในหน้าต่าง Toolbox คลิกที่แท็บ Inventory แสดงการจัดเรียง My Models

    หน้าต่าง Toolbox ของ Studio ที่มีแท็บ Inventory เน้น.
  3. คลิกที่ไทล์ Feature Package Core จากนั้นคลิกที่ไทล์ Missions Feature Package โฟลเดอร์ของทั้งสองชุดจะแสดงในหน้าต่าง Explorer

  4. ลากโฟลเดอร์ชุดไปไว้ใน ReplicatedStorage

กำหนดภารกิจ

ภารกิจที่ทำได้แต่ละรายการจะรวมถึงชุดของงานที่ต้องทำให้เสร็จเพื่อให้ภารกิจเสร็จสมบูรณ์ ตัวเลือกการกำหนดค่า และ metadata เสริม ซึ่งทั้งหมดสามารถกำหนดได้ภายใน ReplicatedStorage.Missions.Configs.Missions โดยประเภทเหล่านี้จะถูกส่งออกจากสคริปต์ Types ในโฟลเดอร์เดียวกัน

ฟิลด์ที่จำเป็น

ฟิลด์ดังต่อไปนี้เป็นสิ่งจำเป็นสำหรับแต่ละภารกิจ

ชื่อประเภทคำบรรยาย
missionIdstringคีย์ในตาราง Missions หลัก ภารกิจทั้งหมดจะถูกระบุด้วยสตริงที่ไม่ซ้ำกันของตนเอง
categoryIdstringภารกิจจะต้องอยู่ในหมวดหมู่และจะถูกจัดกลุ่มตามหมวดหมู่ใน UI
taskstableรายการของงานที่ผู้เล่นต้องทำให้เสร็จเพื่อให้ภารกิจเสร็จสมบูรณ์

เงื่อนไขการปลดล็อก

ตามค่าเริ่มต้น ภารกิจจะปลดล็อกสำหรับผู้เล่นโดยอัตโนมัติและสามารถทำสำเร็จได้เพียงครั้งเดียว อย่างไรก็ตาม คุณสามารถใช้ตัวเลือกการกำหนดค่าที่ เลือกได้ ต่อไปนี้เพื่อเปลี่ยนแปลงพฤติกรรมนี้

ชื่อประเภทคำบรรยาย
prerequisitestableรายการของ missionIds อื่นๆ ที่ต้องทำให้เสร็จก่อนที่จะสามารถปลดล็อกภารกิจนี้ได้
manualOnlyboolปิดการปลดล็อกภารกิจโดยอัตโนมัติ ดังนั้นจะต้องมีการเรียกใช้ฟังก์ชันเพื่อปลดล็อกภารกิจ เงื่อนไขการปลดล็อกอื่นๆ ต้องได้รับการตอบสนองด้วย
availableAfterUtcboolภารกิจจะไม่สามารถปลดล็อกได้ก่อนเวลาที่กำหนดใน UTC
availableBeforeUtcboolภารกิจจะไม่สามารถปลดล็อกได้หลังเวลาที่กำหนดใน UTC หากภารกิจถูกปลดล็อกแต่ไม่ได้เสร็จสมบูรณ์ก่อนเวลานี้ ภารกิจจะล้มเหลว
repeatableboolภารกิจจะถูกปลดล็อกอีกครั้งหลังจากที่เสร็จสมบูรณ์
repeatLimitnumberหากภารกิจสามารถทำซ้ำได้ จะไม่สามารถทำซ้ำได้มากกว่านี้
repeatCooldownSecondsnumberหากภารกิจสามารถทำซ้ำได้ จะมีการล่าช้าก่อนที่จะถูกปลดล็อก
expireSecondsnumberหากภารกิจถูกปลดล็อกและไม่ได้เสร็จสมบูรณ์ภายในจำนวนวินาทีที่กำหนด มันจะล้มเหลว
expireCountOfflineboolหากภารกิจมี expireSeconds และ expireCountOffline ถูกตั้งค่าเป็นจริง เวลาในขณะที่ผู้เล่นไม่ได้อยู่ในประสบการณ์จะนับเป็นเวลาหมดอายุของภารกิจ

Metadata

ภารกิจมี metadata ที่ระบุวิธีการแสดงในส่วนติดต่อผู้ใช้ภารกิจ คุณสามารถใช้ฟิลด์ เลือกได้ ดังต่อไปนี้เพื่อปรับแต่ง metadata ของมัน

ชื่อประเภทคำบรรยาย
displayNamestringชื่อที่จะแสดงสำหรับภารกิจในส่วนติดต่อผู้ใช้ แทนที่จะใช้ missionId
descriptionstringข้อความที่ยาวกว่า ซึ่งให้ข้อมูลเพิ่มเติมหรือบริบทเกี่ยวกับภารกิจ
visibleAfterCompleteboolหากตั้งค่าเป็นจริง ภารกิจจะแสดงในรายการภารกิจแม้ว่าจะเสร็จสมบูรณ์แต่จะถูกทำเครื่องหมายว่าเสร็จสมบูรณ์แล้ว
visibleAfterFailedboolหากตั้งค่าเป็นจริง ภารกิจจะแสดงในรายการภารกิจแม้ว่าจะล้มเหลวแต่จะถูกทำเครื่องหมายว่าล้มเหลว
visibleBeforeUnlockedboolหากตั้งค่าเป็นจริง ภารกิจจะแสดงออกมาในรายการภารกิจแม้ว่าจะถูกล็อกอยู่ก่อนที่จะมีสิทธิ์ในการทำสำเร็จ
invisibleWhileActiveboolหากตั้งค่าเป็นจริง ภารกิจจะมองไม่เห็น แม้ว่าจะอยู่ในระหว่างการดำเนินการ
rewardstableรายการข้อมูลการแสดงรางวัล
  • assetID (number) - ID ของภาพที่จะแสดงใน UI ของภารกิจภายใต้รางวัลสำหรับเควส นี่เป็นสิ่งจำเป็นหากมีรางวัล
  • displayName (string) - ชื่อที่จะแสดงใน UI ของภารกิจใต้ไอคอน

กำหนดงาน

แต่ละภารกิจสามารถมีงานได้ศูนย์หรือมากกว่า หากภารกิจมีงานศูนย์ งานนั้นสามารถเคลมได้ทันทีหลังจากที่ปลดล็อก หากภารกิจมีหนึ่งงานหรือมากกว่า เมื่องานเสร็จสมบูรณ์ ผู้เล่นสามารถเก็บรางวัลใดๆ ที่เกี่ยวข้องกับภารกิจนั้นได้ งานแต่ละงานมี taskId ซึ่งคือคีย์ที่เกี่ยวข้องกับงานสำหรับภารกิจที่กำหนด

งานมีอยู่สองประเภท:

  • Timed Tasks - ช่วยให้คุณเริ่มและหยุดงานในช่วงเวลาที่แตกต่างกัน จำนวนเวลาหนึ่งต้องผ่านไปในขณะที่ตัวจับเวลาในงานกำลังทำงาน จากนั้นงานจะเสร็จสมบูรณ์
  • Count Tasks - ช่วยให้คุณเพิ่มหรือกำหนดความก้าวหน้าของงาน เมื่อความก้าวถึงค่าที่ตั้งไว้ งานจะเสร็จสมบูรณ์

ทั้งสองประเภทของงานมีฟิลด์ดังต่อไปนี้:

ชื่อประเภทคำบรรยาย
taskTypestringระบุว่าประเภทของงานคือการนับหรือเวลานั้นเอง
counterobject(เลือกได้) ตัวนับที่งานนี้ติดตาม ตัวนับคือน้ำหนักที่เก็บข้อมูลที่คงอยู่สำหรับจำนวนหนึ่งหรือการจับเวลา งานหลายงานสามารถติดตามตัวนับเดียวกันได้ เช่น หากมีงานมากกว่าหนึ่งงานติดตามจำนวนเหรียญที่ผู้เล่นเก็บได้ ก็สามารถใช้ “เหรียญ” ตัวยับยั้งเดียวกันได้ งานเหล่านี้สามารถติดตามเหรียญใหม่ที่เก็บได้ ตั้งแต่เริ่มต้นศูนย์ หรือจะเริ่มนับจากค่าของตัวนับ (เหรียญทั้งหมดที่เก็บได้แล้ว)
  • counterId (string) - ID ของตัวนับที่ต้องติดตาม ใช้ ID นี้เพื่อดึงหรือตั้งค่าไปยังค่าของตัวนับ
  • continueFromCounter (เลือกได้ bool) - หากตั้งค่าเป็นจริง ความก้าวหน้าของงานจะตรงกับค่าของตัวนับแทนที่จะเป็นจำนวนที่เพิ่มขึ้น
metadataobject(เลือกได้) ข้อมูลเกี่ยวกับวิธีการแสดงงานใน UI
  • displayName (string) - ชื่อของงาน ที่ใช้เมื่อแสดงใน UI
  • numericType (เลือกได้ string) - วิธีการแสดงเลขความก้าวหน้าในงาน
    • เศษส่วน เช่น 5/10 หรือ 5k/50k
    • เปอร์เซ็นต์ เช่น 50% หรือ 10%
    • LongFraction เช่น 5/10 หรือ 5000/50000
    • Boolean เช่น ไม่สมบูรณ์
callToActionobject(เลือกได้) ปุ่มที่กระตุ้นฟังก์ชันการเรียกกลับ
  • callback (function) - ฟังก์ชันที่เรียกโดยปุ่ม callToAction
  • buttonText (string) - ข้อความที่แสดงใน UI ปุ่ม

ฟิลด์ของงานนับ

งานนับมีค่าที่จำเป็น เมื่อความก้าวหน้าของงานตรงตามจำนวนนี้ งานจะเสร็จสมบูรณ์

ชื่อประเภทคำบรรยาย
goalCountnumber(เลือกได้) ความก้าวหน้าที่ต้องการเพื่อให้เสร็จสมบูรณ์

ฟิลด์ของงานที่ใช้เวลา

งานที่ใช้เวลามีจำนวนเป้าหมายของเวลาที่ใช้และจะเริ่มและหยุด เมื่อปริมาณเวลาที่กำหนดถูกต้อง งานจะเสร็จสมบูรณ์

ชื่อประเภทคำบรรยาย
goalSecondsnumberจำนวนวินาทีที่ต้องใช้เพื่อให้ภารกิจเสร็จสมบูรณ์
startImmediatelyboolหากควรเริ่มนับเวลาทันทีที่ปลดล็อก แทนที่จะเริ่มหลังจากที่เริ่ม
includesOfflineTimeboolหากงานจะรวมเวลาที่ใช้ในขณะที่ผู้เล่นไม่ได้อยู่ในประสบการณ์

กำหนดหมวดหมู่

หมวดหมู่ไม่จำเป็นต้องถูกกำหนดอย่างชัดเจนเพื่อที่จะใช้ หมวดหมู่สำหรับภารกิจมีค่าตั้งต้นที่จะถูกใช้ อย่างไรก็ตาม คุณสามารถกำหนดค่าเหล่านี้ใน ReplicatedStorage.Missions.Configs.Categories เพื่อเพิ่มเอฟเฟกต์ที่เพิ่มเติมให้กับหมวดหมู่ หมวดหมู่จะถูกระบุด้วย CategoryIds ที่ไม่ซ้ำกัน ซึ่งเป็นหมายเลขเดียวกันที่อ้างอิงในการกำหนดค่าภารกิจ

ชื่อประเภทคำบรรยาย
repeatDelaySecondsnumber(เลือกได้) หากตั้งค่า ภารกิจทั้งหมดในหมวดหมู่จะถูกรีเซ็ตทุกครั้งที่เวลาที่กำหนดผ่านไป และสามารถปลดล็อก ทำสำเร็จ และเคลมรางวัลได้อีกครั้ง ซึ่งแยกต่างหากจากภารกิจที่ทำซ้ำได้ซึ่งสามารถทำซ้ำได้ภายในการทำซ้ำของหมวดหมู่ที่กำหนด

รวมตรรกะเซิร์ฟเวอร์

ดูที่ ReplicatedStorage.Missions.Server.Examples.MissionsExample ซึ่งจะแสดงวิธีที่เซิร์ฟเวอร์ของคุณจะโต้ตอบกับชุดฟีเจอร์ ภารกิจ

คุณจะต้องเชื่อมต่อสี่สิ่งหลังจากลากชุดฟีเจอร์ ภารกิจ เข้าประสบการณ์ของคุณ:

  1. กำหนดภารกิจในการกำหนดค่าภารกิจของคุณ

  2. เพิ่มตรรกะในประสบการณ์ของคุณเพื่ออัปเดตความก้าวหน้าของงานหรือจำนวนตัวนับที่ติดตามความก้าวหน้า

    README

    -- เพิ่มความก้าวหน้าในภารกิจ Jumping กับรายการงาน Jumps
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- เริ่มจับเวลาในภารกิจ BattlingTime กับงาน TimeInBattle
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- หยุดจับเวลาในภารกิจ BattlingTime กับงาน TimeInBattle
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- เพิ่มความก้าวหน้าในงานทั้งหมดที่ติดตามตัวนับ Jumps
    CounterSystem.addCounter(player, "Jumps", 1)
    -- เริ่มจับเวลาในงานที่ใช้เวลาทั้งหมดที่ติดตามตัวนับ TimeInBattle
    CounterSystem.startTimer(player, "TimeInBattle")
    -- หยุดจับเวลาในงานที่ใช้เวลาทั้งหมดที่ติดตามตัวนับ TimeInBattle
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. ตั้งค่าตัวจัดการการทำภารกิจเสร็จสมบูรณ์ และตัวจัดการการปลดล็อกหรือล้มเหลวตามเลือก ใช้ตัวจัดการการทำภารกิจเสร็จสมบูรณ์เพื่อมอบรางวัลจากภารกิจในประสบการณ์ของคุณ

    README

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player} ทำภารกิจ {missionId} เสร็จสมบูรณ์`)
    -- มอบรางวัลให้กับผู้เล่น
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. ปลดล็อกภารกิจที่ไม่ได้ปลดล็อกโดยอัตโนมัติ ชุดฟีเจอร์ ภารกิจ จะตรวจสอบให้แน่ใจว่าข้อกำหนดของภารกิจทั้งหมดได้รับการตอบสนองก่อนที่ภารกิจจะเสร็จสมบูรณ์ และรางวัลของมันอยู่ในสภาวะที่สามารถเก็บได้

    README

    Missions.unlockMission(player, "Manual")

กำหนดค่าค่าคงที่

ค่าคงที่สำหรับชุดฟีเจอร์ Core จะอยู่ในสองตำแหน่ง:

  • ค่าคงที่ที่แชร์จะอยู่ใน ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants

  • ค่าคงที่เฉพาะชุดฟีเจอร์ สำหรับชุดฟีเจอร์ ภารกิจ จะอยู่ใน ReplicatedStorage.Missions.Configs.Constants

นอกจากนี้ คุณสามารถค้นหาสตริงสำหรับการแปลที่แยกออกไปในที่เดียว: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings

ปรับปรุงส่วนประกอบ UI

โดยการปรับแต่งวัตถุของชุดฟีเจอร์ เช่น สี ฟอนต์ และความโปร่งใส คุณสามารถปรับเปลี่ยนการนำเสนอภาพของ UI ภารกิจของคุณได้ ตัวอย่างเช่น ใน ReplicatedStorage.Missions.Configs.Constants คุณสามารถเปิดใช้งาน SingleTaskMode เพื่อแสดงแถบความก้าวหน้าสำหรับงานโดยตรงบนภารกิจสำหรับภารกิจที่มีเพียงงานเดียวเท่านั้น

นอกจากนี้ หากประสบการณ์ของคุณมี UI ที่มีอยู่แล้วซึ่งคุณต้องการรวมกับชุดฟีเจอร์ ภารกิจ สคริปต์โมดูลในไคลเอนต์ ModuleScript MissionsClient จะมีฟังก์ชันทั้งหมดที่จำเป็นในการส่งข้อมูลเกี่ยวกับภารกิจของผู้เล่นจากเซิร์ฟเวอร์

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ