رمي النرد

:discourse2: الملخص يضيف مكون السمة Dice Roller (رافع النرد) ذي الميزات الكثيرة إلى مشاركاتك في Discourse، لتلبية احتياجات ألعابك القائمة على المنتدى!
:hammer_and_wrench: رابط المستودع https://github.com/discourse/discourse-dice
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

تثبيت مكون السمة هذا

:information_source: المسؤولون: ضع في اعتبارك تعطيل إعداد discourse narrative bot disable public replies بعد التثبيت، لأن هذا المكون السمة يتجاوز تماماً سلوك الرافع الآلي لرمي النرد.

:game_die: الاستخدام الأساسي

يفسر مكون السمة الرميات المُصاغة كـ [wrap=dice].

[wrap=dice]d20[/wrap]
[wrap=dice]d100[/wrap]
[wrap=dice]2d6[/wrap]

يمكنك رمي عدة نرد من نفس النوع، وتطبيق تعديلات جمع، والتحقق تلقائياً من النتيجة مقابل عتبة نجاح:

[wrap=dice]2d6+3t12[/wrap]

image

:woman_scientist: الميزات المتقدمة: النقرات الحرجة، الرميات المنقسمة

يمكنك تحديد رميات طبيعية محددة ليتم معاملتها كـ “نقرات حرجة” (critical hits) باستخدام الخيار crit=. يتم التحقق من النقرات الحرجة قبل تطبيق التعديل الجمعي.

[wrap=dice crit=1,100]1d100[/wrap]
[wrap=dice crit=1,20]d20+3[/wrap]

image

إذا كانت قيم حرجة معينة ذات أهمية في منتداك، يمكن للمسؤول إضافة CSS إضافي للتركيز عليها. في هذا المثال، يتم تلوين النقرات الحرجة التي تظهر فيها قيمة 1 باللون الأحمر.

إذا كنت تسمح بفحص عدة رميات مقابل نفس العتبة، يمكنك إضافة الوسم i فردي (Individual) بالتزامن مع t العتبات (Thresholds). سيتم تلخيص عدد النرد الناجح الذي تجاوز العتبة في النهاية.

[wrap=dice]5d100t60i[/wrap]
[wrap=dice]3d20-5t0i[/wrap]

:information_source: حالياً، يتم عرض الرميات السابقة للتعديل. قد يتغير هذا في المستقبل بناءً على الملاحظات.

:no_entry: القيود

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

لا يُسمح بالنرد ذو الجوانب 0 و1. لا يُسمح برمي 0 نرد، ولا يُسمح بالنرد الذي يحتوي على أكثر من ~67 مليون وجه لأسباب تتعلق بالأداء.

:gear: التفاصيل التقنية، والغش

تُحسب الرميات في JavaScript باستخدام مولد أرقام عشوائية (RNG) مُشغَّل بمعرف المنشور وطابعه الزمني للإنشاء، بالترتيب عبر جسم المنشور. لا تكون قيم الرميات مرئية قبل إنشاء المنشور.

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

لا يتم حفظ قيم الرميات في جسم المنشور تلقائياً. هذا يطرح مشكلة للاحتياجات الأرشيفية. ستتطلب الحلول استخدام إضافة (plugin).

إذا كنت بحاجة إلى إضافة رميات نرد إضافية إلى مشاركتك، يجب إضافتها في الأسفل للحفاظ على نتائج جميع الرميات السابقة. إضافة رميات نرد جديدة في أعلى المنشور ستعيد عشوائية نتائج جميع الرميات. لهذا السبب، فإن وجود أي رميات خاطئة في منشور سيمنع جميع الرميات اللاحقة من العمل.
سيخبرك معاين المحرر إذا كان تحديد النرد الخاص بك :game_die: صحيحاً أو :warning: خاطئاً.

