Roll Robot

@rollrobot

تاس نقش‌آفرینی رومیزی در هر گفت‌وگو — D&D, Pathfinder, World of Darkness, Shadowrun, Fate, Call of Cthulhu

باز کردن در تلگرام

شروع کار

@rollrobot را باز کن، دکمهٔ شروع را بزن و /roll 2d6+3 را بفرست. عبارتی را که خوانده، همراه با مجموع می‌گیری.

با گروه بازی می‌کنی؟ ربات را به گفت‌وگو اضافه کن. به پیامی که صدایش زده پاسخ می‌دهد، پس چند نفر می‌توانند هم‌زمان تاس بیندازند و هر پاسخ کنار پرسش خودش می‌ماند. به اجازهٔ ارسال پیام نیاز دارد، وگرنه ساکت می‌ماند.

در گفت‌وگویی که نمی‌توانی ربات را به آن اضافه کنی، از حالت inline استفاده کن: @rollrobot 2d6+3 را بنویس و روی نتیجه بزن. نه چیزی برای اضافه‌کردن، نه اجازه‌ای برای دادن — پرتاب به‌عنوان پیام خودت فرستاده می‌شود.

دستورها

پنج دستور، یکسان در گفت‌وگوی خصوصی و گروه. /roll و /full نمادگذاری می‌گیرند؛ هرکدام را خالی بفرستی، یک d20 ساده می‌اندازد.

/roll /r

مجموع، همراه با شکل نرمال‌شدهٔ عبارت تا ببینی ربات چه چیزی خوانده است.

/roll 2d6+3
2d6 + 3 = 13

/full /f

همان پرتاب، تاس به تاس. کنار گذاشته‌ها خط‌خورده و بیشترین یا کمترین مقدار طبیعی با فلش؛ در مجموعه‌ای که موفقیت‌ها شمرده می‌شوند، موفقیت‌ها پررنگ و شکست‌ها زیرخط‌دار.

/full 4d6kh3
4d6kh3 = 14 [6↑, 5, 3, 1↓]
/full 4d10>=6f1
4d10>=6f1 = 2 successes, 1 failure [10↑, 7, 3, 1↓]

/random

فقط d100 و نه چیز دیگری، برای وقتی که تنها یک عدد از صد می‌خواهی. همان /roll d100 است.

/roll d100
1d100 = 73

/ask /a

پاسخ Yes یا No برای تصمیم‌هایی که ارزش یک پرتاب را ندارند — آیا در تله دارد، آیا تاجر چانه می‌زند، آیا امشب باران می‌بارد. هرچه پس از دستور بیاید پرسش است و بالای پاسخ نقل می‌شود.

  • نیازی به گیومه نیست. نشانه‌های نگارشی، آپاستروف و نمادگذاری همه داخل پرسش بی‌خطرند.
  • /ask خالی هم کار می‌کند: بدون پرسش، فقط پاسخ — برای آنچه سر میز به‌هرحال بلند گفته شده است.
  • پاسخ یک d2 است، پس چیزی بیش از یک سکهٔ منصفانه نیست.
  • Yes و No در هر زبانی انگلیسی می‌مانند — زبان رابط تو حدس خوبی برای زبان گفت‌وگو نیست.
/ask در را باز کنیم؟
در را باز کنیم؟
Yes ✅
/ask
No ❌

/help

راهنمای نمادگذاری در یک پیام، با پیوند به محیط آزمایش و مرجع کامل. خلاصهٔ همین صفحه، بدون خروج از تلگرام. /start هم همین را نشان می‌دهد.

امکانات آزمایشی

کار می‌کند، اما هنوز قطعی نیست: هرچه در این بخش است ممکن است در به‌روزرسانی بعدی تغییر کند یا از ربات برداشته شود. پنج دستور بالا این‌طور نیستند.

/pick /p

یک گزینه را از فهرستی که می‌دهی برمی‌دارد — یک برخورد تصادفی، اینکه نگهبانی اول با کیست، کدام در. یک تاس روی گزینه‌ها، بدون وزن‌دهی مگر خودت بخواهی.

  • دست‌کم دو گزینه، حداکثر 100 مورد.
  • یک کاما کافی است — پنهانی رد شدن، مذاکره. | و ; هم همین کار را می‌کنند، و خط جدید بر هر دو مقدم است، پس جدولی که می‌چسبانی سطر به سطر تقسیم می‌شود.
  • تنها نخستین جداکنندهٔ موجود به کار می‌رود، به همین ترتیب: خط جدید، سپس | یا ;، سپس کاما، سپس فاصلهٔ خالی. وقتی گزینه‌ای خودش کاما دارد سراغ | برو — طناب، 50 فوت | مشعل به دو گزینه تقسیم می‌شود، نه سه.
  • برای وزن‌دادن به یک گزینه آن را تکرار کن: هر تکرار یک جای دیگر در فهرست می‌گیرد.
  • نامی که در پایان داخل گیومه بیاید، برچسب انتخاب می‌شود و به فهرست اضافه نمی‌شود.
