Перейти к публикации

Рекомендованные сообщения

Опубликовано: (изменено)

Всех приветствую. Fighterstick в декабре начал плохо откликаться на тангаж, зачастую это делает с большой задержкой или застревает на треть не возвращаясь в центр, но если несколько раз его принудительно вернуть к центру то идёт на место. Возникла мысль временно поменять местами резюки(на крен будет не так критично), предполагаю, что один работает на крен другой на тангаж, но точно не знаю, подскажите так ли это. Буду очень благодарен.

 

Разобрал его, вижу картину

 

a1_033.jpg

 

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

 

Ещё помню в теме обсуждали покупку контроллеров, получилось у кого их заказать?

Изменено пользователем Gray
Опубликовано:

там всё просто

гляди какой резюк крутица на оси когда тянешь тангаж а какой когда тянешь крен

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

надолго ли это помогает не могу сказать.......попробуй , напишешь потом результат.
  • Поддерживаю! 1
Опубликовано:

Там же три резюка, поэтому имхо на замену лучше взять именно «третий» - от колёсика.

Что касается «совместных» закупок, то вроде бы только 2ndSS joker в итоге потенциометры купил. Это если мой склероз меня не обманывает.

  • Поддерживаю! 1
Опубликовано:

 

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

 

Там же три резюка, поэтому имхо на замену лучше взять именно «третий» - от колёсика.

Что касается «совместных» закупок, то вроде бы только 2ndSS joker в итоге потенциометры купил. Это если мой склероз меня не обманывает.

 

Понял, благодарю. Вечером буду пробовать.

Опубликовано: (изменено)

 

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

 

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

 

 

 

post-17274-0-98522800-1421250638_thumb.jpg

 

post-17274-0-62920500-1421250649_thumb.jpg

 

post-17274-0-92992800-1421250656_thumb.jpg

 

 

 

В калибровке по крену(что глючил) кажется пока всё в порядке

 

 

 

 

 но ближе к центру он до пересадки стал несколько притормаживать и думаю проявится позже, разбирать резюк не решился, буду искать в продаже, но летать уже можно  :drinks:  

Изменено пользователем Gray
  • 1 месяц спустя...
Опубликовано: (изменено)
Реализовать аналоговое триммирование, которые разработчики неожиданно зажали от нас, посредством скриптов Control Managera, это всего одна строка кода. И этот скрипт 

даже прописан в примере #7 из мануала. Однако есть серьёзный конфликт! Дело в том, что пока вы используете линейную характеристику отклика, диапазон входных и 

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

характера. Совсем другое дело при использовании "сглаживающих" кривых. В этом случае при необходимости, например, "сдвинуть" выходное значение вверх на ~20% придется 

сдвигать вашу кривую влево >50%! И ваша "передаточная характеристика" будет выглядеть мягко говоря криво( рис.1 ). Вы теряете ~45% выходных значений, и "обжимаете" ~на 30% ход РУСа. Не сильно поможет и использование уже упоминавшегося масштабирования (рис.2). Диапазон значений хоть и будет восстановлен, но вот характер кривой становится весьма далек от того, который вы настраивали изначально... На рисунках реальные скрины, полученные на JoyTester 2 при установки в Control Managere всего лишь 

"среднего" значения "Gain and Response" в ГИП. Но мало того. Неважно где фомируется кривая - в Control Managere или средствами игры. Результат будет схож... а потому что 

наше триммирование выступает лишь как аргумент передаточной  функции, и соответственно может лишь сдвигать кривую влево-вправо... А нам-то надо вверх-вниз (см.рис.3)!

Посему переходим к собственному программированию кривых отклика. Подойдет неполный полином вида ax^n+bx+c. Из всех вариантов вполне приемлимые кривые 

получаются при 3-й и 4-й степени. Меняя b от 1 до 8-10 можно получить кривую от прямой линии до максимально искривленной (При b > 8-10 изменения становятся 

незначительными). Т.е. менять "чуствительность", что называется "на лету" (причем лучше, чем как это делатся в Control Managere;)).  Для сравнения на рис.5 и рис.6 полиномы 

3-й и 5-й степени соответственно для разных значений b. Предлагаемая арифметика позволяет "триммироваться" сохраняя масштаб кривой во всем диапазоне входных и выходных значений (рис.7 и рис.8).

 

1. Аналоговое триммирование от 3-й оси джоя - колесика "газа". Крутизна - 3-й степени. Вид получающихся кривых - на рис.4).



// CMS Script File
// Аналоговое триммирование С масштабированием оси
// и регулируемой кривизной отклика
//

%define jsy js1.a2 // назначаем ось для обработки
%define dy a1 // величина смещения - триммирования (по Y)
%define dvy a2 // расчетное смещение оси
%define mult_z3 a3 // знаменатель для полинома 3-й степени
%define B a5 // множитель линейной составляющей
//
SCRIPT
// начальные установки
if (firstscan) then // выполняется при первом запуске скрипта...
  B = 4; // коэффиуиент для линейной компоненты. По умолчанию 1:4
  mult_z3 = 128*128*128; // вычисляем коэфф. масштабирования для кривой 3-й степени
endif
// ... вычисляем значение CMS оси для каждой "половинки" хода РУС...
  if ([jsy >127]) then // для "верхней" половины хода РУС
    dvy = jsy - 127; // переносим "ноль" в центр диапазона
    cms.a1 = 127 + (dvy*dvy*dvy*(127-127/B+dy))/mult_z3 + dvy/B + dy;
  else // теперь для "нижней" половины...
    dvy = 127 - jsy; // переносим "ноль" в центр диапазона
    cms.a1 = 127 - (dvy*dvy*dvy*(127-127/B-dy))/mult_z3 + (dvy)/B - dy;
  endif
// в качестве триммера - колесико (ось JS1.A3)
dy = (js1.a3-127)/4; // вычисляем смещение. Ход = +1/4...-1/4 от хода
// 
sequence// Регулировка крутизны отклика. Уменьшаем крутизну до 1:1...
  wait( js1.b7 ); // по нажатию В2
  if ([B>1]) then
    B=B/2;
  endif
endsequence
//
sequence // увеличиваем крутизну до 1:8...
  wait( js1.b9 ); // по нажатию В2
  if ([B<8]) then
    B=B*2;
  endif
ENDSEQUENCE
ENDSCRIPT


..для РОФ чит беспрецендентный!... а что делать ;)

 

2. "Электронное триммирование "по кнопке" (а-ля пример #3 из мануала или продвинутый вариант от Terrora):



// CMS Script File

// Регулируемая кривая отклика +
// + триммирование С масштабированием
//
%define jsy js1.a2 // обозначаем ось для обработки
%define dy a1 // величина смещения - триммирования (по Y)
%define dvy a2 // расчетное смещение оси
%define mult_z3 a3 // знаменатель при x^3
%define B a5 // множитель линейной составляющей
%define permit_control b1 // флаг разрешения управления cms-осью от оси джоя (JS - CMS)
//
SCRIPT
// начальные установки
if (firstscan) then // выполняются при первом запуске скрипта...
  dy = 0; // смещение = 0
  B = 4; // коэффиуиент для линейной компоненты. По умолчанию 1:4
  permit_control = true; // управление JS-CMS разрешено
  mult_z3 = 128*128*128; // вычисляем коэфф. А. для кривой 3-й степени
endif
//
if( permit_control and (not js1.b2) ) then // Если B2 не нажата и разрешено управление JS-CMS...
// ... вычисляем значение CMS оси... для каждой "половинки" хода РУС...
  if ([jsy >127]) then // для "верхней" половины хода РУС
    dvy = jsy - 127; // пересчет X оси для координат с нулями в центре
    cms.a1 = 127 + (dvy*dvy*dvy*(127-127/B+dy))/mult_z3 + dvy/B + dy;
  else // теперь для "нижней" половины...
    dvy = 128 - jsy; // пересчет для оси Y
    cms.a1 = 127 - (dvy*dvy*dvy*(127-127/B-dy))/mult_z3 + dvy/B - dy;
  endif
endif
//
sequence // расчет смещения...
  wait( js1.b2 ); // по нажатию В2
  dy = cms.a1-127; // собственно, вычисляем смещение
  permit_control = false; // выключаем флаг разрешения управления...
