DCS & Lua: «Кликабельность» через стандартный ввод

В предыдущей статье я описал структуру файла clickabledata.lua, который предоставляет информацию о всех кликабельных элементах кокпита.
В статье был описан способ передачи команд в симулятор по средствам export.lua, но существует еще один, менее очевидный, но более "дружественный" с точки зрения конечного пользователя, способ — передача команд по средствам стандартного ввода (спасибо Alex O’kean за предоставленную информацию).
Кратко концепция изложена на форуме.
 
Я немного доработал концеп, предложенный Alex-ом, и вот что у меня получилось — маленький мод для ввода, который позволяет использовать любое устройство, поддерживаемое DCS в качестве устройства ввода, для отправки "кликабельных" команд кокпита в симулятор.
 
Мод добавляет в стандартную настройку ввода в симуляторе действия для отправки команд напрямую "кликабельным" устройствам.
Действия разбиты по категориям, каждая категория — отдельное "кликабельное" устройство.
Тип команды указан в конце названия, в скобках. Также указано системное имя команды, как оно значится в clickabledata.lua
 
Команды (commands) типа BTN:
— могут пересекаться с уже имеющими командами в симуляторе
— отрабатывается как команда нажатия, так и отпускания (т.е. ведет себя как настоящая кнопка)
Команды (commands) типа TUMB
— имеется возможность установить тумблер в конкретное положение, используя кнопку на устройстве ввода
 
Имя действия равно его описанию, которое "всплывает" при наведении мышью на "кликабельном" элемент во время игры.
Также могут встречаться действия с одинаковым описание, но разными системными устройства. Второй вариант в этом случае имеет именование "*-COVER", что соответсвует защитной крышке тумблера или кнопки.
 
Команды типа LEV в текущей реализации не поддерживаются
 
Пара скриншотов:
image

image
 
 
Для установки мода необходимо:
1. Скачать архив (or ENG version)
2. Папку MJOY16 из архива скопировать в \Scripts\Aircrafts\Ka-50\Cockpit\
3. Файл device_init.lua из архива скопировать в "\Scripts\Aircrafts\Ka-50\Cockpit\" с заменой существующего, предварительно сделав резервную копию
4. Переименовать файл default.lua.joy в default.lua и скопировать в "\Config\Input\Aircrafts\ka-50\joystick\", предварительно сделав резервную копию.
5. Переименовать файл default.lua.keyb в default.lua и скопировать в "\Config\Input\Aircrafts\ka-50\keyboard\", предварительно сделав резервную копию.
6. Переименовать все файлы назначений (имеют формат "имя_устройства (GUID-устройства).lua") в папках "\Config\Input\Aircrafts\ka-50\keyboard\" и "\Config\Input\Aircrafts\ka-50\joystick\". ВНИМАНИЕ! После этого все настройки кнопок сбросятся на значение по умолчанию!
6. Запустить игру
 
Решение проблем:
Если у вас вдруг не работает данный мод, действия следующие:
1. Выходим из симулятора
2. Редактируем файл "\Scripts\Aircrafts\Ka-50\Cockpit\MJOY16\MJoy16_macros.lua" (КРАЙНЕ не рекомендуется использовать для этого стандартный Блокнот), заменяем строку "DEBUG = false" на "DEBUG = true"
3. Запускаем симулятор, заходим в настройки ввода, проверяем, что все кнопки назначены правильно и конфликтов нет.
4. Запускаем "Быструю Миссию", пробуем несколько раз нажимать настроенные кнопки.
5. Выходим из игры
5. Находим файл "\Temp\MJoy16_macros.log" и его содержимое отправляем мне в ПМ на форуме или комментарием к этой записи, с описание чего хотели и что получилось/не получилось.

Оставьте комментарий