حزمة المهام

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

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

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

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

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

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

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

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

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

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

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

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

  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")

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

تعيش الثوابت لحزمة Core في موقعين:

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

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

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

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

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

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

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