358Gann Опубликовано: 22 марта 2014 Опубликовано: 22 марта 2014 Ну наконец-то: http://s26.postimg.org/4snbjjynt/Clip9.jpg Cпасибо!
NobbyNobbs Опубликовано: 22 марта 2014 Автор Опубликовано: 22 марта 2014 (изменено) Ну наконец-то: http://s26.postimg.org/4snbjjynt/Clip9.jpg отлично! теперь у меня есть один риторический вопрос и две небольших ремарки. вопрос: нужно ли было нажимать кнопку mapped mode? но помня, о заповеди "работает - не трогай" ответ на него искать не будем. и ремарки: 1. mapped mode нужно активировать при каждом запуске системы. самый простой вариант - добавить в папку "автозапуск" ярлык на утилиту CMStart, которая лежит в директории Control Managera, тогда все будет активироваться автоматически при запуске Windows. Можно конечно и руками через Control Manager. 2. чувствительность оси 0.5. учитывая, что это не совсем чувствительность, а настройка кривой отклика, значение 0.5, на мой взгляд, является не самым удачным вариантом. вы имеете низкую чувствительность и высокую точность в центре, что замечательно, но очень острую реакцию рулей в крайних положениях, что при той эффективности рулей направления, которая есть в БЗС совсем не здорово. поэтому поиграйтесь со значениями в районе 0,25, мне кажется так должно быть удобнее. но если вам хорошо летается с кривыми выставленными в 0,5, то почему бы и нет. удачных полетов! а, ну да, чуть не забыл. здоровья! обязательно лечите спину. Изменено 22 марта 2014 пользователем saatanaperkele
NobbyNobbs Опубликовано: 23 марта 2014 Автор Опубликовано: 23 марта 2014 (изменено) Сейчас ломаю голову, как в режиме HOTAS управиться с доп. вооружением (ракетницы, пистолет - 6-7 команд), командами стрелкам и ведомым (всего 23 команды), и жестами (6 команд). Ну если не со всеми, то хотя бы с частью самых востребованных... Есть мысли какие нибудь на эту тему? появилась мысля на эту тему, только я ее человеческим языком выразить затрудняюсь. в общем и целом все сводится к тому "шифту", который где-то выше в теме написал Веспе, только мы его модернизируем следующим образом: 1. если мы не трогали шифт кнопка №1 работает, как кнопка №1 2. если мы один раз нажали на шифт, то кнопка №1 работает как кнопка №2; 3. если мы дважды нажали на шифт, то кнопка №1 работает как кнопка № 3. 4. если мы трижды... но это уже перебор имхо. итак, переключатель "режимов": sequence wait(js1.b4); if([a1<2])then a1=a1+1; else a1=0; endif endsequence cms.a1=a1; я думаю этот блок в комментариях не нуждается: при последовательном нажатии на кнопку b4 по кругу меняем значения оси a1 от 0 до 2 (cms.a1 я использовал чтобы протестировать этот кусок). дальше идет "расширенный алгоритм Веспе" для той четырехпозиционной хатки, которая под указательным пальцем: if (not (cms.b1 or cms.b2 or cms.b3)) then cms.b1=(js1.b5 and [a1==0]); cms.b2=(js1.b5 and [a1==1]); cms.b3=(js1.b5 and [a1==2]); else if (cms.b1) then cms.b1 =js1.b5; else if (cms.b2) then cms.b2 =js1.b5; a1=0; else if (cms.b3) then cms.b3 =js1.b5; a1=0; endif endif endif endif if (not (cms.b4 or cms.b5 or cms.b6)) then cms.b4=(js1.b6 and [a1==0]); cms.b5=(js1.b6 and [a1==1]); cms.b6=(js1.b6 and [a1==2]); else if (cms.b4) then cms.b4 =js1.b6; else if (cms.b5) then cms.b5 =js1.b6; a1=0; else if (cms.b6) then cms.b6 =js1.b6; a1=0; endif endif endif endif if (not (cms.b7 or cms.b8 or cms.b9)) then cms.b7=(js1.b7 and [a1==0]); cms.b8=(js1.b7 and [a1==1]); cms.b9=(js1.b7 and [a1==2]); else if (cms.b7) then cms.b7 =js1.b7; else if (cms.b8) then cms.b8 =js1.b7; a1=0; else if (cms.b9) then cms.b9 =js1.b7; a1=0; endif endif endif endif if (not (cms.b10 or cms.b11 or cms.b12)) then cms.b10=(js1.b8 and [a1==0]); cms.b11=(js1.b8 and [a1==1]); cms.b12=(js1.b8 and [a1==2]); else if (cms.b10) then cms.b10 =js1.b8; else if (cms.b11) then cms.b11 =js1.b8; a1=0; else if (cms.b12) then cms.b12 =js1.b8; a1=0; endif endif endif endif после нажатия кнопок хатки ось a1 сбрасывается в ноль, что освобождает нас от необходимости помнить в каком она положении находится. вот как-то так. мне кажется это даже может быть удобным, хотя таблицу с командами на первое время скорее всего придется распечатать. зы. писать то же самое еще для двух хаток мне было лень. ззы. архив с картой, состоящей из одного протроттла и скриптом Map.zip Изменено 23 марта 2014 пользователем saatanaperkele 1
=59=Moroka Опубликовано: 24 марта 2014 Опубликовано: 24 марта 2014 (изменено) Да! Это хорошее решение! Систематизирует команды в таблицу!... а не устраивает из РУДа кларнет с Shiftами и Ctrlами ...сейчас проникнусь "расширенным алгоритмом Веспе" и попробую набросать табличку... Спасибо! Изменено 24 марта 2014 пользователем =J13=Moroka
NobbyNobbs Опубликовано: 30 марта 2014 Автор Опубликовано: 30 марта 2014 (изменено) поездил с новой центровкой на лагге, обплевался и повесил советские тормоза на педали. две реальные оси привязаны к одной виртуальной, какая педаль нажата сильнее, та и отвечает за тормоза (сделал эту ось четвертой осью на педалях). код до безобразия элементарен. if([js3.a1>=js3.a2]) then cms.a4=js3.a1; else cms.a4=js3.a2; endif присобачить это к советским тормозам в игре можно двумя способами: отключив DX у реальных педалей назначить управление из игры, затем включить DX обратно, либо прописать в файле current.actions строку rpc_wheel_brakes, joy2_axis_t, 0| где вместо 2 может быть другая цифра. Изменено 30 марта 2014 пользователем saatanaperkele
=59=Moroka Опубликовано: 30 марта 2014 Опубликовано: 30 марта 2014 (изменено) ...когда в он-лайне на ЛАГГе, то до полосы и не добираюсь в лучшем случае аварийно в поле... т.е. на немецкие самолеты другой профиль? или переключешься режимами? ...кстати, составил удобную табличку команд... попробовал "расширенный алгоритм Веспе... потом попробовал его переделать... потом попробовал вариант на 2-х кнопках.. типа "1 точка-2 тире"... получил удовольствие от занятия программированием... и решил ... всё оставить как есть - на клавиатурных комбинациях тем более, что теперь табличка-то есть Изменено 30 марта 2014 пользователем =J13=Moroka 1
NobbyNobbs Опубликовано: 30 марта 2014 Автор Опубликовано: 30 марта 2014 т.е. на немецкие самолеты другой профиль? или переключешься режимами? эээммм... да по правде говоря я просто очень сильно затупил . совсем запарил, что общий тормоз и на немцев с те же успехом действует в общем там в #85 бред написан, надо как-то иначе выходить из положения с советскими самолетами... ну или другой профиль юзать, да, но тогда дополнительная ось тоже не нужна. это все от расстройства по безвременно или своевременно сдохшему сайдвиндеру фф2 наверное
NobbyNobbs Опубликовано: 6 апреля 2014 Автор Опубликовано: 6 апреля 2014 Если у вас Win 8 или Win 8.1 и после загрузки система не реагирует на Сombatstick/Fighterstick, проще всего оживить их проделав следующее: запускаем Control manager щелкаем на test/calibrate щелкаем на Rescan Готово 2
[IB]Zulu Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 (изменено) Всем привет. А вот и я сделаю свой вклад в общее дело. Дам серию функционально законченных скриптов с пояснениями. А оно надо??? Х.З. Первое с чего хочу начать это усовершенствование работы РУД. При пробеге после посадки ЛаГГа, Ла приходится обдувать хвостовое оперение винтом, для сохранения управляемости и исключения неуправляемого вращения называемого "циркуль". При этом обдув должен быть не слишком сильным, что бы сохранить возможность тормозить колесами, и в то-же время быть достаточным для управления самолетом на пробеге. Опытным путем установил, что для этого требуется поддерживать наддув в диапазон 300-330 мм.рт.ст. Но точное дозирование в этом диапазоне затруднено, поэтому я написал скрипт, который снижает чувствительность РУД в зоне малых оборотов (нужных на посадке), и делает более чувствительным в зоне высоких, которые используются в бою. Сразу оговорюсь, что у меня для двухмоторников, Ф4, и нашей техники, имеются собственные профили (mode) переключаемые на лету, поэтому в данном случае я осуществляю проверку профиля через предустановленную переменную CURRENTMODE, что бы скрипт работал только в режиме для ЛаГГа. Для тех, у кого всего один профиль, эту проверку можно исключить. Для удобства в шапке скрипта определяем переменную которая будет соответствовать оси газа в режим Mapped %DEFINE ComboThrottle CMS.A2 // Эту ось потом в GUI назначим устройству CM Device1 axis Z Далее в теле скипта помещаем следующий код IF ([CURRENTMODE EQ 0]) THEN // Если активен нулевой профиль IF ([JS2.A3 <=85])THEN // Если положение ручки в диапазоне 0-85 ( это режим макс. оборотов) ComboThrottle = JS2.A3 * 2 ; // устанавливаем чувствительность оси (наклон функции) 2.0 ELSE // в остальных случаях Combothrottle = JS2.A3 /2 +128; //устанавливаем чувствительность оси (наклон функции) 0.5 ENDIF ENDIF Сразу поясню, что значения 85 и 128 не случайны, это расчетные координаты точки пересечения прямых с коэфф. 0.5 и 2 на графике зависимости тяги от положения, если вы такой график нарисуете И названия осей CMS.A2, JS2.A3 даны для моей конфигурации - естественно у вас они будут другие. Далее планирую выложить скипты для нормализации работы переключателей нагнетателя, - на каждую скорость, - своя кнопка (положение) И приведение управления щитками в полном соответствии с РЛЭ, а не так как сейчас. Если надо, продолжу Изменено 9 мая 2014 пользователем [I.B.]Zulu 3
[IB]Zulu Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 Ну наконец-то: http://s26.postimg.org/4snbjjynt/Clip9.jpg Cпасибо! А для осей с центрированием (РН как раз такой и есть) это можно всегда сделать прямо в CH менеджере
[IB]Zulu Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 Так же выкладываю временные графики, поясняющие принцип работы шести основных программных триггеров, которые можно использовать при программировании изощренных и очень функциональных задач. CM logics.pdf Очень помогает при освоении скриптового языка или когда забыл, что же они значат. А именно так и бывает, однажды запрограммировав и получив надежный код, уже к этому не возвращаешься. А когда вдруг потребовалось, что то написать новое, уже все забыл. В этом случае и приходит на помощь этот файлик 1 2
NobbyNobbs Опубликовано: 9 мая 2014 Автор Опубликовано: 9 мая 2014 Про щитки скинь пожалуйста, как раз хотел написать себе )) (речь про рлэ лагга/ла я так понимаю)
=59=Moroka Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 (изменено) Zulu, пиши про щитки.... Обмозгуем, попробуем, .... У нас здесь интересных идей никогда много не бывает! ....и спасибо за диаграммы.... Изменено 9 мая 2014 пользователем =J13=Moroka
NobbyNobbs Опубликовано: 9 мая 2014 Автор Опубликовано: 9 мая 2014 (изменено) Zulu, пиши про щитки.... Обмозгуем, попробуем, .... я написал уже )) как-то вот так это у меня получилось sequence wait (cms.b48); //ждем нажатия кнопки на устройстве, пусть это будет "выпуск" (у меня переназначены фактически все кнопки, поэтому я жду виртуальную) if(not cms.b95)then //если не нажата кнопка "уборка" cms.b94=true; //нажимаем кнопку "выпуск" else //если же "уборка" нажата cms.b95=false; //выключаем ее endif endsequence sequence //аналогично для "уборки" wait (cms.b54); if(not cms.b94)then cms.b95=true; else cms.b94=false; endif endsequence Изменено 9 мая 2014 пользователем NobbyNobbs 1
NobbyNobbs Опубликовано: 9 мая 2014 Автор Опубликовано: 9 мая 2014 только... есть мнение, что при использовании на немцах это будет немножко читерством.
[IB]Zulu Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 (изменено) Ага, в общем где то так. Но, по РЛЭ логика чуток другая.-Нажав кнопку "выпуска" - щитки выходят до тех пор, пока не выпустятся полностью (не надо удерживать кнопку). Если в процессе выпуска повторно нажать "выпуск", то щитки останавливаются в этом промежуточном положении.- То же для кнопки "уборка".- Полное время выпуска щитков около 6 секунд.НО в БзС все по другому, щитки выпускаются (убираются) только покуда зажата кнопка. Поэтому наша задача, сделать так, что бы воздействие на кнопку прекращалось строго тогда, когда выпуск(уборка) закончились. Ну что бы еще и анимация в кабине соответствовала. Для этого в скрипт вводится анализ тиков системного времени. По ним происходит синхронизация, и по ним скрипт ориентируется сколько еще времени удерживать "нажатой" кнопку для БзСаИтак основная идея, - иметь индивидуальный счетчик времени работы щитков. Если считчик равен нулю, то значит щитки убраны, если равен максимуму, то скрипт знает, что щитки выпущены на максимум. Благодаря счетчику, в случае прервывания выпуска, мы всегда будем знать, сколько же времени осталось до полного выпука, и наоборот.Ну и последнее, мы можем выйти из игры с выпущенными щитками, а задем снова с поднятыми.Гы.Гы. Возникнет нестыковка истинного положения щитков с расчетным в скрипте. Поэтому мы должны предусмотреть возможность стартовой синхронизации щитков со счетчиком. Прим. Скрипт внешне получился сложным. Но зато отработана канва с таймингами для подвязки работы щитков на Ось джойстика. Реализую чуть позже. И простите меня, раскрашивать в цвета CH устал. Поэтому в конце красил только базовые вещи Шапка%DEFINE LaggFlapTime 6200*28 // ~170000 OS ticks - приблизительно 6,2 секунды. //На разных компьютерах //может отличаться. Подобрать экспериментально%DEFINE TimeCheck A1 // для хранения промежуточных значений TIMESTAMP%DEFINE FLAPUP_BTN CMS.B124 // Кнопка подъема щитков%DEFINE FLAPDN_BTN CMS.B125 // Кнопка выпуска щитков%DEFINE DN_DIR B4 // флаг движения вниз%DEFINE UP_DIR B5 // флаг движения вверх%DEFINE LaGG B2 // Flaps Normal(LaGG) - true, Yak - False%DEFINE ON B253 // Флаг разрешения работыВ теле скрипта//-ON = Lagg; // Переменная режима ЛаГГ (нужна только в моем скрипте)ON = TRUE; /// Если надо выключить быстро скрипт - поставить в FALSEPULSE (INIT) = JS4.B13; //Импульс принудительной стартовая инициализация// СинхронизацияIF (INIT OR FIRSTSCAN) THEN //Если активен импульс стартовой синхронизации или если// первый скан цикл по скриптуTotal_Flap_Time = 0; // Обнуляем счетчик времени работы щитков.DN_DIR = FALSE; // Сбрасываем флаги направления движения щитков.UP_DIR = FALSE;ENDIFIF(LaGG AND NOT ON) THEN // Если режиме ЛаГГ выключен - щитки работают как обычно в БзС FLAPUP_BTN = JS1.B7; FLAPDN_BTN = JS1.B9;ENDIF// --- Код работы щитков Для режима ЛаГГPULSE (STOP) = JS1.B9 OR JS1.B7; // Импульс прерывания для обработки нажатий кнопок щитков. IF (STOP AND ON) THEN // Если импульс получен CheckTime = TIMESTAMP; // Делаем засечку времени DN_DIR = JS1.B9 AND NOT DN_DIR; // Назначаем статус Флага Вниз (toggle) UP_DIR = JS1.B7 AND NOT UP_DIR; // Назначаем статус Флага Вверх (toggle)ENDIFSEQUENCE // Обработка движения внизWHILE (DN_DIR AND ON); //Total_Flap_Time = Total_Flap_Time + (TIMESTAMP - CheckTime);IF ([Total_Flap_Time >= LaggFlapTime]) THEN FLAPDN_BTN = FALSE; Total_Flap_Time = LaggFlapTime; // Выравниваем счетчик по максим. времени щитковELSE FLAPDN_BTN = TRUE;ENDIFDELAY(2);ENDSEQUENCE IF (NOT DN_DIR AND ON) THEN FLAPDN_BTN = FALSE; // Если флаг направления сброшен, отжимаем кнопку "Вниз"ENDIFSEQUENCE // Обработка движения щитков вверхWHILE (UP_DIR AND ON); //Total_Flap_Time = Total_Flap_Time - (TIMESTAMP - CheckTime);IF ([Total_Flap_Time <= 0]) THEN FLAPUP_BTN = FALSE; Total_Flap_Time = 0; // Выравниваем счетчик на ноль.ELSE FLAPUP_BTN = TRUE;ENDIFDELAY(2);ENDSEQUENCE IF (NOT UP_DIR AND ON) THEN FLAPUP_BTN = FALSE; // Если флаг направления сброшен, отжимаем кнопку "Вверх"ENDIF//-A3 = Total_Flap_Time; // Поддержка в живом состоянии счетчикаTotal_Flap_Time = A3; // т.к. существует баг ПО, приводящий к сбросу аналоговых переменных// если они долго не используются. Потерял целый день, пока вычислил// этот баг, связанный с рассинхронизацией при длительном неиспользовании щитков!!! Изменено 9 мая 2014 пользователем [I.B.]Zulu 2
NobbyNobbs Опубликовано: 9 мая 2014 Автор Опубликовано: 9 мая 2014 да уж, фундаментальный подход. про использование таймера интересно, никогда не знал с чем их едят. спасибо, очень полезный пример зы. почему-то в шапке определяется TimeCheck, а в скрипте используется CheckTime. 1
[IB]Zulu Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 зы. почему-то в шапке определяется TimeCheck, а в скрипте используется CheckTime. Ай молодец! Ошибся тут, в написании. Должно быть одинаково естественно!
=59=Moroka Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 (изменено) Задачка любителям Пе-2 и программирования на выходные и праздничные дни : Надо с помощью хатки на РУДе (например той, что под указательный палец) плюс одной из кнопок b2-b4 в качестве shifta: 1. оперативно переключаться между 2(3)-мя положениями: пилота и 2-х стрелков (фактически между управлением самолета и обороной хвоста) 2. оперативно, с помощью хатки, "в один клик" переключаться между всеми 4-я позициями стрелков - 1 верхнее и 3 нижних... 3. ...желательно задействовать команды "взять оружие" - T и "смотреть через прицел" - Shift+T .... теперь о проблемах 4. ...что делать со скриптом, если одного из стрелков убили или "подсел"/ "вышел" "живой" игрок? .... можно не сразу всё... а сначала первые 3 пункта... ПыСы: Придется учитывать интервал между "сменой мест", т.к. подряд две команды Ctrl+C или Shift+C не срабатывают, пока не закончиться предыдущая... ПыПыСы: Приятных выходных... Изменено 9 мая 2014 пользователем =J13=Moroka
[IB]Zulu Опубликовано: 9 мая 2014 Опубликовано: 9 мая 2014 (изменено) // Включение форсажа от двойного толчка РУД в макс. положении (по типу дабл клик на мышке, только РУДом, дважды, в макс положении)в Шапке%DEFINE MAXTHRTL1 D10 // Флаг Контрольный интервал 1%DEFINE MAXTHRTL2 D11 // Флаг Контрольный интервал 2 %DEFINE TIME_5MIN D12 // флаг действия 5 минутного интервала %DEFINE BOOST_ON B20 в теле скриптаPULSE(D8) = [JS2.A3 <=3]; // Импульс от первого достижения макс. положения //Запускаем таймер 350 мсек TIMER (PERIOD,MAXTHRTL1,8) = [JS2.A3 <=3] AND NOT MAXTHRTL1 AND NOT MAXTHRTL2; // Засекли, что РУД двинулся назад в указанный интервал времени //запускаем второй таймер TIMER(PERIOD, MAXTHRTL2, 8) = [JS2.A3 > 7] AND NOT D8 AND MAXTHRTL1; PULSE(D9) = MAXTHRTL2 AND[JS2.A3 <=3 ]; // Раз за период второго таймера // РУД снова достиг макс, даем импульс SEQUENCE // реакция на импульс путем включения форсажа на кнопке CMS.B2 WAIT(D9); // дождались импульса D9 BOOST_ON = TRUE; // выставили флаг форсажа CMS.B2 = TRUE; // нажали кнопкуDELAY(2); CMS.B2 = FALSE; // отжали кнопкуENDSEQUENCE SEQUENCE // Выключение форсажа при движении РУД назад. WAIT(BOOST_ON AND [JS2.A3 > 10]); // Если Форсаж активен и РУД поехал назад CMS.B2 = TRUE; // нажали кнопкуDELAY(2); CMS.B2 = FALSE; // отпустили кнопку BOOST_ON = FALSE; // убрали флаг форсажаENDSEQUENCE//----------- Изменено 9 мая 2014 пользователем [I.B.]Zulu 3
NobbyNobbs Опубликовано: 9 мая 2014 Автор Опубликовано: 9 мая 2014 @=J13=Moroka ИМХО тут скрипт не нужен, нужен простой маппер: одной кнопке вы просто прописываете: "HOLD LCTL c" чтобы переключать позиции второй: "HOLD LSHF c" чтобы переключать огневые точки, третьей: "KEYS +t -t +lshf CHARDLY +t -t CHARDLY -lshf" чтобы брать лупомет и смотреть в прицел правда есть один минус - чтобы не возникало глюков, перед переключением на следующую позицию (именно позицию, не огневую точку) нужно "отольнуть" от прицела и бросить пулемет, повторно нажав третью кнопку.
[IB]Zulu Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 (изменено) @=J13=Moroka ИМХО тут скрипт не нужен, нужен простой маппер: одной кнопке вы просто прописываете: "HOLD LCTL c" чтобы переключать позиции второй: "HOLD LSHF c" чтобы переключать огневые точки, Да. А кнопки ОДИН и ДВА можно с легкостью заменить одной, например, используя ее в режиме LIST (список). Один раз нажали - стрелкИ, второй раз - пилоты. И так далее бесконечно по кругу. Pressed | Released | ------------|-------------| C | | ------------|-------------| HOLD LСTL c | | ------------|-------------| 2 NobbyNobbs "HOLD LSHF с" = "С" Изменено 10 мая 2014 пользователем [I.B.]Zulu 1
[IB]Zulu Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 (изменено) Если у вас Win 8 или Win 8.1 и после загрузки система не реагирует на Сombatstick/Fighterstick, проще всего оживить их проделав следующее: запускаем Control manager щелкаем на test/calibrate щелкаем на Rescan Готово Небольшое Уточнение. Проблема возникает так же в Win7 64 bit и не после Перезагрузки (после нее все зашибись), а после Sleep или Hybernate. В качестве решения НА ВСЮ ЖИЗНЬ, кто то предложил купить PCI плату с портами USB и подключать джойстики туда. В этом случае, при засыпании питание с джоев будет сниматься всегда , а после оживления снова подаваться, что приведет к рескану устройств. Вот. Сам не пробовал. Мне и программно рестарт сделать не влом, все равно ж map грузить, трекир(фритрек) подстраивать... тест переключения портов на карту PCI результата не принес Изменено 10 мая 2014 пользователем RR_Zuboff
=59=Moroka Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 @=J13=Moroka ИМХО тут скрипт не нужен, нужен простой маппер: ... Конечно, можно обойтись без скрипта! Команды есть... Но чтобы облегчить жизнь вирпилу (и усложнить програмисту ) хочу, чтобы скрипт (4-х поз. хатка) непосредственно переключал в одну из 4-х позиций/огн.точек. Сейчас, чтобы пересесть с места пилота на место "нижнего" стрелка надо 2 раза выполнить команду... Снова за пилота - 1 раз, а вот сразу на верхнего стрелка - снова 2 раза. В условиях скоротечной атаки и задержек переключения(перемещения) легко "проскочить" нужную позицию. Прибавьте к этому такое же , перебором, переключение по огневым точкам... то понятно ,что даже просто увидеть в "нужном" прицеле вражину становится сложно .
=59=Moroka Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 ... добавлю, что при переключении между позициями, вид "прильнуть к прицелу", если он был назначен до этого, выключается.... ...кстати, если вы в одном из позиций "отпустили/взяли" оружие, то это состояние запоминается именно для этой позиции, и не связано с другими...
NobbyNobbs Опубликовано: 10 мая 2014 Автор Опубликовано: 10 мая 2014 тогда как то вот так: %DEFINE CurNumber a1; // Номер рассчета 0-2 (пилот - штурман - радист) %DEFINE TailGunnerPos a2; //позиция радиста борт1, борт2, люк %DEFINE NextPos cms.b1;// %DEFINE FirstGunnerStatus b2; //состояние штурмана %DEFINE SecondGunnerStatus b3; //состояние радиста %DEFINE a1 0; %DEFINE a2 0; %define TakeGun cms.b2; %define Aim cms.b3; %DEFINE NextPoint cms.b4; script sequence //пусть j1.b6 это кнопка включения штурмана, cms.b1 ~ [Ctrl+C], cms.b2 ~ [t], cms.b3~[lshf+t], cms.b3~[lshf+c] //переключаемся на штурмана wait(not FirstGunnerStatus and js1.b6 and [curnumber==0]);//если текущая позиция - пилот и мы первый раз сели за штурмана NextPos=true; // переключаем позицию Ctrl+C delay(2); NextPos=false; TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=1; FirstGunnerStatus=true; endsequence sequence wait(FirstGunnerStatus and js1.b6 and [curnumber==0]);//если текущая позиция - пилот и мы не первый раз сели за штурмана NextPos=true; // переключаем позицию Ctrl+C delay(2); NextPos=false; Aim=true; //пулемет у нас уже есть, просто смотрим в вприцел. delay(2); Aim=false; curnumber=1; endsequence sequence wait(not FirstGunnerStatus and js1.b6 and [curnumber==2]);//если текущая позиция - радист и мы первый раз сели за штурмана NextPos=true; // переключаем позицию Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; delay(2); NextPos=false; delay(2); TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=1; FirstGunnerStatus=true; endsequence sequence wait(FirstGunnerStatus and js1.b6 and [curnumber==2]);//если текущая позиция - радист и мы не первый раз сели за штурмана NextPos=true; // переключаем позицию Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; delay(2); NextPos=false; Aim=true; //смотрим в вприцел. delay(2); Aim=false; curnumber=1; endsequence // похоже, что со штурмана достаточно. //------------------------------------------------------------------------------------ //радист //j1.b10 - кнопка включения хвостовой огневой точки (не стал заморачиваться с сочетаниями) sequence wait(not SecondGunnerStatus and js1.b10 and [curnumber==0] and [TailGunnerPos==0]);//если текущая позиция пилот, это первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // два раза delay(2); NextPos=false; delay(2); TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; SecondGunnerStatus=true; endsequence sequence wait(SecondGunnerStatus and js1.b10 and [curnumber==0] and [TailGunnerPos==0]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // два раза delay(2); NextPos=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; endsequence sequence wait(SecondGunnerStatus and js1.b10 and [curnumber==0] and [TailGunnerPos==1]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая точка - левый борт NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // два раза delay(2); NextPos=false; delay(2); NextPoint=true; // Lshf+C delay(2); NextPoint=false; delay(20); // с параметром надо поиграть, но с 2 и 10 обработать не успевает NextPoint=true; // два раза delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=0; endsequence sequence wait(SecondGunnerStatus and js1.b10 and [curnumber==0] and [TailGunnerPos==2]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая точка - правый борт NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // два раза delay(2); NextPos=false; delay(2); NextPoint=true; // Lshf+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=0; endsequence sequence wait(not SecondGunnerStatus and js1.b10 and [curnumber==1] and [TailGunnerPos==0]);//если текущая позиция штурман, это первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; SecondGunnerStatus=true; endsequence sequence wait(SecondGunnerStatus and js1.b10 and [curnumber==1] and [TailGunnerPos==0]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; endsequence sequence wait(SecondGunnerStatus and js1.b10 and [curnumber==1] and [TailGunnerPos==1]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая точка - левый борт NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=false; delay(2); NextPoint=true; // Lshf+C delay(2); NextPoint=false; delay(20); // с параметром надо поиграть, но с 2 и 10 игра обработать не успевает NextPoint=true; // два раза delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=0; endsequence sequence wait(SecondGunnerStatus and js1.b10 and [curnumber==1] and [TailGunnerPos==2]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая точка - правый борт NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true; // Lshf+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=0; endsequence //----------------------------------------------------------------------------------------------- //левая по курсу огневая точка б11 sequence wait(not SecondGunnerStatus and js1.b11 and [curnumber==0] and [TailGunnerPos==0]);//если текущая позиция пилот, это первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; SecondGunnerStatus=true; endsequence sequence wait(not SecondGunnerStatus and js1.b11 and [curnumber==1] and [TailGunnerPos==0]);//если текущая позиция штурман, это первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; SecondGunnerStatus=true; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==0] and [TailGunnerPos==0]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая турель задняя NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==1] and [TailGunnerPos==0]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая турель задняя NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==0] and [TailGunnerPos==1]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая турель левая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==1] and [TailGunnerPos==1]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая турель левая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==0] and [TailGunnerPos==2]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая турель правая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==1] and [TailGunnerPos==2]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая турель правая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=1; endsequence //----------------------------------------------------------------------------------------------- //правая по курсу огневая точка б9 sequence wait(not SecondGunnerStatus and js1.b9 and [curnumber==0] and [TailGunnerPos==0]);//если текущая позиция пилот, это первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; SecondGunnerStatus=true; endsequence sequence wait(not SecondGunnerStatus and js1.b9 and [curnumber==1] and [TailGunnerPos==0]);//если текущая позиция штурман, это первое переключение на стрелка-радиста NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); TakeGun=true; //берем пулемет delay(2); TakeGun=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; SecondGunnerStatus=true; endsequence sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==0] and [TailGunnerPos==0]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая турель задняя NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; endsequence sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==1] and [TailGunnerPos==0]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая турель задняя NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; endsequence sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==0] and [TailGunnerPos==1]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая турель левая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; endsequence sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==1] and [TailGunnerPos==1]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая турель левая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPoint=true;//LSHF+C delay(2); NextPoint=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; endsequence sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==0] and [TailGunnerPos==2]);//если текущая позиция пилот, это не первое переключение на стрелка-радиста, текущая турель правая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; endsequence sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==1] and [TailGunnerPos==2]);//если текущая позиция штурман, это не первое переключение на стрелка-радиста, текущая турель правая NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); Aim=true;//смотрим в прицел delay(2); Aim=false; curnumber=2; TailGunnerPos=2; endsequence //переключения inside места радиста стрелка sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==2] and [TailGunnerPos==0]);//если текущая позиция радист, текущая турель задняя, целевая - правая NextPoint=true; // LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true; // LSHF+C delay(2); NextPoint=false; TailGunnerPos=2; endsequence sequence wait(SecondGunnerStatus and js1.b9 and [curnumber==2] and [TailGunnerPos==1]);//если текущая позиция радист, текущая турель левая, целевая - правая NextPoint=true; // LSHF+C delay(2); NextPoint=false; TailGunnerPos=2; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==2] and [TailGunnerPos==0]);//если текущая позиция радист, текущая турель задняя, целевая - левая NextPoint=true; // LSHF+C delay(2); NextPoint=false; TailGunnerPos=1; endsequence sequence wait(SecondGunnerStatus and js1.b11 and [curnumber==2] and [TailGunnerPos==2]);//если текущая позиция радист, текущая турель правая, целевая - левая NextPoint=true; // LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true; // LSHF+C delay(2); NextPoint=false; TailGunnerPos=1; endsequence sequence wait(SecondGunnerStatus and js1.b10 and [curnumber==2] and [TailGunnerPos==2]);//если текущая позиция радист, текущая турель правая, целевая - задняя NextPoint=true; // LSHF+C delay(2); NextPoint=false; TailGunnerPos=0; endsequence sequence wait(SecondGunnerStatus and js1.b10ССС and [curnumber==2] and [TailGunnerPos==1]);//если текущая позиция радист, текущая турель левая, целевая - задняя NextPoint=true; // LSHF+C delay(2); NextPoint=false; delay(20); NextPoint=true; // LSHF+C delay(2); NextPoint=false; TailGunnerPos=0; endsequence //------------------------------------------------------------------------------ //переключаемся на пилота (b5) sequence wait(js1.b5 and [curnumber==1]);//если текущая позиция штурман NextPos=true; // Ctrl+C delay(2); NextPos=false; delay(2); NextPos=true; // два раза delay(2); NextPos=false; curnumber=0; endsequence sequence wait(js1.b5 and [curnumber==2]); //если текущая позиция радист NextPos=true;// ctrl+c delay(2); NextPos=false; curnumber=0; endsequence endScript еще надо сделать кнопку, которая все это безобразие будет обнулять. файлы map и cms: tailgunners.zip зы. а сколько у хейнкеля точек? 3
NobbyNobbs Опубликовано: 10 мая 2014 Автор Опубликовано: 10 мая 2014 // Включение форсажа от двойного толчка РУД в макс. положении (по типу дабл клик на мышке, только РУДом, дважды, в макс положении) в Шапке %DEFINE MAXTHRTL1 D10 // Флаг Контрольный интервал 1 %DEFINE MAXTHRTL2 D11 // Флаг Контрольный интервал 2 %DEFINE TIME_5MIN D12 // флаг действия 5 минутного интервала %DEFINE BOOST_ON B20 в теле скрипта PULSE(D8) = [JS2.A3 <=3]; // Импульс от первого достижения макс. положения //Запускаем таймер 350 мсек TIMER (PERIOD,MAXTHRTL1,8) = [JS2.A3 <=3] AND NOT MAXTHRTL1 AND NOT MAXTHRTL2; // Засекли, что РУД двинулся назад в указанный интервал времени //запускаем второй таймер TIMER(PERIOD, MAXTHRTL2, 8) = [JS2.A3 > 7] AND NOT D8 AND MAXTHRTL1; PULSE(D9) = MAXTHRTL2 AND[JS2.A3 <=3 ]; // Раз за период второго таймера // РУД снова достиг макс, даем импульс SEQUENCE // реакция на импульс путем включения форсажа на кнопке CMS.B2 WAIT(D9); // дождались импульса D9 BOOST_ON = TRUE; // выставили флаг форсажа CMS.B2 = TRUE; // нажали кнопку DELAY(2); CMS.B2 = FALSE; // отжали кнопку ENDSEQUENCE SEQUENCE // Выключение форсажа при движении РУД назад. WAIT(BOOST_ON AND [JS2.A3 > 10]); // Если Форсаж активен и РУД поехал назад CMS.B2 = TRUE; // нажали кнопку DELAY(2); CMS.B2 = FALSE; // отпустили кнопку BOOST_ON = FALSE; // убрали флаг форсажа ENDSEQUENCE //----------- а про выключение через 5 минут?
=59=Moroka Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 (изменено) тогда как то вот так:.... ... зы. а сколько у хейнкеля точек? ...!!! "писать такое не для ленивых" (с) ... а говорили тут скрипт не нужен, нужен простой маппер: Nobby, ты удивляешь! Столько придумать и написать, отладить, проверить в игре, записать видео и выложить!!!, ... чувствую, слабо мы тебя загружаем .... однако браво . По существу: Спасибо. Интересно, буду пробовать... ПыСы: про Henkel даже страшно представить! там трое с пулеметом, как минимум, + огневые точки... Изменено 10 мая 2014 пользователем =J13=Moroka 1
[IB]Zulu Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 (изменено) а про выключение через 5 минут? Гы. А пожалуйста После первой последовательности (SEQUENCE) в том скрипте вставить: TIMER(ONDELAY, TIME_5MIN, 6000) = BOOST_ON; // 6000 * ~50ms = ~5 мин. (зависит от настроек на осн. вкладке) А начало второй последовательности изменить с учетом триггер-таймера SEQUENCE WAIT(BOOST_ON AND ([JS2.A3 > 10] OR TIME_5MIN)); Теперь, форсаж отключится и через 5 минут тоже. Причем, отсчет 5 минут будет всегда синхронизирован по последнему условию для форсажа. Изменено 10 мая 2014 пользователем [I.B.]Zulu 1
[IB]Zulu Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 Думаю, даже для верности, нужно время уменьшить хотя бы до 4 мин 45 сек, что бы гарантированно не получить отказа двигателя в БзС
[IB]Zulu Опубликовано: 10 мая 2014 Опубликовано: 10 мая 2014 (изменено) Друзья, если не влом поддержите мой призыв к разрабочиками ПО для CH устройств http://www.ch-hangar.com/forum/index.php/topic/7706-feature-reqiest-and-script-improvements/, а то что то там тишина - разрабы отмалчиваются: Тема касается следующих багов и неудобств: - устранение известной проблемы с инициализацией устройств после "засыпания" компьютера под управлением Win8 64 bit, Win 7 64 bit (причем это в общем то несложно сделать); - доработки вкладки CMC устройств, что бы сделать более наглядной работу с ними - устранения отдельных (хоть и несмертельных, но изматывающих) багов в работе редактора и компилятора (перечислены); - добавления служебного символа в язык программирования для подачи короткого звукового сигнала (удобно для информирования завершения работы времяпривязанных скриптов). Можете там свои пожелания добавить, - может и сдвинем таки машину с мертвой точки Под лежачий камень вода не бежит Изменено 10 мая 2014 пользователем [I.B.]Zulu 1
NobbyNobbs Опубликовано: 10 мая 2014 Автор Опубликовано: 10 мая 2014 (изменено) Друзья, если не влом поддержите мой призыв к разрабочиками ПО для CH устройств http://www.ch-hangar.com/forum/index.php/topic/7706-feature-reqiest-and-script-improvements/, а то что то там тишина - разрабы отмалчиваются: Можете там свои пожелания добавить, - может и сдвинем таки машину с мертвой точки Под лежачий камень вода не бежит зарегистрировался и поставил под всеми постами в теме по лайку и оценку в 5 звезд )) по поводу более весомого участия - я по-английски более-менее сносно могу только читать, а вот писать и говорить увы. Изменено 10 мая 2014 пользователем NobbyNobbs 1
=X51=PickRelated Опубликовано: 29 мая 2014 Опубликовано: 29 мая 2014 Тоже поддержал. Я так понимаю, тамошний ник [i.B.] Zulu - Vink?
m0n0type Опубликовано: 12 июня 2014 Опубликовано: 12 июня 2014 (изменено) Товарищи, дабы не плодить новых тем..может подскажите? Мучаюсь с файтерстиком-брал новый, появилась такая проблема: На оси тангажа рандомно появляются задержки, фризы. Тоесть тянешь на себя плавненько-ничего не происходит, потом резкий рывок до нужного значения. Летать очень проблематично, ощущение, что стоит дикая нелинейность. Ничего не програмировал, СН менеджеры пробовал разные версии, пробовал вообще без них , пробовал USB разные, разбирал (на свою голову)- резюки не болтаются, люфтов нет.. На сухом видел пару тем с похожей проблемой , но внятного решения так и не нашел.. (добавлю, что такие проблемы появляются в приложениях и играх- в том же джойтестере вроде все плавно рисуется по осям) Изменено 12 июня 2014 пользователем m0n0type
NobbyNobbs Опубликовано: 12 июня 2014 Автор Опубликовано: 12 июня 2014 ИМХО можно попробовать скачать последний манагер, создать визардом (кнопка со значком винампа) новый дефолтный профиль для стика (где спрашивает про combine - no, где про cms - yes), залить его в устройство (кнопка download) и посмотреть что будет. Попробовать включить mapped mode и снова посмотреть что будет.
m0n0type Опубликовано: 12 июня 2014 Опубликовано: 12 июня 2014 ИМХО можно попробовать скачать последний манагер, создать визардом (кнопка со значком винампа) новый дефолтный профиль для стика (где спрашивает про combine - no, где про cms - yes), залить его в устройство (кнопка download) и посмотреть что будет. Попробовать включить mapped mode и снова посмотреть что будет. Спасибо, попробую (правда я ничерта в этом не смыслю, это чудо у меня меньше месяца) . Последний - это 4.55? А не полетят названия кнопок и осей?, а то придется во всех играх профили переделывать. И еще вопрос-новый профиль "вшивается" аппаратно, или нужны какие то проги в автозагрузке для его запуска?
NobbyNobbs Опубликовано: 12 июня 2014 Автор Опубликовано: 12 июня 2014 Спасибо, попробую (правда я ничерта в этом не смыслю, это чудо у меня меньше месяца) . Последний - это 4.55? А не полетят названия кнопок и осей?, а то придется во всех играх профили переделывать. И еще вопрос-новый профиль "вшивается" аппаратно, или нужны какие то проги в автозагрузке для его запуска? Если будет вменяемо работать только в mapped mode, то нужно добавить в автозапуск программу CMStart из директории менеджера. По поводу слетания настроек.. Точно не знаю, но по идее ничего слететь не должно.
[IB]Zulu Опубликовано: 15 июня 2014 Опубликовано: 15 июня 2014 Спасибо, попробую (правда я ничерта в этом не смыслю, это чудо у меня меньше месяца) . Последний - это 4.55? А не полетят названия кнопок и осей?, а то придется во всех играх профили переделывать. И еще вопрос-новый профиль "вшивается" аппаратно, или нужны какие то проги в автозагрузке для его запуска? Последний это 4.55a. А ты говоришь, рандомно, это как часто? При каких условиях возникает? При каких пропадает?
m0n0type Опубликовано: 15 июня 2014 Опубликовано: 15 июня 2014 (изменено) Последний это 4.55a. А ты говоришь, рандомно, это как часто? При каких условиях возникает? При каких пропадает? Да зависимости не выявил никакой..вот летишь себе , например, с небольшим креном - надо довернуть , а тангаж не отзывается, дергаешь дергаешь- потом оп!, и ты уже в крайней точке , нос в небо - здравствуй штопор). Ощущение, что либо в механике дело, либо в конфликте с другими устройствами ( у меня там сплошная солянка). Попробовал тупо воткнуть медиатор гитарный в щель механ. крутилки триммера (может там люфтит)-вроде пока летается...Хотя пару раз все таки зависало, но терпимо. Вот на сухом абсолютно такая же проблема , может понятней будет о чем это я - http://www.sukhoi.ru/forum/showthread.php?t=58778 (PS-Нубби, извини, если я тебе тему своими проблемами зафлудил- могу попросить модератора переместить мои в отдельную) Изменено 15 июня 2014 пользователем m0n0type
SVOR Опубликовано: 2 июля 2014 Опубликовано: 2 июля 2014 Не по теме пишу, но все же помогите если кто знает !!!! СЖЕГ педали(замкнул ноги на резюке, ну и, похоже контроллер сгорел). как починить теперь ?
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас