แพคเกจภารกิจ

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

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

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

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

รับแพคเกจ

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

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

เพื่อรับแพคเกจจากคลังสินค้าของคุณเข้าสู่ประสบการณ์ของคุณ:

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

  2. ในแถบเครื่องมือ เลือกแท็บ ดู

  3. คลิก กล่องเครื่องมือ . หน้าต่าง กล่องเครื่องมือ จะปรากฏ

    Studio's View tab with the Toolbox tool highlighted.
  4. ในหน้าต่าง กล่องเครื่องมือ คลิกที่แท็บ สินค้าคงคลัง แสดงรายการ โมเดลของฉัน

    Studio's Toolbox window with the Inventory tab highlighted.
  5. คลิกที่ แพคเกจคุณสมบัติหลัก แล้วที่ แพคเกจคุณสมบัติภารกิจ ตามลำดับทั้งสองโฟลเดอร์แพคเกจจะแสดงในหน้าต่าง สํารวจ

  6. ลากไฟล์โฟลเดอร์แพคเกจเข้าไปใน ReplicatedStorage

กำหนดภารกิจ

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

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

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

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

ปลดล็อคเงื่อนไข

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

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

เมทาดาต้า

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

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

กำหนดภารกิจ

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

งานมาในสองประเภท:

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

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

ชื่อประเภทคําอธิบาย
taskTypestringระบุว่าประเภทงานเป็นจํานวนหรือกําหนดเวลา
counterobject(ตัวเลือก) เคาน์เตอร์ที่ติดตามงานนี้ตัวนับเป็นที่เก็บข้อมูลถาวรสำหรับผู้เล่นสำหรับจํานวนหรือตัวจับเวลาภารกิจหลายภารกิจสามารถติดตามเคาน์เตอร์เดียวได้; ตัวอย่างเช่นหากภารกิจมากกว่าหนึ่งภารกิจติดตามจํานวนเหรียญที่ผู้เล่นได้รวบรวมแล้วก็สามารถแบ่งปันเคาน์เตอร์ "เหรียญ" ต่อรองเริ่มจากศูนย์หรือดำเนินการนับต่อจากมูลค่าเคาน์เตอร์ (เหรียญทั้งหมดที่เก็บไปแล้ว)
  • counterId ( string ) - ID ของเครื่องนับที่จะติดตาม ใช้ ID ต่อรอง
  • continueFromCounter (ตัวเลือก bool ) - หากตั้งค่าเป็นจริง ความคืบหน้างานจะตรงกับมูลค่าของเครื่องนับโดยตรงแทนที่จะเพิ่มจํานวนที่มันเพิ่มขึ้น
metadataobject(ตัวเลือก) ข้อมูลเกี่ยวกับวิธีที่งานจะแสดงใน UI
  • displayName ( string ) - ชื่อของภารกิจที่ใช้เมื่อแสดงใน UI
  • numericType (ตัวเลือก string ) - วิธีที่จะแสดงหมายเลขความคืบหน้าในภารกิจ
    • ส่วนหนึ่ง, เช่น5/10 หรือ 5k/50k
    • เปอร์เซ็นต์, เช่น50% หรือ 10%
    • ส่วนยาว เช่น5/10 หรือ 5000/50000
    • เชิงเส้น เช่นไม่สมบูรณ์
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

    -- เพิ่มความคืบหน้าในภารกิจกระโดดด้วยภารกิจกระโดด
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- เริ่มตัวจับเวลาในภารกิจ BattlingTime ด้วยภารกิจ TimeInBattle
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- หยุดเวลาจับเวลาในภารกิจ BattlingTime ด้วยภารกิจ TimeInBattle
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- ต่อรอง
    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} completed mission {missionId}`)
    -- มอบรางวัลให้ผู้เล่นรางวัลของพวกเขา
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. ปลดล็อกภารกิจที่ไม่ปลดล็อกโดยอัตโนมัติฟีเจอร์แพคเกจของภารกิจ จะตรวจสอบให้แน่ใจว่าความต้องการของภารกิจทั้งหมดได้รับการตอบสนองก่อนที่ภารกิจจะสําเร็จและรางวัลของมันสามารถเก็บได้

    อ่าน README

    Missions.unlockMission(player, "Manual")

กำหนดคงที่

คงที่สำหรับแพคเกจคุณสมบัติ แกนกลาง อยู่ในสองจุด:

  • คงที่ร่วมอยู่ใน ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants

  • คงที่เฉพาะแพคเกจในกรณีนี้คือแพคเกจคุณสมบัติ ภารกิจ อาศัยอยู่ใน ReplicatedStorage.Missions.Configs.Constants

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

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

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

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