Tangaria — это игра в реальном времени (пока вас не ранят монстры — тогда время замедляется), и искатель приключений часто оказывается в ситуациях, когда у него нет времени вводить все команды вручную. Поэтому, если вы хотите выжить в Tangaria, вам придется научиться создавать макросы. Макрос — это запрограммированная клавиша на клавиатуре, которая сопоставляет одно нажатие клавиши с серией нажатий клавиш. Например, вы можете назначить клавишу F1 на «maa» (нажатия клавиш для заклинания «Magic Missile» у заклинателя). Это может ускорить доступ к часто используемым функциям.
Вы можете запрограммировать любую клавишу для выполнения любых нажатий клавиш в любом порядке. Большинство людей используют функциональные клавиши (F1-F12) для макросов, поскольку ни одна из них не используется для игровых команд.
Помимо специального назначения клавиш (Keymap by command, item or spell), существует также старый способ создания макросов для различных действий. Давайте сначала создадим пример макроса — привяжем зелье Cure Light Wounds к клавише F1
:
- надпишите
{
на зелье @q1 - нажмите
=
→e
, чтобы войти в режим макросов (вы увидите меню) - нажмите
d
, чтобы создать новый макрос - нажмите клавишу, к которой нужно привязать макрос:
F1
- введите действие:
q1
(оно станет[Escape]q1
) - нажмите
-
, когда закончите - нажмите
y
, чтобы сохранить клавишу - нажмите
b
(‘save keymaps to file’) - Теперь нажмите
Esc
, чтобы выйти из меню и вернуться в игру. - нажмите
F1
, и вы выпьете зелье Cure Light Wounds.
Но почему в команде есть часть [Escape]
? Команда также может выглядеть как \e
, и это то же самое, что клавиша Esc
. Так что если вы делали что-то другое, например, ели, пили или изучали заклинания, и что-то плохое случается, вы хотите, чтобы макрос сработал сразу! Также это полезно, когда вы не хотите нажимать Esc
многократно, например, при быстром применении stinking cloud или чего-то подобного. Время в Tangaria драгоценно.
Вы можете добавить \e и в конце, но не переборщите. Чем больше \e, тем больше задержка. Итак, если у вас есть первые четыре заклинания в первой книге, макро-действия будут выглядеть так:
Не забудьте создать макросы для всех ваших предметов и заклинаний (если вы играете за заклинателя). Вы также можете использовать ctrl+F1-F12, а не только простые F-клавиши.
После сохранения макросов в файл по умолчанию, они будут автоматически загружаться каждый раз при запуске клиента; в противном случае вам придется загружать файл вручную.
Keymap имеет две части: триггер-клавишу и действие. Они написаны, где это возможно, как обычные символы. Однако, если используются модификаторы клавиш (shift, control и т.д.), то они кодируются как специальные символы в фигурных скобках {}
.
Как вы, вероятно, знаете, бросание фляг с маслом в монстров наносит им урон. Если вы маг, надпишите фляги @v1 и установите действие [ESCAPE]v1*t
.
- Вот как стрелять из лука:
- Надпишите стрелы @f1
- Установите действие как [ESCAPE]ef1*t
*t используется для прицеливания. Приятной стрельбы 🙂
Итак, вернемся к теории: когда
Возможные модификаторы:
K
= Keypad (для цифр)
M
= Meta (клавиша Cmd на OS X, alt на большинстве других платформ)
^
= Ctrl
S
= Shift
Если единственный модификатор — клавиша control, фигурные скобки {} не включаются. Например:
{^S}&
= Ctrl
+ Shift
+ &
^D
= Ctrl
+ D
Специальные клавиши, такие как F1, F2 или Tab, пишутся в квадратных скобках []. Например:
^[F1]
= Ctrl
+ F1
{^S}[Tab]
= Ctrl
+ Shift
+ Tab
Специальные клавиши включают [Escape]
.
Игра будет выполнять keymap в любом наборе клавиш, который вы используете (original или roguelike). Так что если вы напишете keymap для клавиш roguelike и переключитесь на original, они могут не работать так, как вы ожидаете! Действия keymap не являются рекурсивными, поэтому если у вас есть keymap, триггером которого является F1, включение F1 внутри действия не запустит действие keymap снова.
Keymap записываются в pref-файлах как:
A:<action>
C:<type>:<trigger>
Действие всегда должно идти первым, <type>
означает ‘тип набора клавиш’, который может быть либо 0 для original, либо 1 для roguelike. Например:
A:maa
C:0:[F1]
Tangaria использует несколько встроенных keymap. Они предназначены для клавиш движения (они сопоставлены с ;
плюс номер, например, 5
-> ;5
) и некоторых других. Вы можете увидеть полный список в pref.prf, но они не должны никак влиять на вас.
Чтобы избежать срабатывания keymap для данной клавиши, вы можете ввести команду обратной косой черты \
перед нажатием этой клавиши.
Примеры макросов
Альтернативный старый способ создания макроса для заклинания Magic Missile по ближайшему монстру. Надпишите (нажав {
) вашу магическую книгу «Magic for beginners» как @m1. Это должно установить вашу книгу как номер 1. Буква m спереди предназначена для безопасности, чтобы вы могли использовать только заклинания с этим номером.
- нажмите
=
→e
, чтобы перейти к экрану макросов. d
, чтобы создать новый макросF5
на клавиатуре.- введите новое действие. Установите действие как
m1a*t
-
, когда закончите.y
, чтобы сохранить клавишуb
(‘save keymaps to file’)Esc
, чтобы выйти из меню и вернуться в игру.- нажмите
F5
, и вы произнесете «Magic missile» (m1a) и нацелите его на ближайшего монстра (*t).
Еще примеры:
Пример 1: Вы — Маг. Изучите заклинание Detect Creatures. Нажмите G
, затем 1
, затем b
. Надпишите {
вашу книгу Beginners magic как @m1
. Это дает вашей книге определенный номер вместо просто позиции в вашем инвентаре. Позиции могут меняться, когда вы выбрасываете предметы или если предмет уничтожается, поэтому если вы не дадите вашей книге номер, keymap может не найти нужную книгу. Это ОЧЕНЬ важно.
Нажмите =
→ e
, чтобы перейти к экрану keymap. Нажмите d)
Create a keymap. Нажмите F1
на клавиатуре. Установите действие как [Escape]m1b
, затем нажмите -
. Нажмите y
, чтобы сохранить keymap. Теперь вы запрограммировали клавишу F1
на выполнение заклинания Detect Creature.
Теперь нажмите Esc
, чтобы выйти из меню keymap. Если вы теперь попробуете нажать F1
, вы произнесете заклинание Detect Creature. Но почему мы использовали часть [Escape] в [Escape]m1b
? [Escape] то же самое, что клавиша Esc
. Так что если вы делали что-то еще, например, ели, пили или изучали заклинания, и что-то плохое случается, вы хотите, чтобы keymap сработал.
Пример 2: Вы — Воин. Надпишите зелье Berserk Strength как @q1
. Перейдите в меню keymap =
→ e
и выберите опцию d)
Create a keymap. Нажмите клавишу, на которую вы хотите назначить этот keymap, например F2
. Установите действие как [Escape]q1
(см. выше). Затем нажмите Esc, и вы снова в игре.
Когда вы теперь нажмете F2, вы выпьете зелье Berserk Strength.
Пример 3: Вы хотите использовать лук. Надпишите стрелы @f1
. Установите действие как [Escape]f1'
, чтобы целиться в ближайшего монстра, или даже используйте команду h
, чтобы стрелять боеприпасами по умолчанию из вашего колчана в ближайшего монстра.
Не забудьте сохранить ваши макросы =
→e
→b
; иначе, когда вы выйдете из игры и запустите ее снова — вам придется создавать макросы заново, что довольно раздражает. Лучше сохранять макросы после изменения.
Примеры от Jir
Действие Макрос Соответствующая надпись
----------------- ---------------- -----------------
прочитать свиток \er1 @r1 (phase door, teleport, и т.д.)
phase door(magic) \em1c @m1 ("Magic for Beginners")
выпить зелье \eq1 @q1 (!crit, !healing и т.д.)
magic missile \em1a' @m1 ("Magic for Beginners")
стрелять снарядом \ef1' @f1 (arrows, bolts, shot, и т.д.)
'
в макросе означает целиться в ближайшего врага. макросы 'magic missile' и 'fire a missile' будут целиться и стрелять автоматически ;) teleport(staff) \eu1 @u1 (staff of teleportation) satisfy hunger \em3a @m3 (книга "Incantations") detection \ep6b @p6 ("Godly Insight") auto-pickup on \e=1\s\s\s\s\sy\e\e auto-pickup off \e=1\s\s\s\s\sn\e\e load a macro file \e%1foo.prf\n\e [foo.prf может быть любым именем файла] machine gun \et1*tt1*tt1*tt1*tt1*t [хорошо работает для лучников] Пример макроса с непрерывными действиями: пить и PhaseDoor \eq1r1 @r1,@q1
Если вы сохраните макросы в файлы с определенными именами, макросы будут автоматически загружаться только в соответствующей ситуации.
—имя файла— — автозагрузка при игре за ———
druid.prf класс druid
Jir.prf персонаж с именем ‘Jir’
Тестируйте макросы в городе или, возможно, на глубине 50ft — иначе неправильный макрос может однажды убить вас.
Специальные клавиши
Определенные специальные клавиши могут перехватываться операционной системой или хост-машиной, вызывая неожиданные результаты. В общем, эти специальные клавиши являются клавишами control, и часто вы можете отключить их специальные эффекты.
Часто можно указать «клавиши control» без фактического нажатия клавиши control, введя знак вставки ^
, за которым следует клавиша. Это полезно для указания команд с клавишей control, которые могут быть перехвачены операционной системой, как объяснено выше.
Нажатие обратной косой черты \
перед командой обойдет все keymap, и следующее нажатие клавиши будет интерпретировано как клавиша «базовой команды», если это не знак вставки ^
, в этом случае следующее нажатие клавиши будет преобразовано в клавишу control и интерпретировано как команда в базовом наборе клавиш Angband. Клавиша обратной косой черты полезна для создания действий, на которые не влияют никакие определения keymap, которые могут быть в силе, например, последовательность \
+ .
+ 6
всегда будет означать «бежать на восток», даже если клавиша .
была сопоставлена с другой базовой командой.
Клавиши 0
, ^
и \
имеют особое значение при вводе в командную строку, и нет «полезного» способа указать любую из них как «базовую команду», что нормально, поскольку они не имели бы эффекта.
Для многих запросов ввода или запросов, специальный символ ESCAPE
прервет команду. На запросы ‘[y/n]’ можно ответить y
или n
, или Esc
.
Если вы сохранили макросы, когда они были испорчены, и теперь вы не можете что-то сделать — просто удалите ваш файл макросов pref.prf
Возможно устарело:
Следующие строки в макросе обрабатываются как escape-последовательности:
\e
escape Отменяет действие.
Он автоматически вставляется как [ESCAPE]
в начале нового макроса.
\s
пробел
пробельные символы в макросе отображаются как \s
\n
перевод строки
означает клавишу Enter
. Это позволит создавать некоторые сложные макросы
Клавиши, часто используемые как триггер:
Meta(Alt), Ctrl, функциональные клавиши и другие неиспользуемые клавиши (например, ‘/’,’^’ и т.д.).