учебник Roll App
Формулы без проб и ошибок
Формулы автоматизируют расчёты с помощью встроенного математического движка. Они вычисляют значения по заданным правилам, учитывают условия и связи между параметрами. Это упрощает подсчёт очков, ресурсов и других показателей в играх со сложной системой правил.
01 · Быстрый старт
Первая формула за три шага
Откройте шаблон
Создайте новый шаблон или откройте существующий, добавьте числовой параметр и найдите поле «Стартовое значение».
Сошлитесь на данные
Введите @ — редактор предложит параметры и доступные системные значения. Выберите подсказку, чтобы не ошибиться в имени.
Сохраните и проверьте
Сохраните шаблон и запустите тестовую партию. Зависимый параметр будет пересчитываться после изменения значений, на которые ссылается формула.
02 · Ссылки
Ссылки и системные значения
@Имя параметратекущее значение обычного или глобального параметра
@"Счёт - основной"безопасная запись имени параметра со знаками препинания
@Роль.value1первый вариант спискового параметра; value2 — второй и так далее
@костирезультат костей; доступен, только когда кости включены в шаблоне
@числ_игроковколичество игроков
@пред_значениеоператор, который подставляет предыдущее вычисленное значение текущего параметра; равнозначен @system.prev_value
03 · Операторы
Поддерживаемые операторы
Арифметика
+ −- сложение, вычитание и знаки числа
* / %- умножение, деление и остаток от деления
^- степень для чисел; исключающее ИЛИ для логических значений
( )- явный порядок вычисления
Сравнение
= ==- равно
!= <>- не равно
> <- больше и меньше
>= =>- больше или равно
<= =<- меньше или равно
Логика и условия
!- логическое НЕ
& &&- логическое И
| ||- логическое ИЛИ
^- исключающее ИЛИ для логических значений
условие ? да : нет- выбор одного из двух результатов
Переменные и служебные слова
var name = expression- локальная переменная, доступная только внутри текущей формулы
global name = expression- общая переменная, доступная другим формулам шаблона
global var name = expression- равнозначная расширенная запись общей переменной
True / False- логические значения; также поддерживаются Истина и Ложь
;- разделяет объявления переменных и итоговое выражение
04 · Функции
Все функции
Показано функций: 16
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)Общая переменная шаблона
Объявляет значение, которое можно использовать в формулах других параметров этого шаблона.
global round_bonus = 5; @Очки + round_bonus06 · Триггеры
Использование в триггерах
- Если формула условия возвращает True или False, триггер использует этот результат напрямую и срабатывает при переходе условия из ложного состояния в истинное.
- Если отдельная формула условия возвращает число, положительное значение считается истинным, а ноль и отрицательное значение — ложным.
- Число в поле порога остаётся обычным порогом: триггер срабатывает при его пересечении. Если порог ниже стартового значения параметра, учитывается движение вниз; в остальных случаях — движение вверх.
- Для текста, логического значения или пункта списка триггер срабатывает, когда параметр впервые становится точно равен заданному значению.
07 · Важно знать
Что важно знать
- True, False, Истина и Ложь — поддерживаемые логические значения. В числовой арифметике они ведут себя как 1 и 0.
- Десятичную запятую можно использовать в обычном выражении: 1,5 + 1. В вызовах функций запятая разделяет аргументы, поэтому дроби внутри функций записывайте через точку: round(2.345, 2).
- global name = expression и global var name = expression создают переменную, доступную другим формулам этого шаблона. Имена переменных пишутся латиницей, цифрами и знаком подчёркивания и не начинаются с цифры.
- Циклы for и while, произвольный JavaScript, доступ к устройству и неизвестные функции запрещены. Вычислитель ограничивает глубину и сложность выражения, чтобы импортированный шаблон не мог зависнуть.
- Для дробных значений используйте approx(left, right, tolerance), если важно сравнение с допуском. Точное равенство 0.1 + 0.2 == 0.3 может быть ложным из-за устройства дробных чисел.