Откройте шаблон
Создайте новый шаблон или откройте существующий, добавьте числовой счётчик и найдите поле «Стартовое значение».
учебник Roll App
Формулы связывают счётчики и автоматически пересчитывают результат. Ниже — весь поддерживаемый синтаксис языка формул версии 1 и примеры, которые можно вставить в шаблон.
01 · быстрый старт
Создайте новый шаблон или откройте существующий, добавьте числовой счётчик и найдите поле «Стартовое значение».
Введите @ — редактор предложит счётчики и доступные системные значения. Выберите подсказку, чтобы не ошибиться в имени.
Сохраните шаблон и запустите тестовую партию. Зависимый счётчик будет пересчитываться после изменения значений, на которые ссылается формула.
02 · данные шаблона
Ссылки начинаются с @ и получают актуальные данные партии.
@Имя счётчика
текущее значение обычного или глобального счётчика
@"Счёт - основной"
безопасная запись имени со знаками препинания
@Роль.value1
первый вариант спискового счётчика; value2 — второй и так далее
@кости
результат костей; доступен, только когда кости включены в шаблоне
@числ_игроков
количество игроков
@пред_значение
локализованная запись @system.prev_value
03 · синтаксис
+ −* / %^( )= ==!= <>> <>= =><= =<!& &&| ||^условие ? да : нет04 · справочник
abs(value)
модуль числа
min(value, …)
наименьшее значение
max(value, …)
наибольшее значение
sum(value, …)
сумма значений
avg(value, …)
среднее арифметическое; average — совместимый псевдоним
round(value, digits?)
округление; digits от −12 до 12
floor(value)
округление вниз
ceil(value)
округление вверх
trunc(value)
отбрасывание дробной части
sign(value)
знак числа: −1, 0 или 1
sqrt(value)
квадратный корень неотрицательного числа
pow(value, exponent)
возведение в степень
clamp(value, min, max)
ограничение числа заданным диапазоном
approx(left, right, tolerance?)
приблизительное сравнение дробных чисел
if(condition, true, false)
выбор результата по условию
switch(value, case, result, …, fallback)
выбор результата из нескольких вариантов
05 · готовые решения
Пересчитывает итог после изменения любого из трёх счётчиков.
@Очки + @Бонус - @Штраф
Не позволяет результату стать меньше 0 или больше 100.
clamp(@Здоровье, 0, 100)
Возвращает 3 при десяти очках и больше, иначе 1.
@Очки >= 10 ? 3 : 1
Проверяет диапазоны слева направо: +0 означает не больше 0, 1-3 — включительно, 6+ — не меньше 6.
switch(@Бросок, +0:-1, 1-3:1, 4-5:2, 6+:3)
Использует прошлый результат. Обязательна ссылка на другой счётчик, изменение которого запускает пересчёт.
@system.prev_value + @Раунд
Переменная var доступна только внутри этой формулы.
var base = @Очки + @Бонус; round(base / 2)
06 · без сюрпризов