Jump to content
I./SG2_Foxmann

HOTAS WARTHOG. Файлы конфигурации.

Recommended Posts

А я не скриптом Уколов. Я через обычный gui.

Мне же там ничего сложного не нужно. Все через gui.

Понял. Я тоже поначалу в gui делал. Если будет время, BaTHuk, кинь файл с gui - я сам эту строку найду...

А вообще в скрипте можно кучу вещей делать полезных. Я например одним нажатием одновременно закрываю оба радики на яке на 60 и 30 %, и соотв-но обратно

Share this post


Link to post
Share on other sites

 

 

сли будет время, BaTHuk, кинь файл с gui - я сам эту строку найду..
 

 

А где он лежит примерно ?

Share this post


Link to post
Share on other sites

 

 

А где он лежит примерно ?

 

Нашел уже. Но сделать как хочу не получается(

Share this post


Link to post
Share on other sites

Помогите пожалуйста.

Ну как в мануале по таргету понять следующее.

 

Там показаны примеры, конкретных функций, TEMPO, CHAIN и тд..

Но как эти функции соединять ? Или использовать друг в дружке ?

 

Например.

В манауле раздел про TEMPO:

TEMPO(key1, key2, delay) delay is optional (500 milliseconds is a good value); задержка имеет произвольное значение (500 миллисекунд - приемлемая величина)

Пример: MapKey(&Joystick, TG1, TEMPO('x', 'y')); //Короткое нажатие даст x, длинное нажатие даст y

MapKey(&Joystick, TG1, TEMPO('x', 'y', 1000)); //тоже что и выше, если удерживаете кнопку более 1 секунды

 

 

Все понятно, просто копипаст и все работает.

Но как теперь вместо X и Y вставить например USB коды ?

Про которые сказано:

MapKey(&input device, button name, usb event);

MapKey(&Joystick, TG2, USB[0x07]); // usb код для «D» 

 

 

Как я не пробовал, вставлял USB[0x07] в кавычки, убирал USB из кавычек. Не получается.

 

 

Или например, как  в функции TEMPO (то есть две клавиши на одной кнопке в зависимости от нажатия) вставить функцию DOWN и UP ?

Чтобы не просто нажималась и условная "X", а нажималась b удерживалась некоторое время и затем уже отпускалась ?

Вот как это использовать вместе с TEMPO ?

 

 

 

 

Или если есть более короткий путь, помогите пожалуйста.

У меня есть файл GUI. Все настроено как мне нужно, за исключением двух кнопок приближения и отдаления.

Сейчас у меня там стандартно все, во возможностям GUI. То есть нажал, удерживается некоторое время кнопка приближения в игре, и происходит зум.

Нажал еще раз, еще зум. Короче просто все и очень геморно в бою. По сто раз нажимать.

А я хочу использовать TEMPO. То есть короткое нажатие  чтобы давало зум на определенное значение,а долгое нажатие - моментальный и резкий зум.

 

Можно ли как то взять этот мой GUI  и переделать в таргет скрипт , просто поменяв все что касается приближения и отдаления ?

Или обязательно все по новой писать ?

Уже голова болит от этого таргета . :(

Edited by LetNab*

Share this post


Link to post
Share on other sites

А я хочу использовать TEMPO. То есть короткое нажатие  чтобы давало зум на определенное значение,а долгое нажатие - моментальный и резкий зум.

Я бы рекомендовал на короткие нажатия максимальный/минимальный зум, на длительные плавное приближение/отдаление. (у меня именно так, мне удобно). Если не опередят, вечером кусок кода постараюсь выложить.

Share this post


Link to post
Share on other sites

Я бы рекомендовал на короткие нажатия максимальный/минимальный зум, на длительные плавное приближение/отдаление. (у меня именно так, мне удобно). Если не опередят, вечером кусок кода постараюсь выложить.

В идеале я бы хотел вообще избавиться от плавного.

А вот так:

Короткое нажатие - дает половинное приближение. То есть ровно наполовину от максимального. Но не плавный и медленный зум ибо он иногда подтормаживает картинку в игре, через приблизить\отдалить. А резкий и моментальный, но наполовину хода "зума".

Еще одно короткое - еще одна половина (уже максимальное ).  То есть в два шага.

 

 

Но при этом, чтобы одно продолжительное нажатие на эту же кнопку,  давало моментальный и максимальный зум.

 

Я пока не понимаю, возможно ли это вообще. Потому как моментальный зум в игре возможен только если скорость камер выставить на 100.

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

 

 

Спасибо за помощь. Правда я так понимаю, что если человек не разбирается в этих кракобякозяврах, то настроить он ничего не сможет.

Почитал мануал, дошел до раздела EXEC и понял что это все. Финиш. :(

Не понимаю почему они поленились запихнуть этот скрипторедактор в графическую оболочку, чтобы все могли настраивать как хотят свои кабаны.

 

Тут оказывается и оси можно настроить, и ось чтобы меняла положение при нажатии кнопки.

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

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

То есть если включен тумблер форсажа, то он включится, если тумблер подсветки приборов стоит в положении ВКЛ, она включится.

Если тумблер нагнетателя стоит в положении 1-скорость, то он не включится, а если стоит в положении  2-скорость, то включится 2-скорость.

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

 

А мне приходится постоянно  перед вылетом тумблеры возвращать в "стартовое" положение. :(

Edited by LetNab*

Share this post


Link to post
Share on other sites

Блин. Ну вот что не так.

Ну нет примера этого в мануале черт бы его побрал..

 

 

 MapKey(&Throttle, MSR, TEMPO('USB[0x57]''USB[0x57]', 700));

 

Просто написано, Для ввода кода USB используйте синтаксис: USB[0xХХ]. . А как его использовать, куда вставлять, до или после, или внутри...ничего не написано.

 

А уж как в это вставить еще и DOWN и UP..  :dash:  :dash:  :dash:

 

Ведь мне надо чтобы короткое нажатие давало down и up через 100мс. А продолжительное нажатие, чтобы давало down и up через 300мс.

Возможно ли такое ?

 

 

Методом тыка получилось ! УРА !

 MapKey(&Throttle, MSR, TEMPO(USB[0x57], USB[0x57], 700));

 

Как теперь сделать так, чтобы USB57  при коротком нажатии, "нажималась "на определенное время и затем отжималась ?

В GUI это press и release.

Edited by LetNab*

Share this post


Link to post
Share on other sites

Вот так вот не хочется запускаться.

 

 MapKey(&Throttle, MSD, TEMPO(DOWN+'d',D(500),UP+'d''d', 700));

Share this post


Link to post
Share on other sites

"Короткое нажатие - дает половинное приближение. То есть ровно наполовину от максимального. Но не плавный и медленный зум ибо он иногда подтормаживает картинку в игре, через приблизить\отдалить. А резкий и моментальный, но наполовину хода "зума".


Еще одно короткое - еще одна половина (уже максимальное ).  То есть в два шага.


 


Но при этом, чтобы одно продолжительное нажатие на эту же кнопку,  давало моментальный и максимальный зум.


 


Я пока не понимаю, возможно ли это вообще. Потому как моментальный зум в игре возможен только если скорость камер выставить на 100.


А если скорость будет по 100, то как тогда выставлять половинное значение. Слишком уж быстро оно зумирует."


 


Думаю что возможно. Здесь мы ограничены минимально длительностью импульса в 25ms, ниже которого Винда просто не воспримет нажатие кнопки.


Играясь длительностью импульса, назначаемого непосредственно перед командой num+ и num-, и возвращая длительность назад сразу после её выполнения, можно посмотреть на сколько происходит приближение и "поймать" середину опытным путем, даже при 100% ной скорости камеры. Но это мои предположения, нужно проверять. Если это так, то скорость камеры нельзя потом менять, иначе настройка будет работать по другому.


 


 SetKBRate(25, 33); // PULSE составляет 25 мс, D() составляет 33 мс - в мануале выставляет принудительно длительности для всего кода.

  • Upvote 1

Share this post


Link to post
Share on other sites

Вот так вот не хочется запускаться.

 

 MapKey(&Throttle, MSD, TEMPO(DOWN+'d',D(500),UP+'d''d', 700));

Для команды TEMPO обработка клавиш импульсная вся по умолчанию. Смотри внимательнее мануал. Описано раньше в этой теме товарищем LLIopox . Покури начало темы. Он свой код выкладывал, там, на сколько я помню именно так как ты хочешь сделано.

Edited by =FPS=Olega

Share this post


Link to post
Share on other sites

Вот тебе код. Наваял, попробуй:

//начало

SetKBRate(65, 33); // PULSE составляет 65 мс, D() составляет 33 мс

MapKey(&Joystick,H4U,TEMPO(CHAIN(DOWN+USB[0x57],D(65),UP+USB[0x57]),CHAIN(DOWN+USB[0x57],D(250),UP+USB[0x57]),500));//Приближение взглядом пошагово (Num(+)) / Приближение взглядом мгновенно (Num(+)) 
MapKey(&Joystick,H4D,TEMPO(CHAIN(DOWN+USB[0x56],D(65),UP+USB[0x56]),CHAIN(DOWN+USB[0x56],D(250),UP+USB[0x56]),500));//Удаление взглядом пошагово (Num(-)) / Удаление взглядом мгновенно (Num(-))
// конец
 
Камеры все по 100 у меня стоят. D(65) - первую задержку лучше меньше не делать, чем длительность импульса, а то плохо срабатывает. Можешь чуть поиграть ей, подстроив как тебе надо, но не более чем "мгновенное приближение"
  • Upvote 1

Share this post


Link to post
Share on other sites

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

Edited by =FPS=Olega

Share this post


Link to post
Share on other sites

 

 

SetKBRate(65, 33); // PULSE составляет 65 мс, D() составляет 33 мс

Я не советую в скриптах менять времена отклика клавиш.

Учитывая, что сим хреново обрабатывает по инпуту комбинации клавиш с Ctrl, Shift, Alt, SetKBRate выставлять (подбирать) нужно один раз.

Манипулируя с параметрами функции SetKBRate можно получить проблемы с гарантированным срабатыванием комбинаций клавиш с Ctrl, Shift, Alt.

Share this post


Link to post
Share on other sites

У меня были смутные подозрения по этому поводу :unsure: . Поэтому я в приведенном коде регулирую не длительностью импульса нажатия клавиши, а длительностью ЛОКАЛЬНОЙ, РАЗОВОЙ задержки между DOWN и UP. Касательно длительности в скриптах. Если в коде длительность импульса не прописана явно, то она по умолчанию принимается равной 25ms для импульсных нажатий. У меня при такой длительности как раз и были глюки на хатке H4, пока я не разобрался и не прописал явно 65ms, при котором все нажатия гарантировано работают. (т.е. для моей системы это и есть минимальный стандарт)

Share this post


Link to post
Share on other sites

. Обычные системы, ( не триммеры), то в принципе даже если стоит некий модификатор, то минимальное время для того чтобы игра увидела - это 15мс. Замерял сам по многу раз.

Например переключение ступеней нагнетателя у меня стоит на LShift+S.

D GUI это выглядит так :

Shift - press

S- pulse c задержкой 15мс. То есть S нажимается после 15мс после того как нажат shift.

Shift- Release  без задержки. мгновенно отжимается после S-Pulse.

 

Хотя поначалу я ставил с запасом на все: о 45-50мс, и после SHift press и тд. И везде где есть какая то комбинация клавиш.

Но этого не требуется на самом деле.  Однажды я озадачился и сидел высчитывал.

 

 

В игре есть другое. Например если мне нужно два раза нажать на ВКЛ\ВЫКЛ подсветку, чтобы выключить ее. Ведь сначала включается панель, а потом освещение и только на третий раз она выключается.

Я забиндил на тумблер. - Вверх включить. А вниз-  выключить через быстрое двукратное нажатие этой клавиши. Так вот с этой системой выставлять надо 70мс. То есть для игры это минимальное время. Если меньше, то срабатывает только одно нажатие.

 

 

Самое плохо настраиваемое это триммеры, ни настроить их никак, от слова совсем.

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

Если мне нужно выставить триммер ровно -9%, то это та еще история.

 

Я не понимаю почему они такую мудренную систему сделали.

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

Share this post


Link to post
Share on other sites

"Если мне нужно выставить триммер ровно -9%, то это та еще история" - сегодня вечером гляну в коде у себя как делал. 

Share this post


Link to post
Share on other sites

"Если мне нужно выставить триммер ровно -9%, то это та еще история" - сегодня вечером гляну в коде у себя как делал. 

Я выставил 25мс и в Таргет GUI и в проге ВКБ. DOWN и UP если по скриптовому языку.

Но все равно иногда проскакивает. Но это самое оптимальное значение.

Share this post


Link to post
Share on other sites

У меня на D(65)ms два-три щелчка выходит от min к max, но это работает как то неравномерно, я бы даже сказал неустойчиво. Или я отвык от такого способа совсем. Скорее всего у меня кнопка H4 такая уж. Поэтому вернулся на плавный зум по длительным нажатиям, и мгновенно min/max на быстрых нажатиях. В плавном зуме, естественно скорость, кроме как камерой отрегулировать нельзя. Для камеры 100 она не очень большая и следовательно можно только уменьшить.

Edited by =FPS=Olega

Share this post


Link to post
Share on other sites

Коллеги, принимайте в свои ряды нового эксплуатанта TW Warthog.

С официального сайта скачал драйверы и прочее, касающееся этого прибора, а также БзС. Споткнулся на первом же шаге. На Рабочем столе нет иконки TARGER GUI. Эту программку надо где-то отдельно скачать?

Спасибо. 

Share this post


Link to post
Share on other sites

Вопрос снимаю, нашел все. Правда, другая напасть - сбились виды и F9 не хочет работать, но не здесь.

Share this post


Link to post
Share on other sites

Мои настойки 4-ой хатки под большой палец.   Самое интересное в возможности быстро прильнуть к прицелу. Может пригодиться кому.

     //H4 zoom
    MapKey(&Joystick, H4U, AXIS(DX_YROT_AXIS, -200, 2));//zoom in
    MapKey(&Joystick, H4D, AXIS(DX_YROT_AXIS, 200, 2));//zoom out
    MapKey(&Joystick, H4R, AXIS(DX_YROT_AXIS, -(AMAX*2)+21000, 10000));//quick zoom
    MapKeyR(&Joystick, H4R, AXIS(DX_YROT_AXIS, AMAX*2, 10000));//quick zoom release

    MapKey(&Joystick, H4L, PULSE+'o');  //map

Share this post


Link to post
Share on other sites

Всем привет.

Возможно ли через GUI сделать бесконечное нажатие\отжатие какой то кнопки на клаве ? 

Например: пока тумблер в положении ВКЛ - нажимается и отжимается какая то клавиша с нужной мне задержкой между нажатием и отжатием.

Как только переведено в положение ВЫКЛ, этот импульс нажатий перестает работать.  

 

Возможно ли такое в обычном GUI?

Edited by LetNab*

Share this post


Link to post
Share on other sites

Помогите пожалуйста.

Перешел окончательно с GUI на скрипт эдитор. Вроде все работает как я и хотел.

 

Единственное, не могу заставить работать подсветку LEDов при нажатых тумблерах.

Чтобы не приходилось перед нажатием кнопки "начать" дергать все тумблеры.

У меня так было на GUI один взгляд, и если тублер горит, просто перевожу его в "начальное" положение. 

 

Например.

 MapKey(&Throttle, EACON, PULSE+'g');
MapKeyR(&Throttle, EACON, PULSE+'g');

 

Например хочу, чтобы когда тумблер на котором шасси был в положении ON,чтоб загорался LED1.

MapKey(&Throttle, EACON, PULSE+'g');
MapKeyR(&Throttle, EACON, PULSE+'g');

MapKey(&Throttle, EACON, LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1));

MapKey(&Throttle, EACOFF, LED(&Throttle, LED_ONOFF, LED_CURRENT-LED1));

 

Но оно не работает почему то. Либо не горит ЛЕД, либо LED горит, но перестает работать сама кнопка на EACON.

 

Что я делаю не так ?

Edited by LetNab__

Share this post


Link to post
Share on other sites

Когда вы мапите чтото сначало на кнопку потом на диод вы по сути перезатираете предыдущее действие.

Вам здесь нужен CHAIN, тоесть последовательность действий(нажали "g", а потом включили диод)

MapKey(&Throttle, EACON, CHAIN(PULSE+'g',LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)));

Ну и по аналогии..

  • Upvote 1

Share this post


Link to post
Share on other sites

Когда вы мапите чтото сначало на кнопку потом на диод вы по сути перезатираете предыдущее действие.

Вам здесь нужен CHAIN, тоесть последовательность действий(нажали "g", а потом включили диод)

MapKey(&Throttle, EACON, CHAIN(PULSE+'g',LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)));

Ну и по аналогии..

Спасибо тебе, добрый человек.  :)