/pick گشت گابلین‌ها | اتاق خالی | گنجینه
اتاق خالی
/pick پنهانی رد شدن، مذاکره، کمین کردن
مذاکره

امکانات ویژه

هیچ‌کدام از این‌ها برای یک پرتاب معمولی لازم نیست. این‌ها را ربات برای کسانی دارد که هر جلسه از آن استفاده می‌کنند و می‌خواهند کمتر تایپ کنند.

نام داخل گیومه

نامی که در پایان پرتاب داخل گیومه بیاید، بالای نتیجه نقل می‌شود تا گفت‌وگویی پر از عدد خام خوانا بماند. روی /roll و /full و /pick یکسان کار می‌کند، و گیومه‌های زاویه‌داری که صفحه‌کلید گوشی جایگزین می‌کند به‌اندازهٔ گیومه‌های ساده پذیرفته‌اند.

گیومه اختیاری نیست. پارسر آن‌قدر چیزها را می‌پذیرد که واژهٔ بدون گیومه با هیچ اطمینانی از نمادگذاری قابل تشخیص نیست، پس 2d20kh1+7 ادراک نمادگذاری خوانده می‌شود و خطا می‌دهد، اما 2d20kh1+7 "ادراک" پرتاب می‌شود و نام را برمی‌دارد.

/roll 2d20kh1+7 "ادراک"
ادراک
2d20kh1 + 7 = 26

نوشتن با فاصله

دو یا سه عدد که با فاصله از هم جدا شده‌اند یک پرتاب خوانده می‌شوند: /roll 4 6 یعنی 4d6 و /roll 1 20 -3 یعنی 1d20-3. عدد سوم اصلاح‌کننده است و علامت خودش را همراه دارد.

/roll 1 20 -3
1d20 - 3 = 11

عدد تنها

عددی که تنها بیاید یک تاس است: /roll 20 یک d20 می‌اندازد.

/roll 20
1d20 = 12

حروف تاس سیریلیک

к و д پیش از تجزیه به d تبدیل می‌شوند، پس 2к6 همان 2d6 را می‌اندازد. نمادگذاری روسی، اوکراینی و بلاروسی یکسان کار می‌کند و k لاتین در kh و kl دست‌نخورده می‌ماند.

/roll 2к6
2d6 = 8

ارقام فارسی

۲۰ یک d20 می‌اندازد. ارقام عربی و فارسی پیش از تجزیه به ارقام لاتین تبدیل می‌شوند؛ نامی که داخل گیومه آمده ارقام خودش را دست‌نخورده نگه می‌دارد.

/roll ۲۰
1d20 = 17

حالت inline

@rollrobot و نمادگذاری را در هر گفت‌وگویی بنویس، حتی گروهی که هرگز نام ربات را نشنیده است. فهرستی بالای صفحه‌کلید باز می‌شود؛ روی یک نتیجه بزن تا به‌عنوان پیام خودت فرستاده شود.

@rollrobot 2d20kh1+7 یک پرتاب را زیر دو عنوان نشان می‌دهد: «پرتاب» و «جزئیات». انتخاب تو نمایش را عوض می‌کند، نه تاس‌ها را — هیچ‌وقت پرتاب مجدد نیست.

اگر پس از نام ربات چیزی ننویسی، سه گزینهٔ آماده می‌گیری: «پرتاب» و «جزئیات» روی d20 و «پرتاب تصادفی» روی d100.

یک پرسش، نتیجهٔ «پرسش» را اضافه می‌کند: وقتی چیزی پرتاب نشده در صدر فهرست، و وقتی شده در انتهای آن. جداکنندهٔ مشخص میان دو چیزی که نمادگذاری نیستند — گشت گابلین‌ها | اتاق خالی — به‌جای آن «انتخاب» را در صدر می‌گذارد. فاصله به‌تنهایی اینجا شمرده نمی‌شود، برخلاف /pick، وگرنه هر پرسش نیمه‌تایپ‌شده یک انتخاب زیر پاسخش می‌گذاشت. انتخاب inline فهرستش را در خود پیام می‌آورد، چون دستوری بالای سرش نیست که به آن پاسخ دهد.

نتیجه‌ها شخصی‌اند و کش نمی‌شوند، پس هر پرس‌وجو از نو پرتاب می‌کند.

نمادگذاری