endsequence // до тех пор, пока...
// ...РУС не будет возвращен в центр...
if ([jsy==127] OR [jsy==128]) then permit_control = true; endif
//
sequence// сброс "триммера"
  wait( js1.b3 ); // по нажатию В3 сбрасываем смещение в ноль
  dy = 0;
endsequence
// регулировка крутизны отклика
sequence// уменьшаем крутизну до 1:1...
  wait( js1.b7 ); // по нажатию В2
  if ([B>1]) then
    B=B/2;
  endif
endsequence
//
sequence // увеличиваем крутизну до 1:8...
  wait( js1.b9 ); // по нажатию В2
  if ([B<8]) then
    B=B*2;
  endif
ENDSEQUENCE
ENDSCRIPT


Пару пояснений к коду... В приведенном скрипте - "крутизна" 3-й степени. В силу ограничения величины целочисленных значений, используемых для расчетов нельзя 

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

кода при "крутизне" 5-й степени:



%define mult_z3 a3 // знаменатель при x^3

%define mult_z2 a4 // знаменатель при x^2
......
  mult_z3 = 128*128*128; // вычисляем коэфф. А. для кривой 3-й степени
  mult_z2 = 128*128; // вычисляем коэфф. А. для кривой 2-й степени
.....
    cms.a1 = 127 + (dvy*dvy*(dvy*dvy*dvy*(127-127/B+dy))/mult_z3)/mult_z2 + (dvy)/B + dy;
...
cms.a1 = 127 + (dvy*dvy*(dvy*dvy*dvy*(127-127/B+dy))/mult_z3)/mult_z2 + (dvy)/B + dy;


Ещё пару нововведений: расчитывать потребное смещение не по значению оси РУС (JS1.A2), а по "выходному" значению оси CMS.A1. Это позволяет повторно корректировать 

значение триммирования без риска "скачка". А для сброса триммеров лучше задействовать лишнюю кнопку. После нажатия кнопки триммирования не держать её нажатой до 

возвращения РУС в центр, а "запрещать" управление (в коде логическое permit_control) до, как раз, возврата РУС в центр.

Удачных полетов...

post-877-0-11480200-1423999450_thumb.jpg

post-877-0-52699000-1423999480_thumb.jpg

post-877-0-63251200-1423999525_thumb.jpg

post-877-0-08066900-1423999600_thumb.jpg

post-877-0-92483600-1423999628_thumb.jpg

post-877-0-30917500-1423999654_thumb.jpg

Изменено пользователем =J13=Moroka
  • Спасибо! 1
  • Поддерживаю! 5
Опубликовано:

Зашумели резисторы на ch fighterstick, при перемещение палки джойстика значения x и y местами скачат на один пункт из 255. Вопрос, это как то повлияет на полёт или не стоит заморачиваться?

Опубликовано:

Зашумели резисторы на ch fighterstick, при перемещение палки джойстика значения x и y местами скачат на один пункт из 255. Вопрос, это как то повлияет на полёт или не стоит заморачиваться?

Это как тебе самому... если мешает - стоит, не мешает - не стоит... Для "одного пункта" вполне пойдет такой вариант или такой, если шум больше...

 

...очень круто! 

для РОФа прям то что доктор прописал.

Да уж, для РОФ чит знатный получился ;)

Но и для БЗС может пригодится... не в плане триммирования... черт уж с ним.... и с аналоговым то же...