Share this post


Link to post
Share on other sites

Когда вы мапите чтото сначало на кнопку потом на диод вы по сути перезатираете предыдущее действие.

Вам здесь нужен CHAIN, тоесть последовательность действий(нажали "g", а потом включили диод)

MapKey(&Throttle, EACON, CHAIN(PULSE+'g',LED(&Throttle, LED_ONOFF, LED_CURRENT+LED1)));

Ну и по аналогии..

Спасибо, заработало.

 

 

А можно както вставить "LED_ONOFF..."  до кнопок ?

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

 

Грубо говоря у меня на одной CHAIN есть down и up с задержкой более чем в 10сек. Можно ли сделать наоборот ?

 MapKey(&Throttle, FLAPD, CHAIN(DOWN+ 'r', D(13600), UP+ 'r',LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2)));

Share this post


Link to post
Share on other sites

Да, если я правильно понял вас.  Можно в любое место добавить:
 MapKey(&Throttle, FLAPD, CHAIN(LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2),DOWN+ 'r', D(60*10), UP+ 'r'));

 

Соответственно: Диод, нажали, задержка, отпустили.

  • Upvote 1

Share this post


Link to post
Share on other sites

Да, если я правильно понял вас.  Можно в любое место добавить:

 MapKey(&Throttle, FLAPD, CHAIN(LED(&Throttle, LED_ONOFF, LED_CURRENT+LED2),DOWN+ 'r', D(60*10), UP+ 'r'));

 

