/roll /r
Сума, а поруч нормалізований вираз — видно, що саме бот прочитав.
/roll 2d6+32d6 + 3 = 13@rollrobot
Кубики для настолок у будь-якому чаті — D&D, Pathfinder, World of Darkness, Shadowrun, Fate, Call of Cthulhu.
Відкрити в TelegramВідкрий @rollrobot, натисни «Запустити», надішли /roll 2d6+3. У відповідь — вираз, який бот прочитав, і сума.
Граєш групою? Додай бота в чат. Він відповідає на повідомлення, яке його викликало, тож кидати можуть кілька людей одночасно, і кожна відповідь лишається біля свого запиту. Йому потрібен дозвіл надсилати повідомлення — без нього бот мовчить.
У чаті, куди бота не додати, є інлайн-режим: напиши @rollrobot 2d6+3 і торкнись результату. Ні додавати, ні видавати права не треба — кидок піде твоїм власним повідомленням.
П’ять команд, однакові в особистих чатах і групах. /roll і /full приймають нотацію; надішли будь-яку з них без нотації — і буде звичайний d20.
/roll /rСума, а поруч нормалізований вираз — видно, що саме бот прочитав.
/roll 2d6+32d6 + 3 = 13/full /fТой самий кидок, по кубиках: відкинуті закреслені, натуральний максимум чи мінімум зі стрілкою; у пулі з підрахунком успіхи жирним, провали підкреслені.
/full 4d6kh34d6kh3 = 14
[6↑, 5, 3, /full 4d10>=6f14d10>=6f1 = 2 successes, 1 failure
[10↑, 7, 3, 1↓]/randomЛише d100, коли треба просто число зі ста. Те саме, що /roll d100.
/roll d1001d100 = 73/ask /aВідповідь «так» або «ні» для рішень, не вартих кидка, — чи є на дверях пастка, чи торгуватиметься крамар, чи буде вночі дощ. Усе після команди — це питання, і бот цитує його над відповіддю.
/ask теж працює: питання немає, лише відповідь — для того, що й так сказано вголос за столом.d2, тобто чесна монетка, не більше./ask Відчиняємо двері?Відчиняємо двері?Yes ✅
/ask/helpДовідка з нотації одним повідомленням, із посиланнями на пісочницю й довідник. Ця сторінка стисло, без виходу з Telegram. /start виводить те саме.
Працює, але ще не усталене: усе в цьому розділі може змінитися або взагалі зникнути з бота в наступному оновленні. П’ять команд вище — ні.
/pick /pОбирає один варіант зі списку, який ти даєш, — випадкова зустріч, хто вартує першим, які двері. Один кубик по варіантах, без ваг, якщо не задаси їх сам.
Прокрастися, Домовитися. | і ; роблять те саме, а новий рядок старший за обидва, тож вставлена таблиця ділиться по рядках.| або ;, далі кома, далі просто пробіли. Постав |, коли у варіанті є кома, — Мотузка, 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 -31d20 - 3 = 11Число саме по собі — це кубик: /roll 20 кидає d20.
/roll 201d20 = 12к і д перетворюються на d перед парсингом, тож 2к6 кидає 2d6. Російська, українська й білоруська нотації працюють однаково, а латинська k у kh і kl лишається недоторканою.
/roll 2к62d6 = 8۲۰ кидає d20. Арабо-індійські та перські цифри перетворюються на ASCII перед парсингом; назва в лапках зберігає власні цифри недоторканими.
/roll ۲۰1d20 = 17Напиши @rollrobot і нотацію в будь-якому чаті, зокрема в групах, які про бота ніколи не чули. Над клавіатурою відкриється список; торкнись результату, щоб надіслати його як власне повідомлення.
@rollrobot 2d20kh1+7 пропонує один кидок під двома заголовками — «Кидок» і «Докладно». Вибір змінює вигляд, а не кубики — це ніколи не перекидання.
Якщо після імені бота нічого немає, будуть три заготовки: «Кидок» і «Докладно» на d20, «Випадковий» на d100.
Питання додає результат «Питання» — на початку списку, коли кидати нема чого, і в кінці, коли є. Явний роздільник між двома речами, які не є нотацією, — Патруль гоблінів | Порожня кімната — натомість ставить «Вибір» нагору. Самих пробілів тут не досить, на відміну від /pick, інакше кожне недодруковане питання пропонувало б вибір під своєю відповіддю. Інлайновий вибір несе свій список у самому повідомленні, бо над ним немає команди, на яку можна відповісти.
Результати персональні й не кешуються, тож кожен запит кидає наново.
Те, що ти справді друкуєш. Регістр і пробіли не мають значення, тож 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 | Проникний: кожен додатковий кубик отримує −1. |
5d10!=10 | Вибух за порогом, а не за верхньою гранню. |
2d6r<3 | Перекидати менше за 3, скільки знадобиться. |
2d6ro<3 | Перекинути один раз, залишити другий результат. |
4d6min2 | Підняти кожен кубик щонайменше до 2. |
4d6max5 | Опустити кожен кубик щонайбільше до 5. |
12d6>=5 | Кожні 5 і 6 рахуються як успіх. |
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. |
Кидок, з якого починає кожен стіл, — готовий до копіювання.
Атака з перевагою: два d20, залишити більший, додати бонус.
/full 2d20kh1+72d20kh1 + 7 = 26
[Перевірка проти складності. Перевищив на десять — критичний успіх, не дотягнув на десять — критичний провал; натуральна 20 або 1 зсуває результат на щабель.
/full 1d20+12 vs 201d20 + 12 vs 20 = Critical Success (natural 18)
[18] + 12 vs 20Пул Storyteller: успіх на 6 і вище, кожна одиниця скасовує один.
/full 7d10>=6f17d10>=6f1 = 4 successes, 1 failure
[8, 6, 2, 10↑, 1↓, 4, 7]Влучання на 5 і 6 по всьому пулу.
/full 12d6>=512d6>=5 = 5 successes
[5, 3, 6↑, 2, 4, 5, 1↓, 6↑, 3, 5, 2, 4]Кубик риси й дикий кубик, обидва вибухові; рахується більший із двох.
/full {1d8!, 1d6!}kh1{1d8!, 1d6!}kh1 = 9
{Чотири кубики Fudge плюс рівень навички.
/full 4dF+24dF + 2 = 3
[1, 0, -1, 1] + 2Відсотковий кидок нижче за твою навичку.
/roll d%1d100 = 37Один кидок обмежений 100 кубиками і 100 ітераціями вибухів чи перекидань. Попросиш більше — бот скаже про це замість кидка: саме ці межі тримають відповідь у ліміті Telegram на 4096 символів.
Розбір, який навіть тоді довший за 3500 символів, замінюється стислою відповіддю, тож великий пул відповідає сумою, а не мовчанням.
/pick бере щонайбільше 100 варіантів. Довший список відхиляється, а не обрізається: залишити першу сотню означало б тихо зміщувати кожен вибір до початку списку, вдаючи, що все спрацювало.
Назва в лапках обрізається до 100 символів, питання до /ask — до 300.
Ні. Напиши @rollrobot і нотацію в будь-якому чаті й вибери результат — він піде як твоє власне повідомлення, а бот нікуди не заходить. Додавати варто лише тоді, коли стіл кидає часто: команду друкувати коротше.
Він реагує лише на звернене до нього: команди, що починаються зі скісної риски, та інлайн-запити, що починаються з @rollrobot. Звичайна розмова ігнорується — для неї просто немає обробника.
Ні. Нічого з надісланого не лишається: ні текст питання, ні варіанти у списку вибору, ні назва в лапках, ні жоден результат. Записується сама лише форма кидка — 2d6, 4d6kh3, команда, з якої він прийшов, — а ідентифікатор користувача Telegram зводиться до соленого хешу, щоб рахувати повторні звернення, не впізнаючи акаунт. Цей набір даних лише для запису; він існує, щоб показати, яку нотацію варто підтримувати, і його не можна повернути назад у розмову.
Кожен кидок береться свіжим із генератора roll-parser, який щоразу засівається наново. Нічого не обчислюється заздалегідь, і жоден результат не переходить від одного кидка до наступного.
Візьми назву в лапки в кінці — і вона з’явиться над результатом: /roll 2d20kh1+7 "Сприйняття". Для /pick це теж працює.
4d6d1 — помилка?Сама d після пулу неоднозначна — відкинути один кубик чи кинути стільки кубиків ще раз? Пиши 4d6dl1, щоб відкинути найменший, або (4d6)d1 для вкладених кубиків.
Бот повторює надіслане й ставить ^ під частиною, якої не зміг прочитати, тож виправлення зазвичай видно просто у відповіді. Складніші випадки швидше з’ясувати в пісочниці — посилання внизу сторінки.
Меню команд, інлайн-заголовки й довідка з нотації йдуть за мовою інтерфейсу Telegram: англійська, іспанська, португальська, німецька, російська, українська, білоруська та перська; усе інше повертається до англійської. Результати — це нотація, тож читаються всюди однаково. Yes і No лишаються англійськими навмисно: мова інтерфейсу погано вгадує мову чату, в якому ти пишеш.