а как возможность менять кривую "на лету"... Ибо в самом Managere сделано грубо :(

Опубликовано:

опс... нашел неточность...

в 1-м скрипте, где "аналоговое триммирование..." в строке

...

else // теперь для "нижней" половины...
    dvy = 127 - jsy; // переноси...

...

лучше исправить на dvy = 128 - jsy; (как в нижнем примере).

Вообще не сильно принципиально... "но порядок быть должон" 

... и в коментах есть мелкие неточности...  :blush:

ПС ... и очень осторожно надо с формулами если что-то менять... т.к. правило "от перестановки мест слагаемых (множителей) сумма (произведение) не меняется" здесь не работает :wacko: !

Опубликовано: (изменено)

Здравствуйте. Использую комплект из трех ПРО - СН устройств для полетов в космосиме Elite. Потребовалось назначить на оси тормозов педалей стрейфы в бок. Если напрямую назначить ось тормоза педали на стрейф в игре, то получаем постоянный стрейф в одну сторону, так как тормоз на педали не в центральном положении, а в нулевом.

Можно ли запрограммировать педали таким образом чтобы объединить две оси тормозов двух педалей в одну ось? Превратить педали из трехосных в двухосные, и игра могла видеть две оси как одну. Чтобы ось тормоза левой давала отклонение оси в одну сторону, а тормоз правой - в другую? Начальное положение педалей (тормоз не нажат) было как центральное положение оси.

Если это уже было, пожалуйста, просто напишите - было, ищи.

Спасибо

Изменено пользователем kutshai
Опубликовано:

Всех приветствую. Fighterstick в декабре начал плохо откликаться на тангаж, зачастую это делает с большой задержкой или застревает на треть не возвращаясь в центр, но если несколько раз его принудительно вернуть к центру то идёт на место. Возникла мысль временно поменять местами резюки(на крен будет не так критично), предполагаю, что один работает на крен другой на тангаж, но точно не знаю, подскажите так ли это. Буду очень благодарен.

 

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

 

Ещё помню в теме обсуждали покупку контроллеров, получилось у кого их заказать?

Если проблема всё еще актуальна-было то же самое, тангаж "плавал", не всегда возвращался в ноль или возвращался с задержкой..оказалось, что просто отходит один из трех конактов на резюке. Поджал их немного пасатижами (для верности можно и подпаять)...то же самое можно проделать и по остальным резюкам.

Опубликовано:

Где-то видел что паять эти потенциметры категорически не рекомендуется. Правда не помню где.

Опубликовано:

Здравствуйте. Использую комплект из трех ПРО - СН устройств для полетов в космосиме Elite. Потребовалось назначить на оси тормозов педалей стрейфы в бок. Если напрямую назначить ось тормоза педали на стрейф в игре, то получаем постоянный стрейф в одну сторону, так как тормоз на педали не в центральном положении, а в нулевом.

Можно ли запрограммировать педали таким образом чтобы объединить две оси тормозов двух педалей в одну ось? Превратить педали из трехосных в двухосные, и игра могла видеть две оси как одну. Чтобы ось тормоза левой давала отклонение оси в одну сторону, а тормоз правой - в другую? Начальное положение педалей (тормоз не нажат) было как центральное положение оси.

Если это уже было, пожалуйста, просто напишите - было, ищи.

Спасибо

 

можно. кто-то тут даже писал, но не помню выкладывали ли... но там писать то.

 

script
cms.a1=js1.a2/2+128-((js1.a1+1)/2);
endScript
  • Поддерживаю! 1
Опубликовано: (изменено)

 уже ответили...

Изменено пользователем =J13=Moroka
Опубликовано: (изменено)

Спасибо за подсказку про объединение осей, всё получилось в итоге, но пришлось разобраться с настройкой в Менеджере через мануал. А в мануале пример с объединением осей является самым первым примером по работе со скриптами ). Может нужно сделать какой-нибудь фастстарт для совсем новичков с выжимкой из мануала? Что где ткнуть, куда вписать, чтобы человек. которому подсказали мог не вдаваясь в детали просто внести все в Менеджер и забыть до следующей задачи по скриптованию. Если есть смысл - сделаю со скринами

 

Прошу извинить за нубский вопрос, но почему вы не используете в качестве обозначения центра оси выражение 255/2 ?

%define centeros 255/2

В тех скриптах, которые проглядел всегда используется либо 127, либо 128, в зависимости от желания или от стороны сравнения (стремимся слева или справа). Есть какие-то ограничения на использование переменных в скриптах? Т.е. везде можно использовать целочисленное значение, но не везде переменную? Или просто привычка? )

Изменено пользователем kutshai
Опубликовано: (изменено)

...Прошу извинить за нубский вопрос, но почему вы не используете в качестве обозначения центра оси выражение 255/2 ?

%define centeros 255/2