Соответственно: Диод, нажали, задержка, отпустили.

Приветствую. Может и тут поможете ? Уже не знаю куда копать.

 

В профиле у Шороха нашел вот такие строки.

//Ограничитель мощности
MapKey(&Throttle,BSF,EXEC("SetJCurve(&Throttlr,THR_LEFT,100,100)"));
MapKeyR(&Throttle,BSF,EXEC("SetCustomCurve(&Throttlr,THR_LEFT,LIST(0,0,50,50,95,95,95,100))"));
MapKey(&Throttle,BSB,EXEC("SetCustomCurve(&Throttlr,THR_LEFT,LIST(0,0,50,50,93,93,93,100))"));
MapKeyR(&Throttle,BSB,EXEC("SetCustomCurve(&Throttlr,THR_LEFT,LIST(0,0,50,50,95,95,95,100))"));
//Конец
 
При копипасте, они не работают. То есть нажатие на BSB или BSF ничего не дает.
Хотя задумка понятна, и очень бы мне пригодилась.

В самом скриптредакторе это выглядит вот так:

Я только поменял THR_LEFT на THR_RIGHT
47ad42aec91468cc75d3e6732a0ce6e0.jpg
Edited by LetNab__

Share this post


Link to post
Share on other sites

 

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

 

А вот это сработает при загрузке профиля?