همان چیزی که واقعاً تایپ می‌کنی. به بزرگی و کوچکی حروف و به فاصله‌ها حساس نیست، پس 2 D 20 KH 1 و 2d20kh1 یک پرتاب‌اند. هر گروه زیر تا جایی پیش می‌رود که به کار می‌آید؛ بقیه در مرجع کامل است و محیط آزمایش اجرایش می‌کند.

تاس و محاسبات

2d6دو تاس شش‌وجهی.
d20تعداد به‌طور پیش‌فرض یک است.
2d20+5محاسبات: + - * / و پرانتز.
(1d6+2)*3پرانتز هر چیزی را که داخلش بگذاری گروه می‌کند.
(1d4)d6تعداد محاسبه‌شده: 1d4 را بینداز، بعد همان‌قدر d6.

نگه‌داشتن و کنار گذاشتن

4d6kh3نگه‌داشتن سه تاس با بالاترین مقدار — یک ویژگی.
2d20kh1برتری: مقدار بزرگ‌تر از دو d20.
2d20kl1ضعف: مقدار کوچک‌تر.
4d6dl1کنار گذاشتن کمترین؛ dh بیشترین را کنار می‌گذارد.
{1d8!, 1d6!}kh1نگه‌داشتن در سطح یک گروه — هر زیرپرتاب مثل یک تاس رقابت می‌کند.

تاس انفجاری

d8!بیشترین مقدار یک تاس دیگر اضافه می‌کند.
d8!!ترکیبی: تاس اضافه در همان تاس جمع می‌شود.
d8!pنفوذی: از هر تاس اضافه یک واحد کم می‌شود.
5d10!=10انفجار روی یک آستانه، نه فقط روی بیشترین وجه.

پرتاب مجدد و محدود کردن

2d6r<3پرتاب مجدد مقادیر کمتر از سه، هر چند بار که لازم باشد.
2d6ro<3فقط یک پرتاب مجدد، نتیجهٔ دوم می‌ماند.
4d6min2حداقل مقدار هر تاس دو می‌شود.
4d6max5حداکثر مقدار هر تاس پنج می‌شود.

شمارش موفقیت‌ها و چک

12d6>=5هر پنج و شش یک موفقیت است.
7d10>=6f1شمارش موفقیت‌ها، یک‌ها به‌عنوان شکست کم می‌شوند.
1d20+7 vs 15چک در برابر درجهٔ سختی، با پاسخی به شکل درجهٔ موفقیت.

تاس‌های دیگر و توابع

4dFتاس Fate، هر کدام -1، 0 یا +1.
d%تاس درصدی — همان 1d100.
2d6+floor(1d4/2)توابع: floor، ceil، round، abs، min، max، sqrt، pow.

بر پایهٔ سیستم بازی

پرتابی که هر میز پیش از همه سراغش می‌رود، آمادهٔ کپی.

D&D 5e

حمله با برتری: دو d20، بزرگ‌تر را نگه دار و بونوس خودت را اضافه کن.

/full 2d20kh1+7
2d20kh1 + 7 = 26 [8, 19] + 7

Pathfinder 2e

چک در برابر درجهٔ سختی. ده واحد بیشتر یعنی موفقیت بحرانی و ده واحد کمتر یعنی شکست بحرانی؛ بیست یا یکِ طبیعی نتیجه را یک پله جابه‌جا می‌کند.

/full 1d20+12 vs 20
1d20 + 12 vs 20 = Critical Success (natural 18) [18] + 12 vs 20

World of Darkness

مجموعهٔ تاس Storyteller: موفقیت روی شش و بالاتر، و هر تاسِ یک، یک موفقیت را حذف می‌کند.

/full 7d10>=6f1
7d10>=6f1 = 4 successes, 1 failure [8, 6, 2, 10↑, 1↓, 4, 7]

Shadowrun

موفقیت روی پنج و شش، در کل مجموعهٔ تاس.

/full 12d6>=5
12d6>=5 = 5 successes [5, 3, 6↑, 2, 4, 5, 1↓, 6↑, 3, 5, 2, 4]

Savage Worlds

تاس ویژگی و تاس Wild، هر دو انفجاری؛ بزرگ‌تر به حساب می‌آید.

/full {1d8!, 1d6!}kh1
{1d8!, 1d6!}kh1 = 9 {[5], [6, 3]}

Fate

چهار تاس Fudge به‌علاوهٔ امتیاز مهارت.

/full 4dF+2
4dF + 2 = 3 [1, 0, -1, 1] + 2

Call of Cthulhu

با تاس درصدی زیر مهارتت بینداز.

/roll d%
1d100 = 37

محدودیت‌ها