... 255/2 будет равно 127... а центр посередине, между 127-128... И когда надо посчитать именно отклонение от центра надо использовать 127 для "нижней" половины и 128 для "верхней"

ну и чтобы не считать каждый раз... ведь "centeros" это не переменная. тогда уж лучше:

%define centeros a1
...
if (firstscan) then centeros = 255/2; endif
...

...Есть какие-то ограничения на использование переменных в скриптах? Т.е. везде можно использовать целочисленное значение, но не везде переменную? Или просто привычка? )

Ограничения есть... во-первых это  связано с тем что вся арифметика целочисленная, (и переменные то же) во-вторых макс число ~231... 

Изменено пользователем =J13=Moroka
  • Поддерживаю! 1
  • 1 месяц спустя...
Опубликовано:

Братья пацаки :gamer: чё та давно мы тут новые скрипты не выдумывали.Дело в следующем :scratch_one-s_head:нужен мне скрипт переключателя.

Вот к примеру есть виртуальные кнопки cms.b1 и cms.b2.Они эмулируют нажатия кнопок A и B на клавиатуре.Но...мне нужно чтобы эмулировлись эти нажатия одной кнопкой РУДа, к примеру js1.b10.А вот выбор того,какая виртуальная кнопка будет срабатывать,должен осуществлятся кнопкой-переключателем,к примеру js1.b3. Например:При загрузке карты,по умолчанию срабатывает cms.b1(при нажатии js1.b10).Нажимаем-отпускаем кнопку-переключатель(js.b3) и теперь срабатывает cms.b2(при нажатии js1.b10).Нажимаем-отпускаем кнопку-переключатель и снова срабатывает cms.b1.Ну и так далее....

Заранее благодарен за помощь :salute:

Опубликовано: (изменено)
я не понял один момент - вы намеренно отказываетесь от использования в качестве модификатора кнопки js1.b1 (нажатие на министик), которая переключает лампочки? к этой кнопке (ну и лампочкам) привязана предопределенная переменная PROTHRMODE и с ее помощь можно сделать описанный вами "переключатель" сразу на три позиции.
вот так:
if ([PROTHRMODE==0]) then
  cms.b1=js1.b10;
else if ([PROTHRMODE==1]) then
  cms.b2=js1.b10;
else
  cms.b3=js1.b10;
endif
endif
 
если же хочется именно так, как описано - два положения по кнопке b3, то в принципе все тоже самое, но флаг придется объявить самостоятельно.
%define flag b1

script

sequence
  wait(js1.b3);
    flag=true;
  wait(js1.b3);
    flag=false;
endsequence

if (flag) then
  cms.b2=js1.b10;
else
  cms.b1=js1.b10;
endif

endScript

зы. но вообще ИМХО после скрипта Мороки про кривые тут уже нечего постить. Ну разве что попробовать синус в ряд тейлора разложить и в джойтестере нарисовать  :biggrin:

Изменено пользователем NobbyNobbs
  • Поддерживаю! 2
Опубликовано: (изменено)

если же хочется именно так, как описано - два положения по кнопке b3, то в принципе все тоже самое, но флаг придется объявить самостоятельно.

Ну да.... И можно чуть покороче

sequence
  wait( js1.b3 );
    b1 = not b1;
  endsequence
cms.b1 = js1.b10 and b1;
cms.b2 = js1.b10 and not b1;
зы. но вообще ИМХО после скрипта Мороки про кривые тут уже нечего постить. Ну разве что попробовать синус в ряд тейлора разложить и в джойтестере нарисовать

Постить и постить!!!  Пусть синус... пусть тейлора... Но ветка умереть НЕ ДОЛЖНА!!!! :)

Изменено пользователем =J13=Moroka
  • Поддерживаю! 2
Опубликовано:

 

 

я не понял один момент - вы намеренно отказываетесь от использования в качестве модификатора кнопки js1.b1 (нажатие на министик), которая переключает лампочки?

Эта кнопка нужна для других целей,мне удобно переключать js1.b3. :salute:

 

  • 3 недели спустя...
