Калькулятор характеристик
Четыре способа набора, бонусы происхождения, подсчёт баланса.
/iframe/tools/stats/
Калькулятор характеристик и генератор имён живут не только на своих страницах — у каждого есть встраиваемая копия, которую можно поставить в статью, вики клуба или страницу своей кампании.
Это не то же самое, что встраивание листа персонажа: инструменты публичные. Домен в белый список добавлять не нужно, авторизации нет, SDK не нужен, доступа к чужим данным у страницы тоже нет.
Калькулятор характеристик
Четыре способа набора, бонусы происхождения, подсчёт баланса.
/iframe/tools/stats/
Генератор имён
Имена со значениями по восьми народам, с разбором каждой основы.
/iframe/tools/names/
<iframe src="https://longstoryshort.app/iframe/tools/stats/" title="Калькулятор характеристик D&D" width="100%" height="900" loading="lazy" style="border:0" sandbox="allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox"></iframe><script>window.addEventListener('message', function (event) { if (event.origin !== 'https://longstoryshort.app') return;
var frame = document.querySelector('iframe[src^="https://longstoryshort.app/iframe/tools/"]');
if (!frame || event.source !== frame.contentWindow) return; if (!event.data || event.data.type !== 'lss:embed:resize') return;
frame.style.height = event.data.height + 'px';});</script>Если во фрейме открылась страница «404», проверьте адрес: встраиваемые копии живут строго под
/iframe/tools/, и опечатка в пути отдаёт 404, а не какую-то другую нашу страницу.
Готовый код с уже выбранными темой и переводом можно скопировать прямо со страниц инструментов — калькулятор и Генератор, блок «Поставить на свой сайт» внизу.
| Параметр | Значения | По умолчанию |
|---|---|---|
theme |
dark, light |
dark |
template |
default, hg, ph, dndr, by, ua, en |
default |
Незнакомое значение молча заменяется на значение по умолчанию: опечатка в атрибуте src не
должна ломать вашу страницу.
light подходит для светлой вёрстки, dark — для тёмной. Своих цветов у инструмента нет,
палитра целиком переключается параметром.
template — это перевод игровых терминов, тот же самый, что игрок выбирает в листе персонажа.
Меняются названия характеристик.
| Значение | Перевод |
|---|---|
default |
Русский по умолчанию |
hg |
Hobby World |
ph |
PHantom Studios |
dndr |
Dungeons_ru |
by |
Беларуская |
ua |
Українська |
en |
English |
Генератор имён параметр template принимает и игнорирует: основы имён и их значения существуют
только по-русски.
Инструмент сам сообщает свою высоту родительскому окну:
{ type: 'lss:embed:resize', height: 1240 }Сообщение уходит после загрузки и дальше при каждом изменении целой высоты — например, когда
читатель раскрывает строку характеристики или просит ещё имён. В нём нет ничего, кроме
геометрии, поэтому оно отправляется всем (targetOrigin: '*').
Если вы не ставите слушатель, задайте фрейму фиксированную высоту с запасом: 900 пикселей
хватает калькулятору, 1400 — генератору имён на широком экране.
Атрибут sandbox необязателен, но если вы его ставите, инструменту нужны четыре флага:
| Флаг | Зачем |
|---|---|
allow-scripts |
Инструмент — это JS-приложение |
allow-same-origin |
Генератор помнит сохранённые имена в своём localStorage |
allow-popups |
Переход в лист персонажа открывается новой вкладкой |
allow-popups-to-escape-sandbox |
Открытая вкладка не должна унаследовать песочницу |
Без allow-same-origin инструмент продолжает работать — Генератор просто перестаёт помнить
сохранённые имена между заходами.
В обоих инструментах есть кнопка, которая превращает собранное в лист персонажа Long Story Short. Внутри фрейма она всегда открывает новую вкладку.
Собранное едет в адресе этой вкладки — характеристики и редакция из калькулятора, выбранное имя с разбором значения из генератора. Персонаж создаётся уже на нашей стороне, после входа в аккаунт.
Инструменты открыты для встраивания на любой сайт, в том числе коммерческий. Мы просим об одном: оставьте видимую подпись с ссылкой на Long Story Short — она уже есть внизу фрейма под инструментом.
Если вам нужно больше — броски из встроенного листа, состояние персонажа, права за столом — это уже встраивание листа персонажа со своим SDK и протоколом.