Руководство по макросам для игроков

Макросы это созданные пользователями ярлыки для команд, которые они регулярно планируют использовать и повторять. К примеру, вы можете создать макрос который выкрикивает боевой клич, потом осуществляет часто используемую атаку. Вместо того чтобы набирать все эти команды снова и снова во время игры вы можете просто создать одну короткую команду

Создание и редактирование макросов

В вкладке "Коллекции" (под изображением списка обозначенного точками) в боковой панели находятся макросы. Чтобы ввести Я(создать) макрос, сначала необходимо ввести желаемое название макроса, к примеру "test", потом справа ввести команду. Это может быть форматированный текст, бросок костей или эмоция. После чего следует нажать "Enter" чтобы сохранить команду.

Для вызова макроса, наберите в окне ввода "#" и название макроса (к примеру, #test) и нажмите "enter".

Автозаполнение

Некоторые области для ввода текста поддерживают автозавершение вызовов макросов (используя "#"), атрибутов (используя "@") и способностей (используя "%").

Текстовые области "Действие" и макросов (в окне "Редактирование макроса" и способностей (на вкладке листа персонажа "Атрибуты и способности") поддерживают автозавершение вызовов макросов и атрибутов. Текстовый чат поддерживает автозавершение вызовов макросов и атрибутов

Для того чтобы вызвать список автозавершения, наберите один из символов - #, @ or %, так и где следует, а вслед за ними последовательность букв или цифр (как минимум 1). Макрос, Атрибут или Способность появится в листе автозавершения если их имя содержит эту последовательность.

Только макросы которые доступны во вкладке "Коллекции" будут показаны в списке автозавершения. Аналогично, только атрибуты или способности которые относятся к персонажу, к управлению которым вы имеете доступ, появятся в списке автозавершения

Например, если у вас есть разрешение на управление персонажем, у которого есть атрибут с именем «Dexterity», вы можете ввести «@dex» (или, возможно, просто «@x») в текстовую область «Действие» окна «Редактировать макрос», чтобы вывести список автозаполнения, который содержит этот атрибут.

Совет: Вы можете перемещаться и выбирать элементы в списке автозаполнения, используя клавиши «Вверх» и «Вниз» и клавишу «Ввод» на клавиатуре.

Совет: Вы можете щелкнуть любой бросок на листе персонажа, затем перейти в окно чата, и нажимая стрелку вверх, чтобы открыть используемый код. Это можно использовать для объединения различных бросков в одну удобную кнопку!

Множественные команды

Одной из сильных сторон системы макросов является ее способность выполнять несколько действий с помощью одной команды. Чтобы сделать это, просто поместите каждый элемент в свою собственную строку, и они будут выполнены в порядке, когда вы запустите макрос.

К примеру

Если я хочу создать макрос, который будет включать в себя эмоцию, плюс мои атаку и повреждения, это будет выглядеть так:

Название макроса: dagger

Текст макроса:

/me rams his dagger home
/roll 1d20+10 vs AC
/roll 1d4+9 Damage

После этого, просто набирая #dagger я смогу запустить весь скрипт и результат будет выглядеть следующим образом:

Макрос атаки

Макросы могут также включать в себя сочетание командной строки и команд, отличных от командной строки, например:

#lof
/me calls upon the power of Moradin!
I smite you!
/roll 1d20+4 vs reflex
/roll 1d8+4 damage

Сначала это будет эмоция, а затем отправьте «I smite you!» в чат, а затем сделает два броска после этого.

Вложенные макросы

Макросы могут вставляться внутри друг друга, что дает возможность комбинировать макросы и вызывать несколько макросов одним действием. Чтобы вложить макрос, просто укажите имя макроса, который вы хотите вызвать в своей строке внутри вашего макроса.

Пример

В этом примере у нас будет три макроса: #damage #attack и #both

Macro #damage = /roll 1d4+11 Macro #attack = /roll 1d20+9 Macro #both =

attack

damage

Вложение макроса в запросе

Если вы вкладываете макрос в запрос, убедитесь, что после имени макроса есть пробел, чтобы он был правильно распознан.

?{Which macro?|Attack,#use-sword |Defend,#use-shield }

Работа с ошибками и проблемами

Из-за порядка операций вызовы макросов, вложенные в запросы на ролл, полностью расширяются до выполнения запроса Roll. Это означает, что если макрос, вложенный в Query Query, содержит любые «проблемные символы», которые конфликтуют с синтаксисом Roll Query (например, «}», «и» |), этот вложенный макрос может вызвать разрыв запроса Roll (потому что Roll Query будет обрабатывать проблемные символы в вызываемом макросе как синтаксис запроса квитирования).

Если это так, может потребоваться либо удалить эти проблемные символы (внутри самого вызываемого макроса), либо заменить их на объекты HTML (см. Раздел «Расширенное использование для запросов на ролл»).

Макросы, которые содержат замены объектов HTML, могут больше не работать вне запроса на ролл. должны быть сохранены как Способности.

Повторное открытие макросов коллекции возвращает объекты HTML; если этот макрос будет сохранен, эти реверсии также будут. Такое поведение отсутствует в «Способностях».

Вложение способностей

Способностью является другое имя для макроса, который является специфическим для определенного символа, и создается в листе персонажа на вкладке журнала. Как и макросы, способности могут вставляться внутри друг друга, что дает вам способность объединять способности вместе и называть множественные способности одним действием.

Вложение способности аналогично вложению макроса, но с небольшим завихрением. Как макрос, просто укажите имя способности, которую вы хотите вызвать в своей строке внутри своей способности вызова. Но кроме того, вам нужно изменить символ числа (#) на символ процента (%), а затем включить имя символа перед именем способности, используя вертикальный черту (|), чтобы отделить их.

Вертикальную черту можно найти над клавишей обратной косой черты () на большинстве клавиатур. Этот символ обычно находится рядом с клавишей ввода на клавиатуре США и в ряду номеров на европейских клавиатурах.

Примечание. В настоящее время символ ссылки способности (%) не завершается автоматически в э то время, как символ ссылки на атрибут (@) или символ ссылки на макрос (#). Вы должны сами напечатать все.

Пример

В этом примере у нас будет три способности: %damage %attack и %both и наш персонаж с именем Bugbear

Ability %damage = /roll 1d4+11
Ability %attack = /roll 1d20+9
Ability %both =
%{Bugbear|attack}
%{Bugbear|damage}

More Examples

Кнопки вызова способностей

Кнопки вызова способностей могут быть использованы для вызова способностей с помощью нажимной кнопки в текстовом чате. Они достаточно близки к командным кнопкам API.

Их синтаксис имеет следующий вид:

[Label](~<keyword>|<ability name>)

Как и в случае с вызовами атрибутов и способностей, ключевое слово "keyword" определяется вашим выбором из "выбранный"/"цель"/"имя персонажа". Также вы можете использовать character_id как ключ.

Если у вас есть кнопка вызова способности где то в персонаже, вы можете пропустить ключевое слово (к примеру, если вы пишете текст способности):

[Label](~<ability name>)

Continuing the example from Abilities, Bob the Slayer might insert Swing Axe!! into another one of his other Abilities so that he could more-accessibly fillet his foes.

Макрос атрибутов

A culmination of the above examples can be used in what we call Attribute Macros. By using an Attribute, that is assigned to a Character, as a variable modifier you can create complex Character based macros. Since the variable used in the Macro is linked to a Character Attribute, the value will sync when changed in the Character editor.

A very basic look at using abilities for more simple rolls. (ex. Will Save, Skill Checks, etc.)

Атрибуты и способности

Использование выбранного токена в макросе

Ключ "selected" позволяет вам получить информацию из элемента (токена) выбранного на экране в момент выполнения броска/макроса. К примеру, если вы хотите получить значение Bar 1 из токена выбраного во время броска, вы можете сделать следующее:

/roll 1d20 + @{selected|bar1}

Вы можете использовать "bar1", "bar2", или "bar3". В дополнение, вы также можете использовать атрибут из Персонажа, связанного с этим токеном (если таковой имеется).

/roll 1d20 + @{selected|Intelligence}

Также вы можете получить имя выбранноготокена используя переменную "token_name".

/em @{selected|token_name} fires his gun!

Если выбранный токен связан с персонажем, то вы можете получить имя из листа персонажа используя переменную "character_name" .

/em @{selected|character_name} blocks with his shield!

Также можно вызывать способности из связанного с выбранным токеном персонажа используя имя способности как переменную.

%{selected|Attack}

В конце концов, можно использовать третий аргумент для переменных, позволяя получить максимум "max" bar или атриьута:

/roll 1d20 + @{Guard|Intelligence|max}
/roll 1d20 + @{selected|bar2|max}

Также, все имена (персонажей, атрибутов, способностей) являются независимыми от регистра, т.е. "GUARD" и "guard" будут оба соответствовать персонажу "Guard".

Совет: Чтобы найти полный список атрибутов для вашего персонажа, вы можете в листе персонажа перейти на вкладку "Attributes & Abilities". На этой вкладке вы также сможете добавить свои собственные атрибуты для использования в макросе просто нажав "+ Add".

Атрибуты и листы персонажей

Листы персонажей вводят большое количество атрибутов, которые вы можете захотеть ссылаться в своих настраиваемых макросах. Одна вещь, о которой нужно знать, - это атрибут с формулой автовычислений. Зачастую в лист персонажа можно встретить атрибуты, которые вычисляются по формуле, включающей другие атрибуты. Ссылка на этот атрибут будет показывать формулу вместо значения.

К примеру

@{selected|character_name} has @{selected|action_points} points left.

Rolf has ((ceil(((13+0)+(14+0))/12)+0)+0) points left.

Чтобы избежать подобного, вам следует превратить ссылку на атрибут в вычисляемый бросок (inline roll):

@{selected|character_name} has [[@{selected|action_points}]] points left.

Rolf has 3 points left.

Использование токена цели в макросе

Очень похоже на использование ключа "selected", который позволяет получать информацию из выбранного токена (как показано выше), вы можете использовать также ключ "target" для получения информации, такой как переменные, способности "целевого" токена. Эта команда позволяет игрокам выбирать из токенов, которые они обычно не могут нормально выбрать, что является хорошим способом получения информации во время бросков против вражеского токена. К примеру, если вы сказали игроку бросить 1к20 против атрибута цели "strength" и тогда бросок будет выглядеть следующим образом:

/roll 1d20 - @{target|strength}

Использование этого ключа вызывает экран подтверждения позволяющий игроку выбрать токен, который необходимо использовать в макросе.

Выбор цели

Опять таки, ключ "target" практически идентичен ключу "selected" как показано в способах использования - две основные разницы заключаются в том, что он позволяет игрокам использовать значения из токенов, которые они не контролируют и немного отличается синтаксис во время вызова "max" части атрибута. Посмотрите подрахжед продвинутого использования вызова атрибута целевого токена для больших подробностей и детального синтаксиса.

Продвинутое использование вызова атрибутов цели

Полный синтаксис для переменной "цели" "target":

@{target|<target_name>|<attribute_name>|<optional_flags>}

(Заметьте, что 'target_name' может быть все что вам нравится и может включать пробелы.)

Так что если вы хотите иметь у себя в макросе несколько целей вы можете сделать следующим образом к примеу:

@{target|Target1|HP} vs @{target|Target2|AC}

И если вы хотите использовать максимум атрибута:

@{target|Target1|HP|max}

Обратите внимание что если вы хотите использовать флаг "max" вы должны определить имя цели самостоятельно, даже если вы просто поставили "target1" как указано выше.

В дополнение, если вы используете одинаковое target_name в нескольких запросах атрибутов, вы получите экран подтверждения только один раз и тот же самый токен будет использован во всех следующих запросах атрибутов. Это также применяется во время выполнения макроса на нескольки строках или состоящего из нескольки команд.:

/me strikes out at @{target|foe|character_name}!
**To Hit**: [[1d20+3]] vs. @{target|foe|npc_AC} AC

В данном случае, будет использован один и тот же токен в обоих случаях.

Ссылки на повторяющиеся атрибуты

Используя RowIndex

Ссылки на атрибуты в повторяющемся ряде могут быть получены из их RowIndex. Для повторяющейся секции с именем Items, вы может получить ссылку на атрибут ItemBonus второго Items в персонаже используя следующий синтаксис:

@{selected|repeating_items_$1_itembonus}

Примечание: RowIndex атрибута начинается с 0 (индекс указывает на расстояние от первого объекта) поэтому первый ряд использует $0, второй - $1, третий = $2, и т.д.

Используя RowID

Также вы можете использовать RowID для ссылки на атрибут. Преимущество использования RowID состоит в том что он независим от изменения порядка (т.е. удаления или сортировки рядов). Чтобы получить RowID (если он не указан автором листа персонажа каким либо образом) вы должны исследовать исходный код листа персонажа. Исследуйте HTML пока вы не найдете метку со свойством data-reprowid. Знначение этого свойства и представляет собой RowID:

<div class="repitem" data-reprowid="-KC0zCLum1Rq3V5wssyE">

Тогда RowID используется вместо RowIndex:

@{selected|repeating_items_-KC0zCLum1Rq3V5wssyE_itembonus}

Настройки бросков костей в макросах Roll Options

"настройки бросков" являются "параметрами" которые вы можете установить в любом месте в броске чтобы передать информацию системе бросков, что вы хотите сделать специальное действие с результатом броска.

Бросок инициативы

Чтобы добавить результат броска в счетчик ходов, сначала выберите токен, для которого вы бросаете инициативу и потом используйте следующий параметр "&{tracker}" в своем макросе:

/roll 1d20 + 5 &{tracker}

Параметр броска "tracker" указывает системе бросков Roll20, "Покажи результат этого броска, но также используй результат как значение в счетчике ходов" Если токен, который вы выбрали, еще не получил свой ход в счетчике (не был добавлен), то он будет добавлен. Если у него был хотя бы один ход (одна позиция), все текущие значения будут обновлены используя новое, полученное из броска.

В дополнение вы можете добавить результат броска, либо отнять результат броска из текущего значения для выбранного токена используя следующие параметры:

/roll 1d20 + 5 &{tracker:+}
/roll 1d20 + 5 &{tracker:-}

Для игры подобной Shadowrun где вам необходимо отнимать 10 от текущей инициативы каждый ход, вы можете сделать глобальный макрос следующего вида:

/me @{selected|token_name} ends their turn. [[10 &{tracker:-}]]

Обратите внимание что параметр счетчика ходов работает как в обычных бросках так и вычисляемых (inline rolls).

Вы даже можете сослаться на эти значения таким же образом как вы ссылаетесь на атрибуты используя следующий синтаксис: @{tracker|Item Name}.

Подавление сообщений о ошибках Suppressing Errors Messages

Параметр "noerror" будет подавлять любые сообщения (такие как переменная не найдена) в броске.

/roll 1d20 + @{selected|nonexistent_attribute} &{noerror}

Использование переменной в макросе

Самый простой способ включить переменную в макрос это использовать запрос. К примеру, если вы хотите добавить переменный модификатор к броску вы можете сделать следующий макрос:

/roll 2d20 + ?{Modifier|0}

Когда макрос будет запущен, появится окно ввода, которое будет запрашивать про значение модификатора. Если модификатор не будет определен, часть запроса "|0" укажет что необходимо использовать значение "0" по умолчанию.

Более подробно про запросы можно прочитать в разделе "Информация по кубам" .

Specifying a variable in chat

Если вам больше нравится использовать переменный модификатор в вашем макросе, просто окончите макрос этим модификатором и потом определите его во время запуска макроса.

Примеры

Если я хочу создать макрос 1d20+x (где x переменное значение) следует создать следующий макрос:

d20 /roll 1d20+

после этого во время запуска макроса надо будет набрать #d204 чтобы получить /roll 1d20+4

Выпадающие списки в запросах

В запросах можно определить список возможных выборов, которые будут показаны игроку, вместо того чтобы показывать текстовое поле для заполнения.

Синтаксис такого запроса:

?{Name of Query|Option1|Option2|Option3|Option4|Option5}

Также вы можете установить значение для результата отличающееся от метки, т.е.:

?{Name of Query|Label 1, value1|Label 2, value2}

Примеры

Специальная атака

... + [[ ?{Sneak Attack?|No, 0|Yes, 3d6} ]] + ?{Power Attack?|No, 0|Yes, 6 [Power Attack!]}

Бросок атаки в D&D 5e

[[ ?{Attack Type|Standard, 1d20|Advantage, 2d20kh1|Disadvantage, 2d20kl1} ]]

Заклинание Лечения в D&D 3.5

?{Spell|
Cure Light Wounds, **Cure Light Wounds** Target Regains [[1d8+5]] HP. |
Cure Moderate Wounds, **Cure Moderate Wounds** Target Regains [[2d8+8]] HP. |
Cure Serious Wounds, **Cure Serious Wounds** Target Regains [[3d8+8]] HP.
}

Продвинутое использование запросов

Запросы (Roll Queries) в данный момент заканчиваются на первой закрывающей фигурной скобке, которую найдет парсер. Внутри Запроса (Roll Query) другие символы, которые используются в синтаксисе Запроса (Roll Query) (вертикальные черты и запятые) всегда будут рассматриваться как части Запроса парсером, потенциально вызывая нежелательное поведение, если были поставлены внутри Запроса для других целей. Чтобы избежать этого, замените некоторые но не все "проблемные" символы их на их HTML сущности.

Символ Замена | | , , } }

Согласно порядка операций, вызовы (т.е. @{Attribute}, %{Ability}, #Macro) приводятся к их значениям перед выполнением Запросов (Roll Queries).

К примеру, вызовы атрибутов (к примеру, @{selected|HP}) обрабатываются и на выходе дают или текущее значение или максимальное (в завивисомости от того содержал ли вызов параметр "max", т.е. @{selected|HP|max}).

Опяь таки, нормально проблемные символы которые являются частью макросов Атрибутов или Способностей обрабатываются до их значений, прежде чем они повлияют на Запрос (Roll Query).

Вызовы не являются проблемными! Не надо в них заменять символы! Никогда не делайте так:

@{target&#124;token_name&#125;

Разрешение проблем с запросами и исправление ошибок

Найдите и замените все проблемные символы в значениях любых атрибутов (Attribute), способностей (Abilities) или макросов (Macros).

Поскольку эти значения теперь содержат HTML сущности, вероятно их невозможно будет вызвать индивидуально, отдельно (т.е. за пределами Запроса (Roll Query). Поэтому вы можете напрямую вставить эти значения в ваш Запрос (Roll Query), заменяя их вызов.

Макрос который содержит HTML сущности больше не будет работать автономно.

В то же время, открывая сохраненный макрос (Macro) в вкладке "Коллекции" (Collections) в боковой панели заставляет браузер сохранить символы представленные в виде HTML сущностей как обычные символы и если макрос после этого сохранить они так и останутся. Это поведение не используется в Способностях (Abilities).

Еще раз, это важно: ни в одном вызове @{Attribute}, %{Ability} или #Macro не производите процедуру замену символов на HTML сущности.

Примеры (вложенные Запросы (Roll Queries)

?{Name of Query|
Label 1, ?{value1&#124;
Label 1A&#44; value1A &#124;
Label 1B&#44; value1B
&#125; |
Label 2, ?{value2&#124;value2&#125;
}

Также возможно получить еще больший уровень вложенности, "складывая" преобразования в HTML сущности:

Символ Замена

& &

Пример

?{Name of Query|
Label 1, ?{value1&#124;
Label 1A&#44; ?{value1A&amp;#124;
Label 1Ai&amp;#44; value1Ai &amp;#124;
Label 1Aii&amp;#44; value1Aii
&amp;#125; &#124;
Label 1B&#44; ?{value1B&amp;#124;
Label 1Bi&amp;#44; value1Bi &amp;#124;
Label 1Bii&amp;#44; value1Bii
&amp;#125;
&#125; |
Label 2, ?{value2&#124;value2&#125;
}

Панель макросов

Вы также можете создать кнопки для быстрого доступа для любого из ваших макросов в панели внизу экрана. Сначала создайте ваш макрос как обычно, потом включите быструю панель макросов выбрав пункт "Show macro quick bar" в меню настройки.

Включение панели макросов

После этого, чтобы добавить макрос на панель, просто отметьте опцию "In bar" возле имени макроса. Если вы забыли включить панель макросов, отметка в макросе автоматически включит отображение панели быстрого запуска макросов.

Панель макросов

После этого панель быстрого доступа и любые макросы которые вы выбрали появятся внизу вашего экрана, под портретами персонажей. Если вы хотите переместить кнопки на панели, наведите ваш курс на кнопку которую хотите перместить, после чего появится изображение рукоятки справа кнопки. Вы можете перетаскивать кнопку по панели используя эту рукоятку. Нажмите на рукоятку чтобы переместить кнопку или вытащить ее наверх чтобы удалить ее.

Панель макросов

Shift+Клик на макросе в панели быстрого доступа откроет редактор этого макроса.

Меню макросов.

Вы можете вызвать контекстное меню панели быстрого доступа через клик правой кнопкой мыши на кнопке макроса в панели быстрого доступа макросов чтобы вызвать меню настройки которое даст вам доступ к паре простых свойств, которые влияют на отображение макроса для локального пользователя.

Контекстное меню редактирования панели макросов

Переименование кнопки макроса - Rename

Выберите пункт Переименование чтобы вызвать диалог который запросит у вас новое имя для кнопки. Это в частности полезно для макросов, созданных путем перетаскивания кнопок из листов персонажей.

Изменение цвета кнопки макроса - Color

Выберите пункт Цвет, чтобы открыть меню изменение цвета. Это позволит вам изменит цвет фона кнопки чтобы было легче визуально отличать ее от других ваших кнопок. Цвет текста на кнопке автоматически изменится чтобы быть контрастным с выбранным фоновым цветом.

Полезные ссылки

Словарь перевода терминологии Roll20

Броски костей детальное руководство

Макросы для D&D 5e в листах персонажей OGL и Shaped

Библиотека макросов