Что бы эти куски сработали нужно тумблером щеклкнуть или я ошибаюсь?

"И дальше я бы так сделал:

MapKey(&Throttle,FLAPU, EXEC("SetCustomCurve(&Throttle,THR_RIGHT,listFull);"));//инициализация ограничения наддува

MapKey(&Throttle,FLAPМ, EXEC("SetCustomCurve(&Throttle,THR_RIGHT,listСut1);"));//инициализация ограничения наддува

MapKey(&Throttle,FLAPD, EXEC("SetCustomCurve(&Throttle,THR_RIGHT,listCut2);"));//инициализация ограничения наддува"

Я этот кусок написал для активации кривых в соответствии с положением тумблера при запуске профиля:

"    if (Throttle[FLAPU]) SetCustomCurve(&Throttle,THR_RIGHT,listFull);//инициализация ограничения наддува

    if (Throttle[FLAPM]) SetCustomCurve(&Throttle,THR_RIGHT,listCut1);//инициализация ограничения наддува

    if (Throttle[FLAPD]) SetCustomCurve(&Throttle,THR_RIGHT,listCut1);//инициализация ограничения наддува"

Как это работает ? У меня ничего не работает, даже скрипт не запускается.  :(

Share this post


Link to post
Share on other sites

У меня так:

https://yadi.sk/d/xjBuc6R33FFqCi

https://yadi.sk/d/8hxlSZ1x3FFqMn

 

После включения тумблера ограничение  начинает работать, только если пошевелить ручку. Пока её не тронешь, не работает. 

Как победить не знаю.

Edited by olegiy

Share this post


Link to post
Share on other sites

У меня так:

https://yadi.sk/d/xjBuc6R33FFqCi

https://yadi.sk/d/8hxlSZ1x3FFqMn

 

После включения тумблера ограничение  начинает работать, только если пошевелить ручку. Пока её не тронешь, не работает. 

Как победить не знаю.

Хм...Так это ограничение под ограничитель на самом руде ? Та пимпочка которую нужно перевернуть ?

Share this post


Link to post
Share on other sites

Скрипт изменяет форму кривой  руда. 

Share this post


Link to post
Share on other sites

0,0,50,50,95,95,95,100 -   линии между данными  прямые только? есть какой-то параметр сглаживания?

Share this post


Link to post
Share on other sites

Скрипт изменяет форму кривой  руда. 

 

 

 

Вообще конечно не такого хочется от ограничителя наддува. Хочется чтобы буквально он ограничивался.

Чтобы в конце хода физического РУДа, было не 100% а 90 или 70% и тд. И чтобы эти 90% и 70% можно было менять тумблером.

 

То есть когда тумблер впереди, у тебя 100\100, нажал тумблер на себя стало - 100\90%, еще раз на себя - 100\70%.

 

 

Вот как так сделать ? И чтобы подсветка как то показывала, какое сейчас стоит положение.

 

 

Я так сделал, то мне удалось только на одной оси.  Через SetCustomCurves  это прекрасно можно настроить.

 

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

После включения тумблера ограничение  начинает работать, только если пошевелить ручку. Пока её не тронешь, не работает. 

Как победить не знаю.

У тебя не ограничение. Кривая меняется да, но ограничения никакого нет. Как было 100\100, так и и в любом положении тумблера FLAP будет 100\100.

 

 

Ограничение это когда в конце физического хода, у тебя не 100%, а например 75%.

Edited by LetNab__

Share this post


Link to post
Share on other sites

 

После включения тумблера ограничение  начинает работать, только если пошевелить ручку. Пока её не тронешь, не работает. 

Как победить не знаю.

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

 

А как прикрутить к этому всему подсветку ? Чтоб подсветка реагировала на положение тумблера ?

Edited by LetNab__

Share this post


Link to post
Share on other sites

Парни, помогите пожалуйста разобраться еще с приближением и отдалением.

 

Вот так у меня стоит сейчас:

 

//////ПРИБЛИЖЕНИЕ
MapKey(&Throttle, MSR, CHAIN(DOWN+ '5', D(730), UP+ '5')); 

Это плавный зум.

 

В игре  есть два типа приближения и отдаления.

1 - "Увеличить\Уменьшить"  скорость этого зума никак не настраивается, он очень плавный.

2 - "Приближение взглядом" и "Отдаление взглядом". Скорость этого зума можно настроить через настройки камеры.

 

У меня клавиши 5 и 4 назначены на "Увеличить\Уменьшить". То есть на плавный зум.

А клавиши "+" и "-" на нумпаде назначены на "Приближение взглядом" и "Отдаление взглядом", скорость которых можно настроить.

 

 

 

Вопрос:

Как прикрутить к нынешнему скрипту команду TEMPO ?

Чтобы было так : одно короткое нажатие давало бы плавный зум через "Увеличить\уменьшить" и команду Down и Up - кнопки "5" и "4". - То бишь плавно приблизить на нужное значение.

 

Но чтоб одно продолжительное нажатие на эту же кнопку MSR, давало бы быстрый и максимальный зум через "Приближение взглядом" со скоростью 100 в настройках камеры.

 

Можно это как то сделать ?

Получается разные команды, разные кнопки, да еще и с Down и UP.  И все это еще через TEMPO. Возможно ли такое ?

Share this post


Link to post
Share on other sites

 

 

Чтобы было так : одно короткое нажатие давало бы плавный зум через "Увеличить\уменьшить" и команду Down и Up - кнопки "5" и "4". - То бишь плавно приблизить на нужное значение.   Но чтоб одно продолжительное нажатие на эту же кнопку MSR, давало бы быстрый и максимальный зум через "Приближение взглядом" со скоростью 100 в настройках камеры.

 

Так не получится. Плавно приблизить на некоторое значение можно, но это самое значение в момент остановки будет всегда немного разным. Как бы ты ни ставил длительность задержки или импульса, комплекс обработки Винды будет выполнять команду с разной скоростью, т.к. задача не приоритетная (во наговорил :wacko: ) . Я с этим поигрался и бросил, чем проще, тем лучше.  У меня сделано наоборот: короткое нажатие - мгновенное приближение/удаление, продолжительное нажатие - плавный зум до момента отпуска кнопки. Реализовано ч/з ТЕМПО с задержкой 0,3-0,5 с на одних и тех же кнопках. Касательно скорости приближения/удаления проверить бы (к сожалению сейчас временно не летаю):

- отключить ось Z в трекире (у меня отключена), и проверить будет ли работать скорость зуммирования из игры (я не проверял)

- задрать скорость в кривых отключенной оси Z трекира и посмотреть будет ли меняться скорость приближения (тоже не додумался проверить пока) 

 

"Но чтоб одно продолжительное нажатие на эту же кнопку MSR, давало бы быстрый и максимальный зум через "Приближение взглядом" со скоростью 100 в настройках камеры." - конкретно к этому: если в игре скорость 100 - это и есть мгновенное перемещение из одного крайнего положения в другое.

Share this post


Link to post
Share on other sites

Можно настроить плавное приближение и удаление при долгом нажатии. И три фиксированых вида при кратком нажатии. Для этого надо мой скрипт глянуть и видео мрХ по настройке обзора. У меня почти как в старом иле. При кратком нажатии 120-60-30. А при длительном плавно приблидает и удаляет.

Edited by LLIopox

Share this post


Link to post
Share on other sites

Покурил руководство и профиль от 72AGs_LLIopox, получилось примерно так:

 

    int listFull, listCut1, listCut2;

    listFull = LIST(0,0,1,0,99,100);//функции для ограничителя наддува

    listCut1 = LIST(0,0,1,0,64,100);//функции для ограничителя наддува

    listCut2 = LIST(0,0,1,0,90,100);//функции для ограничителя наддува

       

    MapAxis(&Throttle,THR_RIGHT,DX_Z_AXIS);//сопоставление правой части рудера и оси DirectX, надув

    if (Throttle[FLAPU]) SetCustomCurve(&Throttle,THR_RIGHT,listFull);//инициализация ограничения наддува

    if (Throttle[FLAPM]) SetCustomCurve(&Throttle,THR_RIGHT,listCut1);//инициализация ограничения наддува

    if (Throttle[FLAPD]) SetCustomCurve(&Throttle,THR_RIGHT,listCut1);//инициализация ограничения наддува

    MapKey(&Throttle,FLAPU,EXEC("SetCustomCurve(&Throttle,THR_RIGHT,listFull);"));//переключение ограничения наддува

    MapKeyR(&Throttle,FLAPU,EXEC("SetCustomCurve(&Throttle,THR_RIGHT,listCut1);"));//переключение ограничения наддува

    MapKey(&Throttle,FLAPD,EXEC("SetCustomCurve(&Throttle,THR_RIGHT,listCut2);"));//переключение ограничения наддува

    MapKeyR(&Throttle,FLAPD,EXEC("SetCustomCurve(&Throttle,THR_RIGHT,listCut1);"));//переключение ограничения наддува

 

64 и 90 значения ограничителя, которые нужно подобрать под самолет

 

Что интересно, конструкции типа "инициализация ограничения наддува" оказались рабочими

Runtime error in Execute: Symbol not found: listFull, in "SetCustomCurve(&Throttle,THR_RIGHT,listFull);"

Runtime error in Execute: Symbol not found: listCut1, in "SetCustomCurve(&Throttle,THR_RIGHT,listCut1);"

Runtime error in Execute: Symbol not found: listCut1, in "SetCustomCurve(&Throttle,THR_RIGHT,listCut2);"

 

В чем ошибка?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...