Skip to content

Latest commit

 

History

History
64 lines (47 loc) · 5.65 KB

README.md

File metadata and controls

64 lines (47 loc) · 5.65 KB

MaKros - клавиатурный макрос на языке C#

Существуют широко известные программы, позволяющие выполнять скрипты по нажатию клавиш (например AutoHotkey). Эти программы используют для перехвата нажатий клавиш простой метод, называемый hooking. Однако в некоторых играх (например в Mortal Kombat XL) стоит защита, и там такой подход не работает. Программа MaKros работает на уровне драйвера операционной системы, поэтому будет работать в абсолютно любом приложении. Также преимуществом MaKros является то, что комбу можно прервать в любой момент.

Видеодемонстрация: https://www.youtube.com/watch?v=ozy5-q20ZT0

ВНИМАНИЕ! Программа работает только с клавиатурой. С геймпадом не работает. Это не является недостатком, так как на клавиатуре куча кнопок, на которые можно назначить разные комбинации.

Программа состоит из двух частей: драйвер клавиатуры и собственно сама программа. Драйвер взят отсюда: https://github.com/oblitum/Interception. Когда вы устанавливаете драйвер, в папку c:\Windows\System32\drivers\ копируются два файла: keyboard.sys и mouse.sys.

Шаг 1. Установка драйвера клавиатуры

  1. Зайдите в папку Драйвер
  2. Запустите InstallDriver.bat от администратора (правой кнопкой на InstallDriver.bat и "Запуск от имени администратора")
  3. Перезагрузите компьютер

Шаг 2. Проверка работы

  1. Зайдите в папку MaKros
  2. Запустите MaKros.exe (это скомпилированный пример скрипта)
  3. Нажмите Num Lock для активации скрипта
  4. Проверьте работу программы в любом текстовом редакторе (какие кнопки нажимать смотрите ниже)
  5. Завершите программу нажатием F12

Возможности примера

Пример демонстрирует работу программы в игре Mortal Kombat XL.

Q - командный захват Горо, когда персонаж справа от противника.
E - командный захват Горо, когда персонаж слева от противника.
X - нижний удар, а затем кулачная прогулка (когда персонаж слева от противника).
M - нижний удар, а затем кулачная прогулка (когда персонаж справа от противника).

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

Удерживать F - длинная комба, когда противник справа от персонажа.
Удерживать H - длинная комба, когда противник слева от персонажа.
Отпустить F или H - прервать выполнение комбы.

Удерживать C - бесконечное землетрясение.

Если не работает

Я протестировал программу на трех компах с разными версиями Windows. У других юзеров также всё работает.

  1. Если программа вообще не запускается, то проверьте, что у вас установлена платформа .Net Framework. Для этого проверьте наличие папки c:\Windows\Microsoft.NET\Framework\v4.0.30319. Если такой папки нет, то установите https://dotnet.microsoft.com/download/thank-you/net472-offline.
  2. Если пример запускается, но не реагирует на нажатия, то возможно вы просто не нажали Num Lock.
  3. Проверьте также наличие файлов keyboard.sys и mouse.sys в папке c:\Windows\System32\drivers. Если их нет, значит вы не установили драйвер. Файл InstallDriver.bat нужно обязательно запускать от Админа, а после установки драйвера обязательно нужно перезагрузить компьютер.

Где взять комбы?

Есть хороший сайт с комбами для Mortal Kombat X и Mortal Kombat 11: https://inthedark.pro/mortal-kombat-x-combos/, https://inthedark.pro/mortal-kombat-11-combos/. По поводу других файтингов посоветовать ничего не смогу.