هر پرتاب حداکثر 100 تاس و 100 تکرار انفجار یا پرتاب مجدد دارد. بیشتر بخواهی، ربات به‌جای پرتاب همین را می‌گوید — همین سقف‌ها هستند که پاسخ را داخل محدودیت 4096 کاراکتری تلگرام نگه می‌دارند.

جزئیاتی که باز هم از 3500 کاراکتر بگذرد کنار گذاشته می‌شود و پاسخ فشرده جایش را می‌گیرد، پس یک مجموعهٔ بزرگ دست‌کم مجموعش را می‌دهد.

/pick حداکثر 100 گزینه می‌گیرد. فهرست بلندتر رد می‌شود، نه اینکه کوتاه شود: نگه‌داشتن 100 مورد اول هر انتخاب را بی‌سروصدا به سمت بالای فهرست می‌برد و باز هم درست به نظر می‌رسد.

نام داخل گیومه به 100 کاراکتر بریده می‌شود و پرسش /ask به 300.

پرسش‌های پرتکرار

حتماً باید ربات را به گروهم اضافه کنم؟

نه. @rollrobot و نمادگذاری را در هر گفت‌وگویی بنویس و یک نتیجه را انتخاب کن — به‌عنوان پیام خودت فرستاده می‌شود و ربات هیچ‌جا وارد نمی‌شود. افزودنش فقط وقتی می‌ارزد که میز زیاد تاس بیندازد، چون تایپ یک دستور کوتاه‌تر است.

ربات پیام‌هایم را می‌خواند؟

فقط به چیزی واکنش نشان می‌دهد که خطاب به خودش باشد: دستورهایی که با اسلش شروع می‌شوند و پرس‌وجوهای inline که با @rollrobot شروع می‌شوند. گفت‌وگوی عادی نادیده گرفته می‌شود — اصلاً کدی برای پردازشش وجود ندارد.

چیزی ذخیره می‌شود؟

نه. هیچ‌چیزی که می‌فرستی نگه داشته نمی‌شود: نه متن پرسش، نه گزینه‌های فهرست انتخاب، نه نامی که داخل گیومه گذاشته‌ای، نه حتی یک نتیجه. آنچه ثبت می‌شود فقط شکل پرتاب است — 2d6، 4d6kh3، و دستوری که از آن آمده — و شناسهٔ کاربر تلگرام به یک هش نمک‌دار تبدیل می‌شود تا استفادهٔ تکراری بدون شناسایی حساب شمرده شود. آن مجموعه‌داده فقط نوشتنی است؛ برای این وجود دارد که نشان دهد کدام نمادگذاری ارزش پشتیبانی دارد، و نمی‌توان آن را دوباره به یک گفت‌وگو برگرداند.

پرتاب‌ها منصفانه‌اند؟

هر پرتاب تازه از مولد اعداد تصادفی roll-parser گرفته می‌شود و هر بار با دانهٔ تازه شروع می‌کند. هیچ‌چیز از پیش محاسبه نمی‌شود و هیچ نتیجه‌ای از یک پرتاب به پرتاب بعدی منتقل نمی‌شود.

می‌توانم به پرتاب نام بدهم؟

نام را در پایان داخل گیومه بنویس تا بالای نتیجه بیاید: /roll 2d20kh1+7 "ادراک". برای /pick هم کار می‌کند.

چرا 4d6d1 خطا می‌دهد؟

d تنها بعد از یک مجموعه مبهم است — یکی را کنار بگذارد، یا همان‌قدر تاس دیگر بیندازد؟ برای کنار گذاشتن کمترین 4d6dl1 بنویس، و برای تاس تودرتو (4d6)d1.

نمادگذاری‌ام رد شد. حالا چه؟

ربات همان چیزی را که فرستادی برمی‌گرداند و زیر بخشی که نتوانسته بخواند نشانه می‌گذارد، پس معمولاً راه‌حل در همان پاسخ پیداست. موارد دردسرساز را سریع‌تر می‌شود در محیط آزمایش بررسی کرد؛ پیوندش پایین همین صفحه است.

ربات به چه زبانی حرف می‌زند؟

منوی دستورها، عنوان‌های inline و راهنمای نمادگذاری از زبان رابط تلگرام تو پیروی می‌کنند: انگلیسی، اسپانیایی، پرتغالی، آلمانی، روسی، اوکراینی، بلاروسی و فارسی؛ هر زبان دیگری به انگلیسی برمی‌گردد. نتیجه‌ها نمادگذاری‌اند، پس همه‌جا یکسان خوانده می‌شوند. Yes و No عمداً انگلیسی می‌مانند — زبان رابط تو حدس خوبی برای زبان گفت‌وگویی نیست که در آن می‌نویسی.