حزمة المهام

*This content is translated using AI (Beta) and may contain errors. To view this page in English, click here.

تقدم حزمة ميزة المهام وظائف جاهزة لإنشاء مهام يمكن للاعبين إكمالها لتحقيق المكافآت والتقدم في لعبتك. يجب أن تحتوي جميع المهام على معرف، فئة، وقائمة من المهام التي يجب على اللاعبين إكمالها لإنهاء المهمة. ومع ذلك، يمكن أن تكون قائمة المهام فارغة، مما يسمح بالمطالبة بمكافآت المهمة على الفور.

باستخدام خيارات التخصيص في الحزمة، يمكنك تخصيص جميع المهام لتلبية متطلبات أسلوب اللعب الفريدة الخاصة بك، مثل:

  • إنشاء مهام توجيهية للاعبين الجدد في لعبتك وتحسين احتفاظ D1.
  • استهداف احتفاظ D7 و D30 من خلال إضافة أهداف متوسطة إلى طويلة الأجل وإحساس بالتقدم.
  • زيادة التفاعل من خلال عرض الأنظمة المختلفة في لعبتك ومكافأة اللاعبين على التفاعل معها.

الحصول على الحزمة

متجر المبدعين هو علامة تبويب في صندوق الأدوات يمكنك استخدامها للعثور على جميع الأصول التي أنشأتها Roblox ومجتمع Roblox لاستخدامها في مشاريعك، بما في ذلك الأصول من نماذج وصور وشبكات وصوتيات وإضافات ومقاطع فيديو وخطوط. يمكنك استخدام متجر المبدعين لإضافة أصل أو أكثر مباشرة إلى لعبة مفتوحة، بما في ذلك حزم الميزات!

تتطلب كل حزمة ميزة حزمة النواة لتعمل بشكل صحيح. بمجرد أن تكون أصول حزمة النواة و المهام في مخزونك، يمكنك إعادة استخدامها في أي مشروع على المنصة.

للحصول على الحزم من مخزونك إلى لعبتك:

  1. أضف النواة و المهام إلى مخزونك داخل الاستوديو من خلال النقر على رابط إضافة إلى المخزون في مجموعة المكونات التالية.

  2. من قائمة نافذة في الاستوديو أو شريط أدوات علامة التبويب الرئيسية، افتح صندوق الأدوات.

  3. في نافذة صندوق الأدوات، انقر على علامة التبويب المخزون. يتم عرض فرز نماذجي.

    نافذة صندوق أدوات الاستوديو مع علامة التبويب المخزون مميزة.
  4. انقر على بلاطة حزمة ميزة النواة، ثم بلاطة حزمة ميزة المهام. يتم عرض كلا مجلدي الحزمة في نافذة المستكشف.

  5. اسحب مجلدي الحزمة إلى ReplicatedStorage.

تعريف المهام

تتضمن كل مهمة قابلة للإكمال مجموعة من المهام التي يجب إنهاؤها لإكمال المهمة، وخيارات التكوين، وبيانات العرض الاختيارية، والتي يمكن تعريفها جميعًا داخل ReplicatedStorage.Missions.Configs.Missions، مع الأنواع المستخرجة من نص Types في نفس المجلد.

الحقول المطلوبة

الحقول التالية مطلوبة لكل مهمة.

الاسمالنوعالوصف
missionIdstringالمفتاح الرئيسي لجدول المهام. يتم التعرف على جميع المهام من خلال سلسلة فريدة خاصة بها.
categoryIdstringيجب أن تنتمي المهام إلى فئة، ويتم تجميعها حسب الفئة في واجهة المستخدم.
taskstableقائمة من المهام التي يجب على اللاعب إنهاؤها لإكمال المهمة.

شروط الفتح

بشكل افتراضي، يتم فتح المهام للاعبين تلقائيًا ويمكن إكمالها مرة واحدة فقط. ومع ذلك، يمكنك استخدام خيارات التكوين الاختيارية التالية لتغيير هذا السلوك.

الاسمالنوعالوصف
prerequisitestableقائمة من معرفات المهام الأخرى التي يجب إكمالها قبل أن يمكن فتح المهمة.
manualOnlyboolتعطيل الفتح التلقائي للمهمة. بدلاً من ذلك، يجب استدعاء دالة لفتح المهمة. يجب أيضًا استيفاء أي شروط فتح أخرى.
availableAfterUtcboolلا يمكن فتح المهمة قبل الوقت المحدد بتوقيت UTC.
availableBeforeUtcboolلا يمكن فتح المهمة بعد الوقت المحدد بتوقيت UTC. إذا تم فتحها ولكن لم تكتمل قبل هذا الوقت، ستفشل المهمة.
repeatableboolتفتح المهمة مرة أخرى بعد إكمالها.
repeatLimitnumberإذا كانت المهمة قابلة للتكرار، فلا يمكن تكرارها أكثر من هذا العدد من المرات.
repeatCooldownSecondsnumberإذا كانت المهمة قابلة للتكرار، فهناك تأخير قبل أن تصبح مفتوحة.
expireSecondsnumberإذا كانت المهمة مفتوحة ولم تكتمل خلال عدد الثواني المحدد، فسوف تفشل بدلاً من ذلك.
expireCountOfflineboolإذا كانت المهمة تحتوي على expireSeconds وتم تعيين expireCountOffline على true، فسيتم احتساب الوقت الذي لا يكون فيه اللاعب فعليًا في اللعبة نحو انتهاء المهمة.