Опубликовано: (изменено)
У нас в игре имеется несколько "2-х позиционных" команд, висящих на одном переключателе. Например: вкл/выкл форсажа, переключение скоростей нагнетателя, уборка/выпуск шасси и ещё несколько аналогичных.

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

Это можно сделать например так:



// CMS Script File: Две кнопки из одного переключателя
%define FirstSw js1.b2; // По указанной здесь кнопке сработает первое переключение
%define SecondSw js1.b3; // ...а по этой следующее...

script
toggle (d1) = not cms.b1;
cms.b1 = (d1 and FirstSw) or (not d1 and SecondSw);
endScript


Рекомендуется на исполняющую кнопку назначить клавиатурные команды (Например" LShift + S" для нагнетателя). Т.к. в некоторых случаях может понадобиться быстро "переключить" соответствующий параметр с помощью клавиатуры, чтобы "попасть в соответствие" (например при старте новой миссии, если предыдущую вы закончили с включенной второй ступенью нагнетателя, закрытым/открытым фонарем, форсажом, и т.п.)

Изменено пользователем =J13=Moroka
  • Поддерживаю! 1
Опубликовано: (изменено)

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

Изменено пользователем 72AG_terror
Опубликовано:

 

 

1. обнулить все соответствующие флаги...
 

Кстати, тогда надо будет заменить

toggle (d1) = not cms.b1;

на

sequence

wait( js1.b3 );

    b1 = not b1;


  endsequence 

 

 

... 2. просто перезагрузить профиль.
 
Опубликовано:

Не успел отредактировать пост, как залочили :(

Хотел дописать, что, как уже обнаружил Zulu, таймера сбросить не получится, поэтому и надо менять на "sequence..."

Остается перегружать, что не так уж просто (по сравнению с "нажать комбинацию кнопок")... А было бы неплохо иметь такую возможность...

...но и она не исключает необходимости "согласования" кнопок. Поэтому лучше просто назначить две кнопки на одну команду и нет проблем :)

А скрипт нужен скорее, чтобы "апнуть" тему :

Опубликовано:

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

 

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

Опубликовано:

Moroka, ты прав, конечно. Я как-то об этом не подумал - невнимательно читаю скрипт. :)

Буду подумать на эту тему...

  • 1 месяц спустя...
