???
Математика на уровне МГУ

Показано с 1 по 25 из 195

Тема: Маппер джойстика SVMapper от Nihil

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Апдейт до версии 1.0.0.56

    Докладываю - сегодня созрел апдейт до версии 1.0.0.56 (см. первый пост в ветке - аттач заменил там).

    Два основных изменения:
    - сохранение в INI-файлы,
    - реализованы паузы между повторами.

    Косметика:
    - изначально программа стартует, будучи свернутой в трей.

    Поддержка старых профилей - от версии 1.0.0.51 осталась. Но теперь в них не следует сохраняться, так как поля задержек там отсутствуют.

    Процитирую себя из readme_rus.txt:
    - сохраняйте профили в INI-файлы, так как в формате SVM поддерживаются не все поля.
    - тем пользователям, которые переходят с версии 1.0.0.51 на более позднюю, рекомендуется пересохранить имеющийся профиль в формате INI.

    Теперь займусь вопросом поддержки хаток.

  2. #2
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    55
    Сообщений
    535

    Re: Апдейт до версии 1.0.0.56

    Цитата Сообщение от Nihil Посмотреть сообщение
    Докладываю - сегодня созрел апдейт до версии 1.0.0.56 (см. первый пост в ветке - аттач заменил там).

    Два основных изменения:
    - сохранение в INI-файлы,
    - реализованы паузы между повторами.

    <...Skipped...>

    Теперь займусь вопросом поддержки хаток.
    Молодчина!!!
    Два дня отсутствовал, сегодня заглянул, а тут такая приятная новость!
    Вечером проверю на домашней машине, и скорее всего, если в описанном функционале багов не обнаружится, Joy2key будет отправлен на свалку истории (мне хатки пока не актуальны).
    Добавлено:
    После некоторых шевелений мозгами и вспоминаний что куда у меня замаплено, понял, что таки актуально ;-)
    Спасибо, так держать!!!
    Крайний раз редактировалось Oleg_BS; 22.02.2007 в 16:10.
    Чукча не писатель, чукча - читатель.

  3. #3
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    55
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Саша, потестировал я тут самую малость 1.0.0.56 и нашел пару небольших багов:
    1) config.ini пишется в тот же подкаталог, куда сохраняется последний профиль. Соответственно, если профиль лежит не в каталоге с ехе-шником, то при запуске config.ini не находится и последний профиль не подгружается, приходится выбирать ручками через меню.
    2) При открытии профайла не обновляется экран программы. Т.е. назначенные в открытом профайле комбинации никак на интерфейсе не видны (показывается содержимое предыдущего профиля). Приходится через меню, ручками делать рефреш. Сделай плиз автоматический вызов функции рефреша сразу после выбора нового профайла.

    Ну и маленькое пожелание по косметике. Хотелось бы внизу окна иметь строку статуса, на которую выводить имя профиля. (как вариант, чтобы не перекраивать интерфейс, выводить имя файла профиля в заголовок окна, сразу после названия, так наверное даже лучше). Ну т.е. если у меня разные профили для ИЛ-2, ЛокОН и МСФС, то хотелось бы, не вдаваясь в подробности какая кнопка на что замаплена, видеть какой из профилей загружен.
    Чукча не писатель, чукча - читатель.

  4. #4
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    55
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    И еще...
    Мне кажется, что лучше было бы изменить структуру ini-файла профиля.
    Изменения нужны для того, чтобы было проще обмениваться профилями, пусть даже с ручной корректировкой файла профиля.
    Суть предлагаемых изменений следующая:
    - GUID (если уж без него не обойтись, писать как параметр описания джоя, наравне с названием, а не использовать в качестве имени параметра.
    Пример как есть сейчас:
    [{BEF0DEAD-0000-0000-0000-504944564944},{46015AD0-BC49-11DB-8001-444553540000},PPJoy Virtual joystick 1]
    NumberOfButtons=16
    [{BEF0DEAD-0000-0000-0000-504944564944},{46015AD0-BC49-11DB-8001-444553540000},PPJoy Virtual joystick 1\Button1]
    OnDownCount=1
    OnDown=4
    OnDownRepeat=1
    Пример как хочется:
    [Joystick1]
    GUID = {BEF0DEAD-0000-0000-0000-504944564944},{46015AD0-BC49-11DB-8001-444553540000}
    JoyName = PPJoy Virtual joystick 1
    NumberOfButtons=16
    NmberOfPOV=1
    [Joystick1\Button1]
    OnDownCount=1
    OnDown=4
    OnDownRepeat=1
    Зачем? Да просто если использовать чужой профиль, то GUID и имя джоя придется менять только в ОДНОМ месте профиля, а не глобальным поиском по всему файлу. Да и читабельность (ИМХО) на порядок лучше. Размер файла опять таки уменьшится.

    А вот поддерживать совместимость со старым форматом профиля ИМХО лишняя трата времени и сил.

    И последнее. Опять таки ИМХО. Расширение профиля по умолчанию, лучше все таки сменить со стандартного ini на тот же .svm (хотя по содержанию, это останется ini-файл).
    Зачем? Ну например чтобы четко прописать соответствие типу файла .svm вызову программы маппера. Т.е. кликнул по файлу профиля, автоматом загрузился маппер и открыл данный профиль (ну ленивый я).
    Для этого конечно надо доработать маппер, чтобы ему в параметрах коммандной строки (при запуске) можно было передавать путь к файлу профиля.
    Это конечно рюшечки, и их можно оставить на потом, но согласись было бы удобно
    Крайний раз редактировалось Oleg_BS; 22.02.2007 в 16:42.
    Чукча не писатель, чукча - читатель.

  5. #5
    ED Team Аватар для USSR_Rik
    Регистрация
    16.08.2003
    Адрес
    Belarus, Minsk
    Сообщений
    2,450

    Re: Маппер джойстика SVMapper от Nihil

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

    А вот это должно решить много вопросов:
    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Расширение профиля по умолчанию, лучше все таки сменить со стандартного ini на тот же .svm (хотя по содержанию, это останется ini-файл).
    Зачем? Ну например чтобы четко прописать соответствие типу файла .svm вызову программы маппера. Т.е. кликнул по файлу профиля, автоматом загрузился маппер и открыл данный профиль (ну ленивый я).
    Для этого конечно надо доработать маппер, чтобы ему в параметрах коммандной строки (при запуске) можно было передавать путь к файлу профиля.
    Создаем несколько профилей, вытаскиваем ярлыки - вуаля! Пиши хоть батник, а кто хочет - может и по нужному ярлыку профиля кликнуть.

    Ну и по макросам - очень хотелось бы. Чтобы можно было текстом написать (условно):

    Joy1_XXXXXX_Button17_OnPress = {W} {Pause 58} {R} {Pause 20} {W}
    ...чего уж тигру лишняя полосочка... (© - не помню)

  6. #6
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    55
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от USSR_Rik Посмотреть сообщение
    Ну и по макросам - очень хотелось бы. Чтобы можно было текстом написать (условно):

    Joy1_XXXXXX_Button17_OnPress = {W} {Pause 58} {R} {Pause 20} {W}
    Присоединяюсь к просьбе о макросах.
    ИМХО если реализовывать этот функционал, то необходимо не забыть возможность указания не только эмуляции нажатия клавиатурной клавиши, но и ее отпускания. Т.е. типа:
    SHIFT {20} R {20} r {20} shift, что в переводе на русский значит
    Нажали Shift, пауза 20 мс, нажали R,пауза 20 мс, отпустили R, пауза 20 мс, отпустили Shift. Короче говоря БОЛЬШИМИ буквами - нажатие, маленькими - отпускание.
    Это даст возможность реализовывать сложные клавиатурные комбинации типа Ctrl+Alt+Shift+E, регулировать продолжительность нажатия (ну например для "порционирования" пулеметно-пушечных очередей) и т.д.

    Что касается реализации, то, опять таки ИМХО, ручное редактирование строки не самый оптимальный вариант. Лучше сделать по принципу Сайтековского маппера - ручками жмешь нужные кнопы, они пишутся (с подсчетом и вводом длительности пауз между нажатиями) и есть возможность ручной корректировки длительности пауз (только пауз, поскольку легче контролировать ввод - только числовые значения).

    Теперь пару слов по интерфейсу.
    Строку макроса записывать прямо в поля "Mapped Key On Press" и "Mapped Key On Release". Кстати, туда же, лучше писать и название загружаемого профиля, возможно предваряя его каким то префиксом, например PR:"D:\SVMapper\Su27.svm"
    Тем самым, при наращивании функционала, окно маппера не разрастается вширь, и все рабочее пространство используется максимально эффективно.
    Для того, чтобы маппер понял, чего же нужно запихивать в это поле (комбинацию, профиль, макрос) лучше всего реализовать контекстное меню по правому клику на поле:
    "Очистить строку"
    "Клавиша"
    "Макрос"
    "Профиль"
    "Редактировать"
    При выборе соответствующего пункта, получаем дополнительное окно в котором и производим требуемое действо.
    Ну и действительно, подсветка выбранной строки, не помешала бы.

    Саша, мы в тебя верим!
    Чукча не писатель, чукча - читатель.

  7. #7

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Саша, потестировал я тут самую малость 1.0.0.56 и нашел пару небольших багов:
    1) config.ini пишется в тот же подкаталог, куда сохраняется последний профиль. Соответственно, если профиль лежит не в каталоге с ехе-шником, то при запуске config.ini не находится и последний профиль не подгружается, приходится выбирать ручками через меню.
    Поправил - теперь config.ini ищется (и пишется) исключительно в каталог с программой.

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

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Ну и маленькое пожелание по косметике. Хотелось бы внизу окна иметь строку статуса, на которую выводить имя профиля. (как вариант, чтобы не перекраивать интерфейс, выводить имя файла профиля в заголовок окна, сразу после названия, так наверное даже лучше).
    Вообще-то вывод в заголовок пути и имени профиля еще в 1.0.0.50 был сделан. См. скриншот из программы от USSR_Rik
    http://forum.lockon.ru/attachment.ph...0&d=1171813345
    В заголовке окна явственно видна надпись "SV Mapper - D:\1C\SVMapper\LO_FC.svm"
    У меня тоже надпись подобная выводится. С поправкой на то, что путь другой к профилю. Может быть, как-то подробней можно описать возникающую ситуацию с невыводом в заголовок имени профиля?

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Зачем? Да просто если использовать чужой профиль, то GUID и имя джоя придется менять только в ОДНОМ месте профиля, а не глобальным поиском по всему файлу. Да и читабельность (ИМХО) на порядок лучше. Размер файла опять таки уменьшится.
    Пока что мне удобней именовать секции в формате [{ProdGUID},{InstanceGUID},ProductName<\subsection>]
    То, что так в одном месте менять придется - это я обдумывал, но пока что так сделать было легче.
    А так - я просто невооруженным взглядом вижу навязчивую мысль сделать именно так, чтобы номера джойстиков фигурировали в профиле

    Также могу отметить, что автоматическую замену с Replace All вроде бы никто не отменял, разве нет? С данной функцией при редактировании профиля не составит разницы - в одном месте поправить или в пяти десятках.
    Вообще редактирование профиля вручную, согласись, это работа опциональная, разовая, не требующая каждодневных усилий на этой почве.
    Отмечу также, что задачи разработки удобного для ручного редактирования формата файла и просто формата файла для сохранения конкретных данных несколько различны по своей постановке.
    Не вдаваясь в подробности - проще отдать указатель на структуру в памяти и сказать, сколько байт писать в файл, начиная с этого места, и потом в обратную сторону - аналогично - читаем в память с такого-то места из файла, начиная с такой-то позиции столько-то байт. А синтаксический разбор значений, с попутной проверкой, есть ли они вообще файле или отсутствуют напрочь - уже совсем другое дело.
    Что проще реализовать? Конечно, первый вариант.

    О размере файла... Конечно, кощунственно прозвучит, но в эру гигабайтных винчестеров, разница - 5 кб или 30 кб не видна. И то и другое займет ничтожную величину от общего дискового объема.
    Можно, конечно, говорить о программистском заговоре - они навязчиво заставляют покупать винты чудовищных объемов, хотя можно обойтись и меньшим
    В конечном счете размер файла при указанных характерных объемах - совсем не решающий аргумент в пользу выбора формата именования секций.

    Цитата Сообщение от Oleg_BS Посмотреть сообщение
    Для этого конечно надо доработать маппер, чтобы ему в параметрах коммандной строки (при запуске) можно было передавать путь к файлу профиля.
    Конечно, было бы удобней

    Цитата Сообщение от Aim
    Потестил я тоже эту прогу, кроме багов в интерфейсе, заметил невозможность замапить клавишу Del. Вместо ее мапится NumDel.
    Стало быть, клавиатурный контроллер конкретно твоей клавиатуры выдает скан-код NumDel в ответ на нажатие. Сканд-код клавиши Delete в десятичной системе счисления равен 211.
    Из DX SDK: DIK_DELETE = 0xD3.
    Соответствующая этому коду строковая константа в программе - просто 'Del'.
    Соответственно, как получается NumDel - я не в курсе.
    Если это слово прописывает непосредственно та игра, для которой мапятся кнопки после нажатия кнопки джойстика при включенном маппере, стало быть игра обрабатывает поток ввода с клавиатуры несколько иначе - возможно, используя манипуляции с MapVirtualKey(..,..)
    Проверь, какой скан-код кнопки мапится в SV Mapper'е, посмотрев в ini-файл профиля.
    Должно быть OnDown = 211.
    -
    По итогам - перевесил 1.0.0.57 с небольшой кучкой исправлений по пунктам сообщений Oleg_BS.

  8. #8
    Механик Аватар для Oleg_BS
    Регистрация
    26.07.2002
    Адрес
    Киев, Украина
    Возраст
    55
    Сообщений
    535

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от Nihil Посмотреть сообщение
    Вообще-то вывод в заголовок пути и имени профиля еще в 1.0.0.50 был сделан.
    Снова вынужден признать что я балбес
    У меня тоже работает! Наверное просто в голову первой пришла мысль о статусбаре, посему на заголовок взглянуть не удосужился.

    Пока что [выделено Oleg_BS] мне удобней именовать секции в формате [{ProdGUID},{InstanceGUID},ProductName<\subsection>]
    То, что так в одном месте менять придется - это я обдумывал, но пока что так сделать было легче.
    А так - я просто невооруженным взглядом вижу навязчивую мысль сделать именно так, чтобы номера джойстиков фигурировали в профиле
    Не, честно говорю, никакого заговора и навязчивых идей нет
    Мне кажется что выбраный формат менее нагляден нежели предлагаемый, поэтому я свои 5 копеек (предложение) и вынес на обсуждение.
    ИМХО, стоит сразу тщательно продумать структуру ini-файла, дабы впоследствии не пришлось ее менять, поскольку если руки дойдут до этого на финише ("этап рюшечек") то кол-во созданых профилей, и, соответственно кол-во сил на перемапливание, умноженное на кол-во пользователей маппера, будет на порядки больше нежели сейчас.
    Именно поэтому я и выделил начало фразы в цитате.

    Ведь давай посмотрим с другой колокольни. Был формат svm. Зачем его предложили заменить на ini. Чтобы было удобнее пользоваться нам, пользователям продукта. Хотя кидать в бинарный файл структуру данных было легче, но вняв настойчивым просьбам, ты перешел на .ini
    Чувствуешь к чему я клоню?

    По итогам - перевесил 1.0.0.57 с небольшой кучкой исправлений по пунктам сообщений Oleg_BS.
    Спасибо! Таки Joy2Key уйдет на свалку
    Чукча не писатель, чукча - читатель.

  9. #9
    азиатор
    Регистрация
    12.01.2004
    Адрес
    Voronezh
    Возраст
    42
    Сообщений
    712

    Re: Маппер джойстика SVMapper от Nihil

    Цитата Сообщение от Nihil Посмотреть сообщение
    Стало быть, клавиатурный контроллер конкретно твоей клавиатуры выдает скан-код NumDel в ответ на нажатие. Сканд-код клавиши Delete в десятичной системе счисления равен 211.
    Из DX SDK: DIK_DELETE = 0xD3.
    Соответствующая этому коду строковая константа в программе - просто 'Del'.
    Соответственно, как получается NumDel - я не в курсе.
    Если это слово прописывает непосредственно та игра, для которой мапятся кнопки после нажатия кнопки джойстика при включенном маппере, стало быть игра обрабатывает поток ввода с клавиатуры несколько иначе - возможно, используя манипуляции с MapVirtualKey(..,..)
    Проверь, какой скан-код кнопки мапится в SV Mapper'е, посмотрев в ini-файл профиля.
    Должно быть OnDown = 211.
    Дык в конфиге так и записано, но правда я проверял в notepad . Печатает точку, вместо удаления символов. Попробую в Локоне, напишу результат.
    aim and fire

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •