Как использовать AutoKey для автоматизации игр под Linux

How Use Autokey Automate Linux Games



AutoKey это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO, вы можете автоматизировать нажатия клавиш, щелчки мыши и большинство частей интерфейса рабочего стола. Если вы ищете альтернативу программе Windows AutoHotkey , AutoKey - лучший вариант, доступный сегодня для пользователей Linux.

Обратите внимание, что это приложение только для X11, поддержка Wayland не была добавлена ​​в приложение на момент написания этой статьи.







Некоторые из функций AutoKey:



  • Поддерживает сокращения, которые могут автоматически заменять несколько символов на любые ваши часто используемые предложения и текстовые блоки.
  • Поддерживает отправку произвольных нажатий клавиш и щелчков мыши.
  • Поддерживает задание правил для конкретного окна приложения.
  • Скрипты Python 3 можно использовать для написания правил автоматизации.
  • Возможность управлять функциями окна, такими как увеличение, изменение размера и перемещение.
  • Поставляется с набором предварительно настроенных примеров для упрощения написания сценариев.
  • Возможность показывать пользовательские всплывающие меню со списком вариантов.
  • Возможность записывать нажатия клавиш и щелчки мыши.
  • Возможность устанавливать горячие клавиши без клавиш-модификаторов.
  • Скрипты автоматизации переносимы, и ими можно легко поделиться с другими пользователями.

Это руководство покажет вам несколько примеров AutoKey, которые полезны для геймеров Linux. Для начала давайте установим пакеты Autokey Ubuntu со страницы GitHub. Загрузите указанные ниже файлы из здесь



  • autokey-common_x.xx.x-x_all.deb
  • autokey-gtk_x.xx.x-x_all.deb или autokey-qt_x.xx.x-x_all.deb (скачать только один)

После загрузки файлов выполните следующие команды по порядку:





$судоподходящийустановить./autokey-common_0.95.8-0_all.deb
$судоподходящийустановить./autokey-gtk_0.95.8-0_all.deb

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



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

Импортироватьвремя
keyboard.send_key('')
time.sleep(0,25)
keyboard.send_key('')
time.sleep(0,25)
keyboard.send_key('')
time.sleep(0,25)
keyboard.send_key('')

Чтобы добавить этот сценарий в AutoKey, запустите приложение, а затем щелкните видимую папку или щелкните созданную вами настраиваемую папку, чтобы выделить ее. Нажмите на Файл> Создать> Скрипт пункт меню, чтобы создать новый скрипт внутри этой папки, как показано на снимке экрана ниже:

Переименуйте этот сценарий в Quicksave и поместите в него приведенный выше код. Затем нажмите кнопку Hotkey внизу, как показано на скриншоте ниже:

На следующем экране нажмите кнопку «Нажать для установки», а затем нажмите клавишу, чтобы сопоставить ее со сценарием.

Ключ:(Никто)изменится на Ключ:<f5>.

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

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

Обратите внимание, что мы изменили функциональность ключа глобально во всей ОС, пока AutoKey работает и закреплен на панели задач. Чтобы ограничить его конкретным окном или приложением, вам нужно будет указать правила для окна, нажав кнопку «Фильтр окон» внизу.

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

Если вы ищете правильные имена клавиш для использования в скриптах AutoKey Python 3, можно найти список всех специальных кодов клавиш, используемых в AutoKey. здесь . Любой ключ, не упомянутый на странице выше, может быть вставлен в одинарные или двойные кавычки. Пример: keyboard.send_key (‘5’), keyboard.send_key (‘p’) и т. Д.

Пример 2: выпейте два зелья здоровья подряд в ролевой игре

Предположим, что горячая клавиша для питья зелья здоровья в вашей игре - это следующий сценарий:

keyboard.send_key('час',повторитьзнак равно2)

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

Пример 3: режим серийной стрельбы для пистолета в шутере

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

# кнопки мыши: левая = 1, средняя = 2, правая = 3
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)
mouse.click_relative_self(0,0,1)

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

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

Пример 4. Создание пользовательского игрового меню / превращение игры в реальном времени в пошаговую.

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

Взгляните на эту картинку:

В папке GameMenu я создал подпапку под названием Show. И GameMenu, и папка Show имеют дочерние элементы. Вот код, который я поместил в каждый дочерний элемент:

  • Инвентарь: keyboard.send_key (‘i’)
  • Карта: keyboard.send_key (‘m’)
  • Назад к игре: keyboard.send_key (‘’)
  • Переключиться на автомат: keyboard.send_key (‘2’)
  • Переключиться на SMG: keyboard.send_key (‘1’)

Здесь папка GameMenu сопоставлена ​​с ключом, и вот как это выглядит внутри запущенной игры:

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

Небольшая демонстрация этого примера в формате GIF (щелкните изображение или щелкните правой кнопкой мыши и откройте GIF в новой вкладке, если анимация остановится ниже):

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

Этот пример будет работать с играми от случая к случаю. Однако в моем тестировании я достиг довольно хороших результатов как с родными играми, так и с играми Steam Proton / Wine.

Заключение

Все примеры, упомянутые здесь, являются базовыми, в основном ориентированными на геймеров Linux. Они охватывают только часть мощного API AutoKey. AutoKey может автоматизировать большую часть вашего рабочего процесса, используя функции создания сценариев для повседневного или сложного программного обеспечения. Еще несколько примеров доступны в официальная документация приложения.