Опубликовано:
Назначаю прямо в ГИП на кнопочки макросы символов. В частности команды для личного оружия: выбрать (Ctrl+1 - Ctrl+3)... выстрелить (Ctrl+Space)... убрать (Ctrl+`)... Раздельная/совместная стрельба из пушек/пулеметов: Space, Space+LAlt... +RAlt... то бишь с модальными клавишами.

Прописываю по правилам с HOLD: "HOLD LCTL 1"... "HOLD LCTL SPC; и.т.п.

Но в результате!... когда стреляю из ракетницы стреляют и пушки/пулеметы! (коротко)... Когда выбираю ракетницу - выбираются движки (на 2-х моторниках)!... убираю оружие, выводится меню команд!... Стреляю из пулеметов или пушек - в первый момент стреляет все (и по гашеткам видно)  

Смотрю KeyTest... ага! LCtl отпускаетя раньше!...

post-877-0-94698800-1433236382_thumb.jpg

Ладненько... меняем HOLD на KEYS: KEYS +LCTL +1 -1 -LCTL... Зарускаем KeyTest... 

post-877-0-48426300-1433236414_thumb.jpgТО ЖЕ САМОЕ!

Идем дальше... вводим искуственно задержку CHARDLY: KEYS +LCTL +1 -1 CHARDLY -LCTL...

post-877-0-44969800-1433236438_thumb.jpg Наконец-то правильная картинка!...

Лезем в игру... О_НЕЕЕЕТ!!!! опять не из того стреляет/выбирает... как буд-то ничего и не менялось!

С ListMode не легче... Зачем-то жмет кнопки повторно! ...со всеми вытекающими...

post-877-0-51700400-1433236459_thumb.jpg

Замучался... опять назначаю DXкнопки... а так хотелось c cmc файлом поработать...

Но всё таки как правильно?! ...или может у меня глюки с ПО? Может конфликтуют с Saitek Про Квадрант? Кстати грешу на последнее. У меня и по осям РУДа то же чудеса  :wacko:

Опубликовано:

когда стреляю из ракетницы стреляют и пушки/пулеметы! (коротко)... Когда выбираю ракетницу - выбираются движки (на 2-х моторниках)!... убираю оружие, выводится меню команд!... Стреляю из пулеметов или пушек - в первый момент стреляет все (и по гашеткам видно)

 

 

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

 

кстати по поводу HOLD прикол один есть.

 

найдите 1 отличие.

 

post-14111-0-71902000-1433255632_thumb.png

  • Поддерживаю! 1
Опубликовано: (изменено)

Ага!... всего лишь буковкой L отличается. Хороший ребус :) Возможно с тех времен и версий, когда менеджер не различал где сено, где солома где лево, где право. А потом "на костылях" доделали... не без причуд ;) . А что, надо попробовать!

 

Кстати, в переведенном описании не все коды клавиш вставили... KP* и KP- есть в родном и работают...

Изменено пользователем =J13=Moroka
Опубликовано:

...кстати по поводу HOLD прикол один есть...

...найдите 1 отличие...

Nobby, спасибо, отлично! Попадание в точку!

Нашлось ещё одно, самое главное отличие: с CTL всё работает как надо (в игре)! Но стоит прописать "предлог" L или R - Логика ломается! 

проверил с Alt, то же самое. Стоит прописать L или R - сразу появляется короткое ложное нажатие ("нажимается" всегда второй символ отдельно, без модификатора).

С Shift-ом не проверял, но возможна та же ошибка...

Опубликовано: (изменено)

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

Посетила идея как быть с предустановкой такого переключателя в положение соответственно игровой ситуации...

Для этого будем переключать переменную d из логического переключателя toggle без выполнения команды. А чтобы "отделить" команду от переключения используем короткое (для команды) и долгое (для переключения) нажатие на соотв кнопки. На примере шасси: Стартуешь с полосы - нажми и удерживай (~1 сек) кнопку "выпуска". (в скрипте "off"). Переключатель d установится в соответствующее положение, соответственно сработает только команда "уборка" шасси (в скрипте "on"), а "выпуск" блокируется. А если стартуешь в небе, соответственно жми и удерживай "уборка шасси". ...

Особенности работы: команда подаётся в момент отпускания, а не по нажатию соответствующей кнопки. Время срабатывания "долгого" нажатия: t в секции %define...

... ну и сам скрипт чуть разросся :( Можно, правда все эти %define выкинуть, тогда не так страшно получится


// CMS Script File: Две кнопки для одного переключателя
//
%define on js1.b16 // кнопка "вкл"
%define off js1.b14 // кнопка "выкл"
%define son b1 // короткое нажатие "вкл"
%define soff b2 // короткое нажатие "выкл"
%define lon b3 // долгое нажатие "вкл"
%define loff b4 // долгое нажатие "выкл"
%define t 6 // время для срабатывания долгого нажатия
//
script
cms.b1 = (d1 and son) or (not d1 and soff); // cms.b1 - кнопка нужной команды
toggle (d1) = (!cms.b1) and !(lon and d1) and !(loff and !d1);// нифигасебе какая длинная получилась :0
// Распознаем короткие и долгие нажатия
timer(period,d2,t)=on;
son = d2 and !on; // короткое нажатие "on"
lon = !d2 and on; // долгое нажатие "on"
timer(period,d3,t)=off;
soff = d3 and !off; // короткое нажатие "off"
loff = !d3 and off; // долгое нажатие "off"
endScript

...а мне вот чего попалась!

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

Оказывается уж больше года как Zulu уже всё знал!..., но зажал таки такой скрипт и молчал   ;), а мы тут мучайся... :)

Изменено пользователем =J13=Moroka
Опубликовано:

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

 

кстати по поводу HOLD прикол один есть.

 

найдите 1 отличие.

 

cmc.png

забавная находка :-)

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

Посетила идея как быть с предустановкой такого переключателя в положение соответственно игровой ситуации...

Для этого будем переключать переменную d из логического переключателя toggle без выполнения команды. А чтобы "отделить" команду от переключения используем короткое (для команды) и долгое (для переключения) нажатие на соотв кнопки. На примере шасси: Стартуешь с полосы - нажми и удерживай (~1 сек) кнопку "выпуска". (в скрипте "off"). Переключатель d установится в соответствующее положение, соответственно сработает только команда "уборка" шасси (в скрипте "on"), а "выпуск" блокируется. А если стартуешь в небе, соответственно жми и удерживай "уборка шасси". ...

Особенности работы: команда подаётся в момент отпускания, а не по нажатию соответствующей кнопки. Время срабатывания "долгого" нажатия: t в секции %define...

... ну и сам скрипт чуть разросся :( Можно, правда все эти %define выкинуть, тогда не так страшно получится

 

 

// CMS Script File: Две кнопки для одного переключателя
//
%define on js1.b16 // кнопка "вкл"
%define off js1.b14 // кнопка "выкл"
%define son b1 // короткое нажатие "вкл"
%define soff b2 // короткое нажатие "выкл"
%define lon b3 // долгое нажатие "вкл"
%define loff b4 // долгое нажатие "выкл"
%define t 6 // время для срабатывания долгого нажатия
//
script
cms.b1 = (d1 and son) or (not d1 and soff); // cms.b1 - кнопка нужной команды
toggle (d1) = (!cms.b1) and !(lon and d1) and !(loff and !d1);// нифигасебе какая длинная получилась :0
// Распознаем короткие и долгие нажатия
timer(period,d2,t)=on;
son = d2 and !on; // короткое нажатие "on"
lon = !d2 and on; // долгое нажатие "on"
timer(period,d3,t)=off;
soff = d3 and !off; // короткое нажатие "off"
loff = !d3 and off; // долгое нажатие "off"
endScript
...а мне вот чего попалась!

Оказывается уж больше года как Zulu уже всё знал!..., но зажал таки такой скрипт и молчал ;), а мы тут мучайся... :)

а чо, я так и не выложил?

  • 3 недели спустя...
Опубликовано:

Решил повозиться с экранными CMCC переменными screenx и screeny.

Читаются хорошо, а вот записать в них значение (и соответственно подвигать курсор) - никак :(

Есть у кого нибудь более успешный опыт, чем мой ?

Опубликовано:

Решил повозиться с экранными CMCC переменными screenx и screeny.

Читаются хорошо, а вот записать в них значение (и соответственно подвигать курсор) - никак :(

Есть у кого нибудь более успешный опыт, чем мой ?

 

привет.

вроде бы все работает (если CH Control Manager закрыт).

Опубликовано:

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

 

ну и чтобы зря добру не пропадать - вот не совсем удачный тестовый пример (неудачный потому что мышь перестанет фунциклировать - придется менеджер с клавиатуры запускать или министиком в ярлык прицеливаться  :)  )

 

%define centerx a1
%define centery a2
%define cursorx a3
%define cursory a4
 
script
 
centerx=screenwidth/2;
centery=screenheight/2;
 
cursorx=(js1.a1-128)*screenwidth/256;
cursory=(js1.a2-128)*screenheight/256;
 
  screenx=centerx+cursorx;
  screeny=centery+cursory;
 
endScript
 
  • Поддерживаю! 1
Опубликовано:

 

 

вроде бы все работает (если CH Control Manager закрыт).
 

Точно, работает...Главное контрол менеджер закрыть!

Спасибо, Nobby... 

...и чтоб я без твоих подсказок делал :)

  • 3 недели спустя...
Опубликовано:

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

Купил себе недавно CH PRO Throttle.

 

В настройках Windows USB Controller и в CH Control Manager всё вроде работает как надо. А вот в Elite: Dangerous, под который я его и брал, он у меня работает следующим образом: при нажатии на рычаг, сначала не происходит вообще ничего, до тех пор пока рычаг не достигает среднего положения - в этом момент скорость начинает резко увеличиваться, причем простая остановка рычага ничего не меняет - чтобы остановить увеличение скорости, приходится немного потянуть рычаг назад. Неудобно страшно, скорость контролировать вообще невозможно. До этого у меня был сайтек х52 - с ним никаких проблем не было.

 

В чем может быть дело?

 

Заранее благодарю за помощь.

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...