بينما يمكن أن تساعد هذه الإجراءات في منع الغش العرضي، يمكن للغشاش العنيد محاولة التنبؤ بالوقت الذي يجب عليه فيه تقديم مشاركته. إذا كنت تفكر في ذلك لأي شيء ذي قيمة، فاطلب من مستخدم موثوق به لا يمكنه تلقي المكافأة تأليف المنشور، أو استخدم مصدراً مستقلاً مثل https://random.org ، الذي يقدم خدمات مدفوعة للسحوبات والتوزيعات القابلة للتدقيق.

تذكر الاستمتع!

الإعدادات

الاسم الوصف
max dice
الترجمة الافتراضي
dice.result.success_count.one (%{count} نجاح)
dice.result.success_count.other (%{count} نجاحات)
dice.excessive.quantity.one كمية نرد مفرطة (الحد الأقصى %{count})
dice.excessive.quantity.other كمية نرد مفرطة (الحد الأقصى %{count})
dice.excessive.faces لا يمكن أن يتجاوز عدد جوانب النرد 67,000,000
dice.missing.faces مواصفة نرد غير صالحة: عدد الجوانب مفقود
dice.invalid.generic مواصفة نرد غير صالحة. التنسيق: 2d20+3
dice.invalid.quantity لا يمكن أن يكون عدد النرد 0
dice.invalid.faces لا يمكن أن يكون عدد جوانب النرد 0 أو 1
dice.invalid.modifier لا يمكن أن يكون التعديل 0
dice.invalid.threshold لا يمكن أن تكون العتبة 0
dice.invalid.crits أرقام سيئة في سمة النقرات الحرجة. (يجب أن يكون crits=4,5,6)
dice.invalid.halt_after_error توقف الرمي بسبب خطأ سابق. أصلح الأخطاء لعرض النتائج.

:discourse2: مستضاف من قبلنا؟ سمات المكون متاحة للاستخدام على خططنا القياسية (Standard)، والأعمال (Business)، والمؤسسية (Enterprise).

33 إعجابًا

إذا كان أي شخص مهتمًا بتنفيذ أداة رمي نرد أكثر تنوعًا في Discourse باستخدام شخصية ذكاء اصطناعي، فقد قمت بذلك في مجتمع أديره وهو يعمل بشكل ممتاز. لقد قمت بإعداد شخصية ذكاء اصطناعي وسمحت لها باستخدام أداة Random Picker، وضبطت إعداد ‘max context posts’ على 1، وأعطيتها هذه التعليمات:

لقد قمت بربط الشخصية بمستخدم (في هذه الحالة @dice)، بحيث يمكن استدعاؤها في أي منشور بقول شيء مثل @dice 3d6، وسيقوم الروبوت بالرد بالنتيجة. يمكنك رؤيتها أثناء العمل في هذا الموضوع من مجتمعي (إذا كنت مهتمًا بألعاب الطاولة، فلا تتردد في الانضمام إلى المجتمع - إنه لا يزال جديدًا جدًا).

بالطبع، هذا يستخدم الذكاء الاصطناعي، لذا فهو يتطلب مفتاح واجهة برمجة تطبيقات LLM. أنا أستخدم GPT-4o-mini، لذا فإن التكلفة منخفضة جدًا، خاصة بالنسبة للحجم الذي أنظر إليه هنا.

5 إعجابات

لمن قد يكون مهتمًا، قمت بتحديث المكون الأصلي لواجهة برمجة التطبيقات (API) الجديدة. لم أرغب في استخدام نموذج لغوي كبير (LLM) لرمي نرد بسيط، أو استخدام البوت، لقد أعجبني المكون الأصلي كثيرًا…

على أي حال، اضطررت لطلب المساعدة من كلود (Claude)، لذا إذا لاحظ أي شخص عبارة “AI BLABLABLA”، نعم، أنت على حق، أنا أعترف. لقد استخدمته.

بالنسبة لأولئك الذين ما زالوا مهتمين، أستضيف النسخة المتفرعة (تم أرشفة مستودع Git الأصلي).

أتطلع إلى الحصول على ملاحظات ونقد (أو حتى إهانات، لا أهتم).

4 إعجابات