البيانات الوصفية

تمتلك المهام بيانات وصفية تحدد كيفية عرضها في واجهة مستخدم المهام. يمكنك استخدام الحقول الاختيارية التالية لتخصيص بياناتها الوصفية.

الاسمالنوعالوصف
displayNamestringاسم لعرضه للمهمة في واجهة المستخدم بدلاً من missionId.
descriptionstringكتلة نصية أطول توفر معلومات أو سياق إضافي حول المهمة.
visibleAfterCompleteboolإذا تم تعيينها على true، ستظهر المهمة في قائمة المهام حتى بعد إكمالها ولكن معلمة كمكتملة.
visibleAfterFailedboolإذا تم تعيينها على true، ستظهر المهمة في قائمة المهام حتى بعد فشلها ولكن معلمة كفاشلة.
visibleBeforeUnlockedboolإذا تم تعيينها على true، ستكون المهمة مرئية ولكن مقفلة في قائمة المهام قبل أن تكون متاحة للإكمال.
invisibleWhileActiveboolإذا تم تعيينها على true، ستكون المهمة غير مرئية حتى أثناء التقدم الفعلي.
rewardstableقائمة بمعلومات عرض المكافآت.
  • assetID (number) - معرف الصورة الذي يظهر في واجهة مستخدم المهام تحت المكافآت لمهمة. هذا مطلوب إذا كانت هناك مكافأة موجودة.
  • displayName (string) - الاسم الذي يظهر في واجهة مستخدم المهام تحت الرمز.

تعريف المهام

يمكن أن تحتوي كل مهمة على صفر أو أكثر من المهام. إذا كانت المهمة تحتوي على صفر من المهام، يمكن المطالبة بها على الفور بعد فتحها؛ إذا كانت المهمة تحتوي على واحدة أو أكثر من المهام، بمجرد إكمال المهام، يمكن للاعب جمع أي مكافآت مرتبطة بالمهمة. تحتوي كل مهمة على taskId، وهو المفتاح المرتبط بالمهمة لمهمة معينة.

تأتي المهام في نوعين:

  • مهام مؤقتة - تتيح لك بدء وإيقاف المهمة في نقاط زمنية مختلفة. يجب أن يمر مقدار معين من الوقت بينما يكون مؤقت المهمة قيد التشغيل، ثم تكتمل المهمة.
  • مهام عد - تتيح لك إضافة إلى أو تعيين تقدم المهمة. عندما يصل التقدم إلى قيمة محددة، تكتمل المهمة.

تشارك كلا نوعي المهام الحقول التالية:

الاسمالنوعالوصف
taskTypestringيحدد ما إذا كان نوع المهمة عد أو مؤقت.
counterobject(اختياري) العداد الذي تتبعه هذه المهمة. العدادات هي تخزين دائم محدد للاعب لعدد أو مؤقت. يمكن أن تتبع مهام متعددة عدادًا واحدًا؛ على سبيل المثال، إذا كانت هناك أكثر من مهمة تتبع عدد العملات التي جمعها اللاعب، فيمكنها جميعًا مشاركة نفس عداد "العملات". يمكن أن تتبع هذه المهام بشكل مستقل العملات الجديدة المجمعة، بدءًا من الصفر، أو تواصل العد من قيمة العداد (جميع العملات التي تم جمعها بالفعل).
  • counterId (string) - معرف العداد الذي سيتم تتبعه. استخدم هذا المعرف للحصول على أو تعيين قيمة العداد.
  • continueFromCounter (اختياري bool) - إذا تم تعيينها على true، سيتطابق تقدم المهمة مباشرة مع قيمة العداد بدلاً من المبلغ الذي زاد.
metadataobject(اختياري) معلومات حول كيفية عرض المهمة في واجهة المستخدم.
  • displayName (string) - اسم المهمة، المستخدم عند عرضه في واجهة المستخدم.
  • numericType (اختياري string) - كيفية عرض رقم التقدم في المهمة.
    • كسر، مثل 5/10 أو 5k/50k
    • نسبة مئوية، مثل 50% أو 10%
    • كسر طويل، مثل 5/10 أو 5000/50000
    • منطقي، مثل غير مكتمل
callToActionobject(اختياري) زر يقوم بتفعيل دالة رد نداء.
  • callback (function) - الدالة التي يتم تفعيلها بواسطة زر callToAction.
  • buttonText (string) - النص الذي يظهر في واجهة زر المستخدم.

حقول مهام العد

تحتوي مهام العد على قيمة مطلوبة. عندما يتوافق تقدم المهمة مع هذا المبلغ، تكتمل المهمة.

الاسمالنوعالوصف
goalCountnumber(اختياري) التقدم المطلوب لإكمال المهمة.

حقول مهام الوقت

تحتوي مهام الوقت على مقدار مستهدف من الوقت المنقضي، ويتم بدءها وإيقافها. عندما يتم الوصول إلى مقدار الوقت المستهدف، تكتمل المهمة.

الاسمالنوعالوصف
goalSecondsnumberعدد الثواني التي يجب أن تمر لإكمال المهمة.
startImmediatelyboolإذا كانت المهمة يجب أن تبدأ في عد الوقت بمجرد فتحها، بدلاً من فقط بعد بدءها.
includesOfflineTimeboolإذا كانت المهمة يجب أن تشمل الوقت الذي يقضيه اللاعب أثناء عدم وجوده في اللعبة بنشاط.

تكوين الفئات

لا يتعين تعريف الفئات بشكل صريح لاستخدامها، حيث تحتوي الفئة لمهمة على قيم افتراضية سيتم استخدامها. ومع ذلك، يمكنك تكوين هذه القيم في ReplicatedStorage.Missions.Configs.Categories لإضافة تأثيرات إضافية إلى الفئة. يتم التعرف على الفئات بواسطة CategoryIds الفريدة، نفس تلك المشار إليها في تكوين المهام.

الاسمالنوعالوصف
repeatDelaySecondsnumber(اختياري) إذا تم تعيينه، يتم إعادة تعيين جميع المهام في الفئة كلما مرت المدة المحددة، ويمكن فتحها وإكمالها ومطالبة مكافآتها مرة أخرى. هذا منفصل عن المهام القابلة للتكرار، والتي يمكن تكرارها ضمن تكرار فئة معينة.

دمج منطق الخادم

ألق نظرة على ReplicatedStorage.Missions.Server.Examples.MissionsExample، الذي يوضح كيف سيتفاعل خادمك مع حزمة ميزة المهام.

تحتاج بشكل أساسي إلى توصيل أربعة أشياء بمجرد سحب حزمة ميزة المهام إلى لعبتك:

  1. تعريف المهام في تكوين المهام الخاص بك.

  2. إضافة منطق إلى لعبتك لتحديث تقدم المهام أو العدادات المرتبطة بالتقدم.

    README
    -- يزيد التقدم في مهمة القفز مع مهمة القفز
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- يبدأ مؤقتًا في مهمة وقت المعركة مع مهمة الوقت في المعركة
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- يوقف المؤقت في مهمة وقت المعركة مع مهمة الوقت في المعركة
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- يزيد التقدم في جميع المهام المرتبطة بعداد القفزات
    CounterSystem.addCounter(player, "Jumps", 1)
    -- يبدأ المؤقت في جميع المهام المؤقتة المرتبطة بعداد الوقت في المعركة
    CounterSystem.startTimer(player, "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")

تكوين الثوابت

تعيش الثوابت الخاصة بحزمة النواة في مكانين:

  • تعيش الثوابت المشتركة في ReplicatedStorage.FeaturePackagesCore.Configs.SharedConstants.

  • الثوابت الخاصة بالحزمة، في هذه الحالة حزمة ميزة المهام، تعيش في ReplicatedStorage.Missions.Configs.Constants.

بالإضافة إلى ذلك، يمكنك العثور على سلاسل للترجمة مفصولة في موقع واحد: ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings.

تخصيص مكونات واجهة المستخدم

من خلال تعديل كائنات الحزمة، مثل الألوان، الخط، والشفافية، يمكنك ضبط العرض المرئي لواجهة مستخدم المهام الخاصة بك. على سبيل المثال، في ReplicatedStorage.Missions.Configs.Constants، يمكنك تمكين SingleTaskMode لعرض شريط تقدم لمهمة مباشرة على المهمة نفسها للمهام التي تحتوي فقط على مهمة واحدة.

بالإضافة إلى ذلك، إذا كانت لعبتك تحتوي بالفعل على واجهة مستخدم موجودة ترغب في دمجها مع حزمة ميزة المهام، فإن ModuleScript العميل MissionsClient يحتوي على جميع الوظائف اللازمة للحصول على معلومات حول مهام اللاعب المرسلة من الخادم.

©2026 شركة Roblox Corporation. تُعد منصّة Roblox، وشعار Roblox وشعار "توسيع حدود المخيلة"، من ضمن علاماتنا التجارية المسجّلة وغير المسجّلة في الولايات المتحدة وبلدان أخرى.