А где сам код то?razr писал(а):хорошо....
Функции скрипта:
1.) Реализация МКПП: 6 (мышь)
2.) Эмуляция TrackIR (мышь ИЛИ мышь+клава)
Требования к скрипту:
0.) наличие GlovePIE
1.) мышка с боковыми кнопками (XButton1 и XButton2), с правой кнопкой и колёсиком
2.) клавиатура с желательно работающими кнопками: F9, Z, X, V, K, L, Y, LeftControl, LeftAlt
Инструкции и настройки:
Запуск:
1.) запустить GlovePIE и вставить код скрипта(возможно в дальнейшем реализовать автозагрузку)
2.) Нажать в окне GlovePIE "Run"
3.) При необходимости выполнить первоначальные настройки скрипта (читать ниже)
4.) сам скрипт активируется нажатием кнопки "F9" (по умолчанию выключен)
[spoiler МКПП]представлена в видеПо умолчанию включается передача N между 3 и 4-ой.Код: Выделить всё
|R| |1|3|5| - - -|N|- |2|4|6| где "-" обозначается положение рукоятки рычага кор. передач, из которых при отпуске рукоятки , она сама возвращается в положение N
В скрипте реализован автовозврат в нейтральное положение. Он действует ,например тогда, когда вы выключаете заднюю передачу и не включаете никакую другую...
Для нормальной работы скрипта в настройках 3D инструктора нужно выставить след настройки управления:
Первая передача - клавиша "1" (цифра 1)
Вторая передача - клавиша "2"
Третья передача - клавиша "3"
Четвёртая передача - клавиша "4"
Пятая передача - клавиша "5"
Шестая передача - клавиша "6"
Задний ход - клавиша "0"
Нейтральная передача - клавиша "N"[/spoiler]
[spoiler Эмуляция TrackIR]1.) Верчение головой с помощью мышки:
Для верчения следует зажать правую кнопку мышки и водить мышкой вп\назад , влево\вправо
2.) Перемещения камеры:
2.1) Ускоренные перемещения камеры:
Перемещение вперёд\назад: при зажатой на клавиатуре кнопке Z нужно прокручивать колёсиком
Перемещение влево\вправо: при зажатой на клавиатуре кнопке X нужно прокручивать колёсиком
Перемещение вверх\вниз: при зажатой на клавиатуре кнопке Y нужно прокручивать колёсиком
Боковой наклон камеры: при зажатой на клавиатуре кнопке K нужно прокручивать колёсиком
Выглядывание из левого и правого окошка: из левого кнопка "LeftCTRL", из правого - "LeftALT" (проверено на Ваз2170, для других надо подбирать индивидуальные положения камеры)
2.) Замедленные перемещения камеры:
Перемещение вперёд\назад: при зажатой правой кнопке мышки и одновременной прокрутке колёсиком мышки
Перемещение вверх\вниз(Регулировка высоты): при зажатой на клавиатуре кнопке V нужно прокручивать колёсиком
Универсальная регулировка положения камеры - для этого нужно зажать на боковой части мышки кнопку XButton2 (=>):
Перемещение вперёд\назад и влево\вправо осуществляется перемещением курсора мышки
Регулировка высоты осуществляется прокруткой колёсика мышки
Возврат в центральное положение камеры:
Для этого нужно нажать среднюю кнопку мышки(не бойтесь нажать на колёсик)[/spoiler]
[spoiler Первоначальная настройка скрипта]0.) настройки следует менять только в самых первых строках скрипта, но не в его конце
границы настроек выделены комментариями //
все настройки связаны только с настройкой чувствительности мышки.
1.) Разрешение экрана задаётся либо автоматическиЛибо вручную, если вручную то нужно расскомментировать "//" две строчки что нижеКод: Выделить всё
var.scrW=screen.Width var.scrH=screen.Height
2.) Настройка Cursor2Код: Выделить всё
var.scrW=1680 -разрешение по горизонтали var.scrH=1050 -разрешение по вертикали
Настройка Cursor3Код: Выделить всё
var.MyScrX=var.scrW*10 -Разрешение Cursor2 по X , используется для МКПП, по желанию можно самому изменить или просто стереть множители 10 var.MyScrY=var.scrH*10 -Разрешение Cursor2 по Y
3.)Код: Выделить всё
var.MyScrTRX=var.scrW*10 -Разрешение Cursor3 по X , используется для FaceTrackIR -например 16800 var.MyScrTRY=var.scrH*10 - Разрешение Cursor3 по Y - например 10500
[/spoiler]Код: Выделить всё
var.MyUskX=2,2 -изменять по желанию - ускорение по оси X Cursor2 var.MyUskY=5 //0,5; //7; ускорение по оси Y Cursor2 var.MyUskTRX=4; ускорение по оси X Cursor3 var.MyUskTRY=4; ускорение по оси Y Cursor3 var.MyUskFX=4; ускорение по оси X обзор var.MyUskFY=4; ускорение по оси Y обзор var.MyUskFZ=4; ускорение по оси Z обзор var.MyMinUskX=0,002; ускорение по оси X озор в салоне var.MyMinUskY=0,002; ускорение по оси Y озор в салоне var.MyMinUskZ=0,005; ускорение по оси Z озор в салоне
Сам код:
[spoiler script razrmkpp.pie][/spoiler]Код: Выделить всё
//Key F9- Вкл/Выкл джоя if (F9 = false) { var.v1 = 0; } if (F9 = true and var.v19 = 0 and var.v1 = 0) { var.v19 = 1 //переменная отвечающая за вкл\выкл скрипта var.v1 = 1 //Разрешение экрана задаётся либо автоматически var.scrW=screen.Width var.scrH=screen.Height //Либо вручную, если вручную то нужно расскомментировать "//" две строчки что ниже //var.scrW=1680 //разрешение по горизонтали //var.scrH=1050 //разрешение по вертикали //ниже настройки RazrMouseDriver //Настройка Cursor2 var.MyScrX=var.scrW*10 //Разрешение Cursor2 по X , используется для МКПП, по желанию можно самому изменить или просто стереть множители 10 var.MyScrY=var.scrH*10 //Разрешение Cursor2 по Y //Настройка Cursor3 var.MyScrTRX=var.scrW*10 //Разрешение Cursor3 по X , используется для FaceTrackIR //например 16800 var.MyScrTRY=var.scrH*10 //Разрешение Cursor3 по Y //например 10500 //Прочие настройки var.v41=var.MyScrX/2; //Не изменять var.v46=var.MyScrY/2; //Не изменять var.v45=var.MyScrTRX/2; //Не изменять var.v43=var.MyScrTRY/2; //Не изменять var.MyUskX=2,2 //0,3; //1,9; //изменять по желанию - ускорение по оси X Cursor2 var.MyUskY=5 //0,5; //7; //изменять по желанию - ускорение по оси Y Cursor2 var.MyUskTRX=4; //изменять по желанию - ускорение по оси X Cursor3 var.MyUskTRY=4; //изменять по желанию - ускорение по оси Y Cursor3 var.MyUskFX=4; //изменять по желанию - ускорение по оси X обзор var.MyUskFY=4; //изменять по желанию - ускорение по оси Y обзор var.MyUskFZ=4; //изменять по желанию - ускорение по оси Z обзор var.MyMinUskX=0,002; //изменять по желанию - ускорение по оси X озор в салоне var.MyMinUskY=0,002; //изменять по желанию - ускорение по оси Y озор в салоне var.MyMinUskZ=0,005; //изменять по желанию - ускорение по оси Z озор в салоне //Выше первоначальная конфигурация RazrMouseDriver //то что ниже лучше не менять var.v6 = 1000; var.v14 = 1000; var.v9 = 1; var.v15 = 1; var.v2 = -180; var.v12 = 180; var.v28 = 180; var.v18 = -180; var.v5 = 5; var.v4 = 3; var.v17 = -144; var.v21 = 144; var.v8 = 150; var.v25 = -150; var.v16 = 36; var.v27 = 288; var.v3 = 60; var.v10 = 300; var.v7 = (abs(var.v2) + abs(var.v12) )/ var.v5 ; var.v23 = (abs(var.v28) + abs(var.v18) )/ var.v4 ; var.v30 = var.v7 / 2; var.v32 = var.v23 / 2; var.v11= abs(var.scrW/(abs(var.v2)+abs(var.v12))); var.v24= abs(var.scrH/(abs(var.v28)+abs(var.v18))); var.v26= var.v11*(var.v16+var.v7*3); var.v31= var.v24*(var.v3+var.v23); var.v34 = var.scrW/2; var.v36 = var.scrH/2; var.v13 = var.v34; var.v38 = var.v36; var.v40 = 0 var.v33 = 0 var.v29 = 9; var.v37 = false; elseif (F9 = true and var.v19 = 1 and var.v1 = 0) { var.v19 = 0 var.v1 = 1 } } if (var.v19 = true) { var.v22=var.v35; if (mouse.XButton1 = 1) { var.v35 = 2; // переключение МКПП } elseif (mouse.XButton2 = 1) { var.v35 = 3; // обзор:вп\нз вл\вп } elseif (mouse.RightButton) { var.v35 = 4 // верчение головой } elseif (mouse.MiddleButton) { var.v35=5 // по центру } else { var.v35=1; } if (var.v37=false) { if (var.v29 IN(6,7,8,10) ) { var.v29=9; var.v20=2; var.v39=4; } } if var.v29 = 1 { var.v20=1; var.v39=1; } elseif var.v29=2 { var.v20=1; var.v39=2; } elseif var.v29=3 { var.v20=1; var.v39=3; } elseif var.v29=4 { var.v20=1; var.v39=4; } elseif var.v29=5 { var.v20=1; var.v39=5; } elseif var.v29=6 { var.v20=2; var.v39=1; } elseif var.v29=7 { var.v20=2; var.v39=2; } elseif var.v29=8 { var.v20=2; var.v39=3; } elseif var.v29=9 { var.v20=2; var.v39=4; } elseif var.v29=10 { var.v20=2; var.v39=5; } elseif var.v29=11 { var.v20=3; var.v39=1; } elseif var.v29=12 { var.v20=3; var.v39=2; } elseif var.v29=13 { var.v20=3; var.v39=3; } elseif var.v29=14 { var.v20=3; var.v39=4; } elseif var.v29=15 { var.v20=3; var.v39=5; } //Выполняется постоянно RazrMouseDriver var.v42=-(var.v48 - mouse.DirectInputX) //var.MyDX var.v44=-(var.v47 - mouse.DirectInputY) //var.MyDY //END Выполняется постоянно RazrMouseDriver //Выполняется постоянно: доп. функции if (key.X) { //перемещение влево\вправо if (mouse.WheelUp) { FakeTrackIR.x=FakeTrackIR.x+2 } if (mouse.WheelDown) { FakeTrackIR.x=FakeTrackIR.x-2 } } if (key.Z) { //перемещение вперёд\назад if (mouse.WheelUp) { FakeTrackIR.z=FakeTrackIR.z+2 } if (mouse.WheelDown) { FakeTrackIR.z=FakeTrackIR.z-2 } } if (key.y) { //ВЫСОТА if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+2 } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-2 } } if (key.K) { //HAKJIOH if (mouse.WheelUp) { FakeTrackIR.roll=FakeTrackIR.roll+2 } if (mouse.WheelDown) { FakeTrackIR.roll=FakeTrackIR.roll-2 } } if (key.L) { //перемещение влево\вправо if (mouse.WheelUp) { FakeTrackIR.x=FakeTrackIR.x+0,2 } if (mouse.WheelDown) { FakeTrackIR.x=FakeTrackIR.x-0,2 } } if (key.V) { //BbIcoTA if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+var.MyMinUskY } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-var.MyMinUskY } } //**START key.leftcontrol and ALT ** Высунуть голову из салона if (key.leftcontrol) { //левое окошко FakeTrackIR.x=-0,6 } if (key.leftalt) { //правое FakeTrackIR.x=1,8 } //**END key.leftcontrol and ALT ** Высунуть голову из салона //END Выполняется постоянно: доп. функции if (var.v35=2) { if ((var.v22<>var.v35) and ((abs(mouse.cursorposx-(var.v11*(var.v16+var.v7*(var.v39-1))))>var.v30) OR (abs(mouse.cursorposy-(var.v24*(var.v3+var.v23*(var.v20-1))))>var.v32 )) ) { var.v26=var.v11*(var.v16+var.v7*(var.v39-1)); var.v31=var.v24*(var.v3+var.v23*(var.v20-1)); var.v41=MapRange(var.v26,0,var.ScrW,0,var.MyScrX) var.v46=MapRange(var.v31,0,var.ScrH,0,var.MyScrY) } //то что ниже выполняется всегда // START SCRIPT RazrMouseDriver //Ниже проверки RazrMouseDriver var.v41=var.v41+var.v42*var.MyUskX var.v46=var.v46+var.v44*var.MyUskY if (var.v41<0) { var.v41=0 } elseif (var.v41>var.MyScrX) { var.v41=var.MyScrX } if (var.v46<0) { var.v46=0 } elseif (var.v46>var.MyScrY) { var.v46=var.MyScrY } //выше проверки RazrMouseDriver // END SCRIPT RazrMouseDriver var.v26=maprange(var.v41,0,var.MyScrX,0,var.ScrW) var.v31=maprange(var.v46,0,var.MyScrY,0,var.ScrH) var.v37=false; if (var.v29 = 8 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=9 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=7 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=13 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=3 } else var.v37=false; } if (var.v29 = 9 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=10 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=8 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=14 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=4 } else var.v37=false; } if (var.v29 = 10 && var.v37=false) { var.v37=true; if (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=9 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=15 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=5 } else var.v37=false; } //// if (var.v29 = 7 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=8 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=6 } else var.v37=false; } //// if (var.v29 = 6 && var.v37=false) { var.v37=true; if ( (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) AND (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) ) { var.v29=7 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=1 } else var.v37=false; } //// if (var.v29 = 1 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=6 } else var.v37=false; } //// if (var.v29 = 3 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=8 } else var.v37=false; } //// if (var.v29 = 13 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=8 } else var.v37=false; } //// if (var.v29 = 4 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=9 } else var.v37=false; } //// if (var.v29 = 14 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=9 } else var.v37=false; } //// if (var.v29 = 5 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=10 } else var.v37=false; } //// if (var.v29 = 15 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=10 } else var.v37=false; } //Блок нажатия кнопок if (var.v37=true ) { if (var.v29=3) { Key.One = 1; // 1 Key.Two = 0; // 2 Key.Three = 0;// 3 Key.Four = 0; // 4 Key.Five = 0; // 5 Key.Six = 0; // 6 Key.Zero = 0; // R Key.N = 0; // N } elseif (var.v29=13) { Key.One = 0; Key.Two = 1; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=4) { Key.One = 0; Key.Two = 0; Key.Three = 1; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=14) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 1; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=5) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 1; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=15) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 1; Key.Zero = 0; Key.N = 0; } elseif (var.v29=1) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 1; Key.N = 0; } else { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 1; } } //// }//то что выше выполняется только при нажатой кнопке XButton1 (стрелка налево или "назад" сбоку мышки) } if (var.v35=3) { //Улучшенный обзор при зажатой кнопке XButton2 (стрелка направо или "вперёд" сбоку мышки) //START Регулировка влево\вправо; вперёд\назад faketrackir.x=faketrackir.x+ var.v42*var.MyUskFX; faketrackir.z=faketrackir.z- var.v44*var.MyUskFZ; //END Регулировка влево\вправо; вперёд\назад //START Регулировка по высоте при зажатой кнопке XButton2 (стрелка направо или "вперёд" сбоку мышки) и одновременной прокруткой колёсиком мышки if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+var.MyMinUskY *var.MyUskFY } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-var.MyMinUskY *var.MyUskFY } //END Регулировка по высоте } if (var.v35=4) { //Регулировка положения водителя (вперёд-назад) при зажатой правой кнопке мышки и одновременной прокрутке колёсиком // CAMERA Bnepeg\Ha3ag if (mouse.WheelUp) { FakeTrackIR.z=FakeTrackIR.z+var.MyMinUskZ } if (mouse.WheelDown) { FakeTrackIR.z=FakeTrackIR.z-var.MyMinUskZ } ///////////END CAMERA Bnepeg\Ha3ag var.v45=var.v45+var.v42*var.MyUskTRX var.v43=var.v43+var.v44*var.MyUskTRY if (var.v45<0) { var.v45=0 } elseif (var.v45>var.MyScrTRX) { var.v45=var.MyScrTRX } if (var.v43<0) { var.v43=0 } elseif (var.v43>var.MyScrTRY) { var.v43=var.MyScrtRY } FakeTrackIR.yaw = MapRange(var.v45, 0, var.MyScrTRX, -180, 180) FakeTrackIR.pitch = MapRange(var.v43, 0, var.MyScrTRY, 180, -180) }//то что выше выполняется только при нажатой правой кнопке if (var.v35=5) { var.v45 = var.MyScrX/2 var.v43 = var.MyScrY/2 mouse.cursorposy = var.scrH/2 FakeTrackIR.yaw = 0 FakeTrackIR.pitch = 0 FakeTrackIR.x=0 FakeTrackIR.y=0 FakeTrackIR.z=0 FakeTrackIR.roll=0 } //RMDr выполняется постоянно, желательно в конец скрипта var.v48=mouse.DirectInputX //var.v48 var.v47=mouse.DirectInputY //var.v47 //END RMDr выполняется постоянно, желательно в конец скрипта } // Конец того что включается\выключается кнопкой F9 }
Всех с Наступающим Новым ГОДОМ!!!!!!
GlovePIE
-
- Новенький
- Сообщения:10
- Зарегистрирован:Сб дек 24, 2011 8:29 pm
- Откуда:Москва
- Контактная информация:
Re: GlovePIE
посмотри на последние три строчки той цитаты, что выше...
найди там спойлер "script razrmkpp.pie" , и нажми +
найди там спойлер "script razrmkpp.pie" , и нажми +
http://vk.com/programmirovanie - Программирование на заказ
Re: GlovePIE
Ребят я так понимаю тут надо скачивать программу GlovePie и вставлять код туда? Или что-то подругому?
Re: GlovePIE
у меня почему то не работает((((((((razr писал(а):хорошо....
Функции скрипта:
1.) Реализация МКПП: 6 (мышь)
2.) Эмуляция TrackIR (мышь ИЛИ мышь+клава)
Требования к скрипту:
0.) наличие GlovePIE
1.) мышка с боковыми кнопками (XButton1 и XButton2), с правой кнопкой и колёсиком
2.) клавиатура с желательно работающими кнопками: F9, Z, X, V, K, L, Y, LeftControl, LeftAlt
Инструкции и настройки:
Запуск:
1.) запустить GlovePIE и вставить код скрипта(возможно в дальнейшем реализовать автозагрузку)
2.) Нажать в окне GlovePIE "Run"
3.) При необходимости выполнить первоначальные настройки скрипта (читать ниже)
4.) сам скрипт активируется нажатием кнопки "F9" (по умолчанию выключен)
[spoiler МКПП]представлена в видеПо умолчанию включается передача N между 3 и 4-ой.Код: Выделить всё
|R| |1|3|5| - - -|N|- |2|4|6| где "-" обозначается положение рукоятки рычага кор. передач, из которых при отпуске рукоятки , она сама возвращается в положение N
В скрипте реализован автовозврат в нейтральное положение. Он действует ,например тогда, когда вы выключаете заднюю передачу и не включаете никакую другую...
Для нормальной работы скрипта в настройках 3D инструктора нужно выставить след настройки управления:
Первая передача - клавиша "1" (цифра 1)
Вторая передача - клавиша "2"
Третья передача - клавиша "3"
Четвёртая передача - клавиша "4"
Пятая передача - клавиша "5"
Шестая передача - клавиша "6"
Задний ход - клавиша "0"
Нейтральная передача - клавиша "N"[/spoiler]
[spoiler Эмуляция TrackIR]1.) Верчение головой с помощью мышки:
Для верчения следует зажать правую кнопку мышки и водить мышкой вп\назад , влево\вправо
2.) Перемещения камеры:
2.1) Ускоренные перемещения камеры:
Перемещение вперёд\назад: при зажатой на клавиатуре кнопке Z нужно прокручивать колёсиком
Перемещение влево\вправо: при зажатой на клавиатуре кнопке X нужно прокручивать колёсиком
Перемещение вверх\вниз: при зажатой на клавиатуре кнопке Y нужно прокручивать колёсиком
Боковой наклон камеры: при зажатой на клавиатуре кнопке K нужно прокручивать колёсиком
Выглядывание из левого и правого окошка: из левого кнопка "LeftCTRL", из правого - "LeftALT" (проверено на Ваз2170, для других надо подбирать индивидуальные положения камеры)
2.) Замедленные перемещения камеры:
Перемещение вперёд\назад: при зажатой правой кнопке мышки и одновременной прокрутке колёсиком мышки
Перемещение вверх\вниз(Регулировка высоты): при зажатой на клавиатуре кнопке V нужно прокручивать колёсиком
Универсальная регулировка положения камеры - для этого нужно зажать на боковой части мышки кнопку XButton2 (=>):
Перемещение вперёд\назад и влево\вправо осуществляется перемещением курсора мышки
Регулировка высоты осуществляется прокруткой колёсика мышки
Возврат в центральное положение камеры:
Для этого нужно нажать среднюю кнопку мышки(не бойтесь нажать на колёсик)[/spoiler]
[spoiler Первоначальная настройка скрипта]0.) настройки следует менять только в самых первых строках скрипта, но не в его конце
границы настроек выделены комментариями //
все настройки связаны только с настройкой чувствительности мышки.
1.) Разрешение экрана задаётся либо автоматическиЛибо вручную, если вручную то нужно расскомментировать "//" две строчки что нижеКод: Выделить всё
var.scrW=screen.Width var.scrH=screen.Height
2.) Настройка Cursor2Код: Выделить всё
var.scrW=1680 -разрешение по горизонтали var.scrH=1050 -разрешение по вертикали
Настройка Cursor3Код: Выделить всё
var.MyScrX=var.scrW*10 -Разрешение Cursor2 по X , используется для МКПП, по желанию можно самому изменить или просто стереть множители 10 var.MyScrY=var.scrH*10 -Разрешение Cursor2 по Y
3.)Код: Выделить всё
var.MyScrTRX=var.scrW*10 -Разрешение Cursor3 по X , используется для FaceTrackIR -например 16800 var.MyScrTRY=var.scrH*10 - Разрешение Cursor3 по Y - например 10500
[/spoiler]Код: Выделить всё
var.MyUskX=2,2 -изменять по желанию - ускорение по оси X Cursor2 var.MyUskY=5 //0,5; //7; ускорение по оси Y Cursor2 var.MyUskTRX=4; ускорение по оси X Cursor3 var.MyUskTRY=4; ускорение по оси Y Cursor3 var.MyUskFX=4; ускорение по оси X обзор var.MyUskFY=4; ускорение по оси Y обзор var.MyUskFZ=4; ускорение по оси Z обзор var.MyMinUskX=0,002; ускорение по оси X озор в салоне var.MyMinUskY=0,002; ускорение по оси Y озор в салоне var.MyMinUskZ=0,005; ускорение по оси Z озор в салоне
Сам код:
[spoiler script razrmkpp.pie][/spoiler]Код: Выделить всё
//Key F9- Вкл/Выкл джоя if (F9 = false) { var.v1 = 0; } if (F9 = true and var.v19 = 0 and var.v1 = 0) { var.v19 = 1 //переменная отвечающая за вкл\выкл скрипта var.v1 = 1 //Разрешение экрана задаётся либо автоматически var.scrW=screen.Width var.scrH=screen.Height //Либо вручную, если вручную то нужно расскомментировать "//" две строчки что ниже //var.scrW=1680 //разрешение по горизонтали //var.scrH=1050 //разрешение по вертикали //ниже настройки RazrMouseDriver //Настройка Cursor2 var.MyScrX=var.scrW*10 //Разрешение Cursor2 по X , используется для МКПП, по желанию можно самому изменить или просто стереть множители 10 var.MyScrY=var.scrH*10 //Разрешение Cursor2 по Y //Настройка Cursor3 var.MyScrTRX=var.scrW*10 //Разрешение Cursor3 по X , используется для FaceTrackIR //например 16800 var.MyScrTRY=var.scrH*10 //Разрешение Cursor3 по Y //например 10500 //Прочие настройки var.v41=var.MyScrX/2; //Не изменять var.v46=var.MyScrY/2; //Не изменять var.v45=var.MyScrTRX/2; //Не изменять var.v43=var.MyScrTRY/2; //Не изменять var.MyUskX=2,2 //0,3; //1,9; //изменять по желанию - ускорение по оси X Cursor2 var.MyUskY=5 //0,5; //7; //изменять по желанию - ускорение по оси Y Cursor2 var.MyUskTRX=4; //изменять по желанию - ускорение по оси X Cursor3 var.MyUskTRY=4; //изменять по желанию - ускорение по оси Y Cursor3 var.MyUskFX=4; //изменять по желанию - ускорение по оси X обзор var.MyUskFY=4; //изменять по желанию - ускорение по оси Y обзор var.MyUskFZ=4; //изменять по желанию - ускорение по оси Z обзор var.MyMinUskX=0,002; //изменять по желанию - ускорение по оси X озор в салоне var.MyMinUskY=0,002; //изменять по желанию - ускорение по оси Y озор в салоне var.MyMinUskZ=0,005; //изменять по желанию - ускорение по оси Z озор в салоне //Выше первоначальная конфигурация RazrMouseDriver //то что ниже лучше не менять var.v6 = 1000; var.v14 = 1000; var.v9 = 1; var.v15 = 1; var.v2 = -180; var.v12 = 180; var.v28 = 180; var.v18 = -180; var.v5 = 5; var.v4 = 3; var.v17 = -144; var.v21 = 144; var.v8 = 150; var.v25 = -150; var.v16 = 36; var.v27 = 288; var.v3 = 60; var.v10 = 300; var.v7 = (abs(var.v2) + abs(var.v12) )/ var.v5 ; var.v23 = (abs(var.v28) + abs(var.v18) )/ var.v4 ; var.v30 = var.v7 / 2; var.v32 = var.v23 / 2; var.v11= abs(var.scrW/(abs(var.v2)+abs(var.v12))); var.v24= abs(var.scrH/(abs(var.v28)+abs(var.v18))); var.v26= var.v11*(var.v16+var.v7*3); var.v31= var.v24*(var.v3+var.v23); var.v34 = var.scrW/2; var.v36 = var.scrH/2; var.v13 = var.v34; var.v38 = var.v36; var.v40 = 0 var.v33 = 0 var.v29 = 9; var.v37 = false; elseif (F9 = true and var.v19 = 1 and var.v1 = 0) { var.v19 = 0 var.v1 = 1 } } if (var.v19 = true) { var.v22=var.v35; if (mouse.XButton1 = 1) { var.v35 = 2; // переключение МКПП } elseif (mouse.XButton2 = 1) { var.v35 = 3; // обзор:вп\нз вл\вп } elseif (mouse.RightButton) { var.v35 = 4 // верчение головой } elseif (mouse.MiddleButton) { var.v35=5 // по центру } else { var.v35=1; } if (var.v37=false) { if (var.v29 IN(6,7,8,10) ) { var.v29=9; var.v20=2; var.v39=4; } } if var.v29 = 1 { var.v20=1; var.v39=1; } elseif var.v29=2 { var.v20=1; var.v39=2; } elseif var.v29=3 { var.v20=1; var.v39=3; } elseif var.v29=4 { var.v20=1; var.v39=4; } elseif var.v29=5 { var.v20=1; var.v39=5; } elseif var.v29=6 { var.v20=2; var.v39=1; } elseif var.v29=7 { var.v20=2; var.v39=2; } elseif var.v29=8 { var.v20=2; var.v39=3; } elseif var.v29=9 { var.v20=2; var.v39=4; } elseif var.v29=10 { var.v20=2; var.v39=5; } elseif var.v29=11 { var.v20=3; var.v39=1; } elseif var.v29=12 { var.v20=3; var.v39=2; } elseif var.v29=13 { var.v20=3; var.v39=3; } elseif var.v29=14 { var.v20=3; var.v39=4; } elseif var.v29=15 { var.v20=3; var.v39=5; } //Выполняется постоянно RazrMouseDriver var.v42=-(var.v48 - mouse.DirectInputX) //var.MyDX var.v44=-(var.v47 - mouse.DirectInputY) //var.MyDY //END Выполняется постоянно RazrMouseDriver //Выполняется постоянно: доп. функции if (key.X) { //перемещение влево\вправо if (mouse.WheelUp) { FakeTrackIR.x=FakeTrackIR.x+2 } if (mouse.WheelDown) { FakeTrackIR.x=FakeTrackIR.x-2 } } if (key.Z) { //перемещение вперёд\назад if (mouse.WheelUp) { FakeTrackIR.z=FakeTrackIR.z+2 } if (mouse.WheelDown) { FakeTrackIR.z=FakeTrackIR.z-2 } } if (key.y) { //ВЫСОТА if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+2 } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-2 } } if (key.K) { //HAKJIOH if (mouse.WheelUp) { FakeTrackIR.roll=FakeTrackIR.roll+2 } if (mouse.WheelDown) { FakeTrackIR.roll=FakeTrackIR.roll-2 } } if (key.L) { //перемещение влево\вправо if (mouse.WheelUp) { FakeTrackIR.x=FakeTrackIR.x+0,2 } if (mouse.WheelDown) { FakeTrackIR.x=FakeTrackIR.x-0,2 } } if (key.V) { //BbIcoTA if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+var.MyMinUskY } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-var.MyMinUskY } } //**START key.leftcontrol and ALT ** Высунуть голову из салона if (key.leftcontrol) { //левое окошко FakeTrackIR.x=-0,6 } if (key.leftalt) { //правое FakeTrackIR.x=1,8 } //**END key.leftcontrol and ALT ** Высунуть голову из салона //END Выполняется постоянно: доп. функции if (var.v35=2) { if ((var.v22<>var.v35) and ((abs(mouse.cursorposx-(var.v11*(var.v16+var.v7*(var.v39-1))))>var.v30) OR (abs(mouse.cursorposy-(var.v24*(var.v3+var.v23*(var.v20-1))))>var.v32 )) ) { var.v26=var.v11*(var.v16+var.v7*(var.v39-1)); var.v31=var.v24*(var.v3+var.v23*(var.v20-1)); var.v41=MapRange(var.v26,0,var.ScrW,0,var.MyScrX) var.v46=MapRange(var.v31,0,var.ScrH,0,var.MyScrY) } //то что ниже выполняется всегда // START SCRIPT RazrMouseDriver //Ниже проверки RazrMouseDriver var.v41=var.v41+var.v42*var.MyUskX var.v46=var.v46+var.v44*var.MyUskY if (var.v41<0) { var.v41=0 } elseif (var.v41>var.MyScrX) { var.v41=var.MyScrX } if (var.v46<0) { var.v46=0 } elseif (var.v46>var.MyScrY) { var.v46=var.MyScrY } //выше проверки RazrMouseDriver // END SCRIPT RazrMouseDriver var.v26=maprange(var.v41,0,var.MyScrX,0,var.ScrW) var.v31=maprange(var.v46,0,var.MyScrY,0,var.ScrH) var.v37=false; if (var.v29 = 8 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=9 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=7 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=13 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=3 } else var.v37=false; } if (var.v29 = 9 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=10 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=8 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=14 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=4 } else var.v37=false; } if (var.v29 = 10 && var.v37=false) { var.v37=true; if (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=9 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=15 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=5 } else var.v37=false; } //// if (var.v29 = 7 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=8 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=6 } else var.v37=false; } //// if (var.v29 = 6 && var.v37=false) { var.v37=true; if ( (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) AND (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) ) { var.v29=7 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=1 } else var.v37=false; } //// if (var.v29 = 1 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=6 } else var.v37=false; } //// if (var.v29 = 3 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=8 } else var.v37=false; } //// if (var.v29 = 13 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=8 } else var.v37=false; } //// if (var.v29 = 4 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=9 } else var.v37=false; } //// if (var.v29 = 14 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=9 } else var.v37=false; } //// if (var.v29 = 5 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=10 } else var.v37=false; } //// if (var.v29 = 15 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=10 } else var.v37=false; } //Блок нажатия кнопок if (var.v37=true ) { if (var.v29=3) { Key.One = 1; // 1 Key.Two = 0; // 2 Key.Three = 0;// 3 Key.Four = 0; // 4 Key.Five = 0; // 5 Key.Six = 0; // 6 Key.Zero = 0; // R Key.N = 0; // N } elseif (var.v29=13) { Key.One = 0; Key.Two = 1; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=4) { Key.One = 0; Key.Two = 0; Key.Three = 1; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=14) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 1; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=5) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 1; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=15) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 1; Key.Zero = 0; Key.N = 0; } elseif (var.v29=1) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 1; Key.N = 0; } else { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 1; } } //// }//то что выше выполняется только при нажатой кнопке XButton1 (стрелка налево или "назад" сбоку мышки) } if (var.v35=3) { //Улучшенный обзор при зажатой кнопке XButton2 (стрелка направо или "вперёд" сбоку мышки) //START Регулировка влево\вправо; вперёд\назад faketrackir.x=faketrackir.x+ var.v42*var.MyUskFX; faketrackir.z=faketrackir.z- var.v44*var.MyUskFZ; //END Регулировка влево\вправо; вперёд\назад //START Регулировка по высоте при зажатой кнопке XButton2 (стрелка направо или "вперёд" сбоку мышки) и одновременной прокруткой колёсиком мышки if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+var.MyMinUskY *var.MyUskFY } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-var.MyMinUskY *var.MyUskFY } //END Регулировка по высоте } if (var.v35=4) { //Регулировка положения водителя (вперёд-назад) при зажатой правой кнопке мышки и одновременной прокрутке колёсиком // CAMERA Bnepeg\Ha3ag if (mouse.WheelUp) { FakeTrackIR.z=FakeTrackIR.z+var.MyMinUskZ } if (mouse.WheelDown) { FakeTrackIR.z=FakeTrackIR.z-var.MyMinUskZ } ///////////END CAMERA Bnepeg\Ha3ag var.v45=var.v45+var.v42*var.MyUskTRX var.v43=var.v43+var.v44*var.MyUskTRY if (var.v45<0) { var.v45=0 } elseif (var.v45>var.MyScrTRX) { var.v45=var.MyScrTRX } if (var.v43<0) { var.v43=0 } elseif (var.v43>var.MyScrTRY) { var.v43=var.MyScrtRY } FakeTrackIR.yaw = MapRange(var.v45, 0, var.MyScrTRX, -180, 180) FakeTrackIR.pitch = MapRange(var.v43, 0, var.MyScrTRY, 180, -180) }//то что выше выполняется только при нажатой правой кнопке if (var.v35=5) { var.v45 = var.MyScrX/2 var.v43 = var.MyScrY/2 mouse.cursorposy = var.scrH/2 FakeTrackIR.yaw = 0 FakeTrackIR.pitch = 0 FakeTrackIR.x=0 FakeTrackIR.y=0 FakeTrackIR.z=0 FakeTrackIR.roll=0 } //RMDr выполняется постоянно, желательно в конец скрипта var.v48=mouse.DirectInputX //var.v48 var.v47=mouse.DirectInputY //var.v47 //END RMDr выполняется постоянно, желательно в конец скрипта } // Конец того что включается\выключается кнопкой F9 }
Всех с Наступающим Новым ГОДОМ!!!!!!
Re: GlovePIE
А сколько осей нужно на джойстике,чтобы приспособить его под МКПП ?
Конвертирую Seat Leon Cupra 2007
Re: GlovePIE
Привет, подскажи пожалуйста как совместить скрипт "вращения головой":razr писал(а):хорошо....
Функции скрипта:
1.) Реализация МКПП: 6 (мышь)
2.) Эмуляция TrackIR (мышь ИЛИ мышь+клава)
Требования к скрипту:
0.) наличие GlovePIE
1.) мышка с боковыми кнопками (XButton1 и XButton2), с правой кнопкой и колёсиком
2.) клавиатура с желательно работающими кнопками: F9, Z, X, V, K, L, Y, LeftControl, LeftAlt
Инструкции и настройки:
Запуск:
1.) запустить GlovePIE и вставить код скрипта(возможно в дальнейшем реализовать автозагрузку)
2.) Нажать в окне GlovePIE "Run"
3.) При необходимости выполнить первоначальные настройки скрипта (читать ниже)
4.) сам скрипт активируется нажатием кнопки "F9" (по умолчанию выключен)
[spoiler МКПП]представлена в видеПо умолчанию включается передача N между 3 и 4-ой.Код: Выделить всё
|R| |1|3|5| - - -|N|- |2|4|6| где "-" обозначается положение рукоятки рычага кор. передач, из которых при отпуске рукоятки , она сама возвращается в положение N
В скрипте реализован автовозврат в нейтральное положение. Он действует ,например тогда, когда вы выключаете заднюю передачу и не включаете никакую другую...
Для нормальной работы скрипта в настройках 3D инструктора нужно выставить след настройки управления:
Первая передача - клавиша "1" (цифра 1)
Вторая передача - клавиша "2"
Третья передача - клавиша "3"
Четвёртая передача - клавиша "4"
Пятая передача - клавиша "5"
Шестая передача - клавиша "6"
Задний ход - клавиша "0"
Нейтральная передача - клавиша "N"[/spoiler]
[spoiler Эмуляция TrackIR]1.) Верчение головой с помощью мышки:
Для верчения следует зажать правую кнопку мышки и водить мышкой вп\назад , влево\вправо
2.) Перемещения камеры:
2.1) Ускоренные перемещения камеры:
Перемещение вперёд\назад: при зажатой на клавиатуре кнопке Z нужно прокручивать колёсиком
Перемещение влево\вправо: при зажатой на клавиатуре кнопке X нужно прокручивать колёсиком
Перемещение вверх\вниз: при зажатой на клавиатуре кнопке Y нужно прокручивать колёсиком
Боковой наклон камеры: при зажатой на клавиатуре кнопке K нужно прокручивать колёсиком
Выглядывание из левого и правого окошка: из левого кнопка "LeftCTRL", из правого - "LeftALT" (проверено на Ваз2170, для других надо подбирать индивидуальные положения камеры)
2.) Замедленные перемещения камеры:
Перемещение вперёд\назад: при зажатой правой кнопке мышки и одновременной прокрутке колёсиком мышки
Перемещение вверх\вниз(Регулировка высоты): при зажатой на клавиатуре кнопке V нужно прокручивать колёсиком
Универсальная регулировка положения камеры - для этого нужно зажать на боковой части мышки кнопку XButton2 (=>):
Перемещение вперёд\назад и влево\вправо осуществляется перемещением курсора мышки
Регулировка высоты осуществляется прокруткой колёсика мышки
Возврат в центральное положение камеры:
Для этого нужно нажать среднюю кнопку мышки(не бойтесь нажать на колёсик)[/spoiler]
[spoiler Первоначальная настройка скрипта]0.) настройки следует менять только в самых первых строках скрипта, но не в его конце
границы настроек выделены комментариями //
все настройки связаны только с настройкой чувствительности мышки.
1.) Разрешение экрана задаётся либо автоматическиЛибо вручную, если вручную то нужно расскомментировать "//" две строчки что нижеКод: Выделить всё
var.scrW=screen.Width var.scrH=screen.Height
2.) Настройка Cursor2Код: Выделить всё
var.scrW=1680 -разрешение по горизонтали var.scrH=1050 -разрешение по вертикали
Настройка Cursor3Код: Выделить всё
var.MyScrX=var.scrW*10 -Разрешение Cursor2 по X , используется для МКПП, по желанию можно самому изменить или просто стереть множители 10 var.MyScrY=var.scrH*10 -Разрешение Cursor2 по Y
3.)Код: Выделить всё
var.MyScrTRX=var.scrW*10 -Разрешение Cursor3 по X , используется для FaceTrackIR -например 16800 var.MyScrTRY=var.scrH*10 - Разрешение Cursor3 по Y - например 10500
[/spoiler]Код: Выделить всё
var.MyUskX=2,2 -изменять по желанию - ускорение по оси X Cursor2 var.MyUskY=5 //0,5; //7; ускорение по оси Y Cursor2 var.MyUskTRX=4; ускорение по оси X Cursor3 var.MyUskTRY=4; ускорение по оси Y Cursor3 var.MyUskFX=4; ускорение по оси X обзор var.MyUskFY=4; ускорение по оси Y обзор var.MyUskFZ=4; ускорение по оси Z обзор var.MyMinUskX=0,002; ускорение по оси X озор в салоне var.MyMinUskY=0,002; ускорение по оси Y озор в салоне var.MyMinUskZ=0,005; ускорение по оси Z озор в салоне
Сам код:
[spoiler script razrmkpp.pie][/spoiler]Код: Выделить всё
//Key F9- Вкл/Выкл джоя if (F9 = false) { var.v1 = 0; } if (F9 = true and var.v19 = 0 and var.v1 = 0) { var.v19 = 1 //переменная отвечающая за вкл\выкл скрипта var.v1 = 1 //Разрешение экрана задаётся либо автоматически var.scrW=screen.Width var.scrH=screen.Height //Либо вручную, если вручную то нужно расскомментировать "//" две строчки что ниже //var.scrW=1680 //разрешение по горизонтали //var.scrH=1050 //разрешение по вертикали //ниже настройки RazrMouseDriver //Настройка Cursor2 var.MyScrX=var.scrW*10 //Разрешение Cursor2 по X , используется для МКПП, по желанию можно самому изменить или просто стереть множители 10 var.MyScrY=var.scrH*10 //Разрешение Cursor2 по Y //Настройка Cursor3 var.MyScrTRX=var.scrW*10 //Разрешение Cursor3 по X , используется для FaceTrackIR //например 16800 var.MyScrTRY=var.scrH*10 //Разрешение Cursor3 по Y //например 10500 //Прочие настройки var.v41=var.MyScrX/2; //Не изменять var.v46=var.MyScrY/2; //Не изменять var.v45=var.MyScrTRX/2; //Не изменять var.v43=var.MyScrTRY/2; //Не изменять var.MyUskX=2,2 //0,3; //1,9; //изменять по желанию - ускорение по оси X Cursor2 var.MyUskY=5 //0,5; //7; //изменять по желанию - ускорение по оси Y Cursor2 var.MyUskTRX=4; //изменять по желанию - ускорение по оси X Cursor3 var.MyUskTRY=4; //изменять по желанию - ускорение по оси Y Cursor3 var.MyUskFX=4; //изменять по желанию - ускорение по оси X обзор var.MyUskFY=4; //изменять по желанию - ускорение по оси Y обзор var.MyUskFZ=4; //изменять по желанию - ускорение по оси Z обзор var.MyMinUskX=0,002; //изменять по желанию - ускорение по оси X озор в салоне var.MyMinUskY=0,002; //изменять по желанию - ускорение по оси Y озор в салоне var.MyMinUskZ=0,005; //изменять по желанию - ускорение по оси Z озор в салоне //Выше первоначальная конфигурация RazrMouseDriver //то что ниже лучше не менять var.v6 = 1000; var.v14 = 1000; var.v9 = 1; var.v15 = 1; var.v2 = -180; var.v12 = 180; var.v28 = 180; var.v18 = -180; var.v5 = 5; var.v4 = 3; var.v17 = -144; var.v21 = 144; var.v8 = 150; var.v25 = -150; var.v16 = 36; var.v27 = 288; var.v3 = 60; var.v10 = 300; var.v7 = (abs(var.v2) + abs(var.v12) )/ var.v5 ; var.v23 = (abs(var.v28) + abs(var.v18) )/ var.v4 ; var.v30 = var.v7 / 2; var.v32 = var.v23 / 2; var.v11= abs(var.scrW/(abs(var.v2)+abs(var.v12))); var.v24= abs(var.scrH/(abs(var.v28)+abs(var.v18))); var.v26= var.v11*(var.v16+var.v7*3); var.v31= var.v24*(var.v3+var.v23); var.v34 = var.scrW/2; var.v36 = var.scrH/2; var.v13 = var.v34; var.v38 = var.v36; var.v40 = 0 var.v33 = 0 var.v29 = 9; var.v37 = false; elseif (F9 = true and var.v19 = 1 and var.v1 = 0) { var.v19 = 0 var.v1 = 1 } } if (var.v19 = true) { var.v22=var.v35; if (mouse.XButton1 = 1) { var.v35 = 2; // переключение МКПП } elseif (mouse.XButton2 = 1) { var.v35 = 3; // обзор:вп\нз вл\вп } elseif (mouse.RightButton) { var.v35 = 4 // верчение головой } elseif (mouse.MiddleButton) { var.v35=5 // по центру } else { var.v35=1; } if (var.v37=false) { if (var.v29 IN(6,7,8,10) ) { var.v29=9; var.v20=2; var.v39=4; } } if var.v29 = 1 { var.v20=1; var.v39=1; } elseif var.v29=2 { var.v20=1; var.v39=2; } elseif var.v29=3 { var.v20=1; var.v39=3; } elseif var.v29=4 { var.v20=1; var.v39=4; } elseif var.v29=5 { var.v20=1; var.v39=5; } elseif var.v29=6 { var.v20=2; var.v39=1; } elseif var.v29=7 { var.v20=2; var.v39=2; } elseif var.v29=8 { var.v20=2; var.v39=3; } elseif var.v29=9 { var.v20=2; var.v39=4; } elseif var.v29=10 { var.v20=2; var.v39=5; } elseif var.v29=11 { var.v20=3; var.v39=1; } elseif var.v29=12 { var.v20=3; var.v39=2; } elseif var.v29=13 { var.v20=3; var.v39=3; } elseif var.v29=14 { var.v20=3; var.v39=4; } elseif var.v29=15 { var.v20=3; var.v39=5; } //Выполняется постоянно RazrMouseDriver var.v42=-(var.v48 - mouse.DirectInputX) //var.MyDX var.v44=-(var.v47 - mouse.DirectInputY) //var.MyDY //END Выполняется постоянно RazrMouseDriver //Выполняется постоянно: доп. функции if (key.X) { //перемещение влево\вправо if (mouse.WheelUp) { FakeTrackIR.x=FakeTrackIR.x+2 } if (mouse.WheelDown) { FakeTrackIR.x=FakeTrackIR.x-2 } } if (key.Z) { //перемещение вперёд\назад if (mouse.WheelUp) { FakeTrackIR.z=FakeTrackIR.z+2 } if (mouse.WheelDown) { FakeTrackIR.z=FakeTrackIR.z-2 } } if (key.y) { //ВЫСОТА if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+2 } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-2 } } if (key.K) { //HAKJIOH if (mouse.WheelUp) { FakeTrackIR.roll=FakeTrackIR.roll+2 } if (mouse.WheelDown) { FakeTrackIR.roll=FakeTrackIR.roll-2 } } if (key.L) { //перемещение влево\вправо if (mouse.WheelUp) { FakeTrackIR.x=FakeTrackIR.x+0,2 } if (mouse.WheelDown) { FakeTrackIR.x=FakeTrackIR.x-0,2 } } if (key.V) { //BbIcoTA if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+var.MyMinUskY } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-var.MyMinUskY } } //**START key.leftcontrol and ALT ** Высунуть голову из салона if (key.leftcontrol) { //левое окошко FakeTrackIR.x=-0,6 } if (key.leftalt) { //правое FakeTrackIR.x=1,8 } //**END key.leftcontrol and ALT ** Высунуть голову из салона //END Выполняется постоянно: доп. функции if (var.v35=2) { if ((var.v22<>var.v35) and ((abs(mouse.cursorposx-(var.v11*(var.v16+var.v7*(var.v39-1))))>var.v30) OR (abs(mouse.cursorposy-(var.v24*(var.v3+var.v23*(var.v20-1))))>var.v32 )) ) { var.v26=var.v11*(var.v16+var.v7*(var.v39-1)); var.v31=var.v24*(var.v3+var.v23*(var.v20-1)); var.v41=MapRange(var.v26,0,var.ScrW,0,var.MyScrX) var.v46=MapRange(var.v31,0,var.ScrH,0,var.MyScrY) } //то что ниже выполняется всегда // START SCRIPT RazrMouseDriver //Ниже проверки RazrMouseDriver var.v41=var.v41+var.v42*var.MyUskX var.v46=var.v46+var.v44*var.MyUskY if (var.v41<0) { var.v41=0 } elseif (var.v41>var.MyScrX) { var.v41=var.MyScrX } if (var.v46<0) { var.v46=0 } elseif (var.v46>var.MyScrY) { var.v46=var.MyScrY } //выше проверки RazrMouseDriver // END SCRIPT RazrMouseDriver var.v26=maprange(var.v41,0,var.MyScrX,0,var.ScrW) var.v31=maprange(var.v46,0,var.MyScrY,0,var.ScrH) var.v37=false; if (var.v29 = 8 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=9 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=7 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=13 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=3 } else var.v37=false; } if (var.v29 = 9 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=10 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=8 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=14 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=4 } else var.v37=false; } if (var.v29 = 10 && var.v37=false) { var.v37=true; if (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=9 }elseif (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=15 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=5 } else var.v37=false; } //// if (var.v29 = 7 && var.v37=false) { var.v37=true; if (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) { var.v29=8 }elseif (var.v26 < var.v11*(var.v16+var.v7*(var.v39-1)-var.v30) ) { var.v29=6 } else var.v37=false; } //// if (var.v29 = 6 && var.v37=false) { var.v37=true; if ( (var.v26 > var.v11*(var.v16+var.v7*(var.v39-1)+var.v30) ) AND (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) ) { var.v29=7 }elseif (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=1 } else var.v37=false; } //// if (var.v29 = 1 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=6 } else var.v37=false; } //// if (var.v29 = 3 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=8 } else var.v37=false; } //// if (var.v29 = 13 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=8 } else var.v37=false; } //// if (var.v29 = 4 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=9 } else var.v37=false; } //// if (var.v29 = 14 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=9 } else var.v37=false; } //// if (var.v29 = 5 && var.v37=false) { var.v37=true; if (var.v31 > var.v24*(var.v3+var.v23*(var.v20-1)+var.v32) ) { var.v29=10 } else var.v37=false; } //// if (var.v29 = 15 && var.v37=false) { var.v37=true; if (var.v31 < var.v24*(var.v3+var.v23*(var.v20-1)-var.v32) ) { var.v29=10 } else var.v37=false; } //Блок нажатия кнопок if (var.v37=true ) { if (var.v29=3) { Key.One = 1; // 1 Key.Two = 0; // 2 Key.Three = 0;// 3 Key.Four = 0; // 4 Key.Five = 0; // 5 Key.Six = 0; // 6 Key.Zero = 0; // R Key.N = 0; // N } elseif (var.v29=13) { Key.One = 0; Key.Two = 1; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=4) { Key.One = 0; Key.Two = 0; Key.Three = 1; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=14) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 1; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=5) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 1; Key.Six = 0; Key.Zero = 0; Key.N = 0; } elseif (var.v29=15) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 1; Key.Zero = 0; Key.N = 0; } elseif (var.v29=1) { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 1; Key.N = 0; } else { Key.One = 0; Key.Two = 0; Key.Three = 0; Key.Four = 0; Key.Five = 0; Key.Six = 0; Key.Zero = 0; Key.N = 1; } } //// }//то что выше выполняется только при нажатой кнопке XButton1 (стрелка налево или "назад" сбоку мышки) } if (var.v35=3) { //Улучшенный обзор при зажатой кнопке XButton2 (стрелка направо или "вперёд" сбоку мышки) //START Регулировка влево\вправо; вперёд\назад faketrackir.x=faketrackir.x+ var.v42*var.MyUskFX; faketrackir.z=faketrackir.z- var.v44*var.MyUskFZ; //END Регулировка влево\вправо; вперёд\назад //START Регулировка по высоте при зажатой кнопке XButton2 (стрелка направо или "вперёд" сбоку мышки) и одновременной прокруткой колёсиком мышки if (mouse.WheelUp) { FakeTrackIR.y=FakeTrackIR.y+var.MyMinUskY *var.MyUskFY } if (mouse.WheelDown) { FakeTrackIR.y=FakeTrackIR.y-var.MyMinUskY *var.MyUskFY } //END Регулировка по высоте } if (var.v35=4) { //Регулировка положения водителя (вперёд-назад) при зажатой правой кнопке мышки и одновременной прокрутке колёсиком // CAMERA Bnepeg\Ha3ag if (mouse.WheelUp) { FakeTrackIR.z=FakeTrackIR.z+var.MyMinUskZ } if (mouse.WheelDown) { FakeTrackIR.z=FakeTrackIR.z-var.MyMinUskZ } ///////////END CAMERA Bnepeg\Ha3ag var.v45=var.v45+var.v42*var.MyUskTRX var.v43=var.v43+var.v44*var.MyUskTRY if (var.v45<0) { var.v45=0 } elseif (var.v45>var.MyScrTRX) { var.v45=var.MyScrTRX } if (var.v43<0) { var.v43=0 } elseif (var.v43>var.MyScrTRY) { var.v43=var.MyScrtRY } FakeTrackIR.yaw = MapRange(var.v45, 0, var.MyScrTRX, -180, 180) FakeTrackIR.pitch = MapRange(var.v43, 0, var.MyScrTRY, 180, -180) }//то что выше выполняется только при нажатой правой кнопке if (var.v35=5) { var.v45 = var.MyScrX/2 var.v43 = var.MyScrY/2 mouse.cursorposy = var.scrH/2 FakeTrackIR.yaw = 0 FakeTrackIR.pitch = 0 FakeTrackIR.x=0 FakeTrackIR.y=0 FakeTrackIR.z=0 FakeTrackIR.roll=0 } //RMDr выполняется постоянно, желательно в конец скрипта var.v48=mouse.DirectInputX //var.v48 var.v47=mouse.DirectInputY //var.v47 //END RMDr выполняется постоянно, желательно в конец скрипта } // Конец того что включается\выключается кнопкой F9 }
Всех с Наступающим Новым ГОДОМ!!!!!!
Код: Выделить всё
if mouse.MiddleButton = 1 THEN begin
mouse.CursorPosX = (screen.Width) / 2;
mouse.CursorPosY = screen.Height /2;
endif
var.xxx = MapRange(mouse.CursorPosX, 0, screen.Width, -180, 180)
var.yyy = MapRange(mouse.CursorPosY, 0, screen.Height, 180, -180)
FakeTrackIR.yaw = var.xxx;
FakeTrackIR.pitch = var.yyy;
debug = mouse.CursorPosY;
debug = mouse.CursorPosX;
Код: Выделить всё
//**START key.leftcontrol and ALT ** Высунуть голову из салона
if (key.leftcontrol) { //левое окошко
FakeTrackIR.x=-0,6
}
if (key.leftalt) { //правое
FakeTrackIR.x=1,8
}
//**END key.leftcontrol and ALT ** Высунуть голову из салона
-
- Новенький
- Сообщения:10
- Зарегистрирован:Сб дек 24, 2011 8:29 pm
- Откуда:Москва
- Контактная информация:
Re: GlovePIE
хм... что-то проблемки не видно, или я не допонял... вроде нужно "высунуть голову из салона" написать выше твоего вращения...
[spoiler примерно так:][/spoiler]
хотя, вроде догнал теперь
[spoiler второй вариант:][/spoiler]
попробуй второй вариант, вроде бы должно сразу оцентровать взгляд, и камеру переместить в салон, за руль
[spoiler примерно так:]
Код: Выделить всё
//**START key.leftcontrol and ALT ** Высунуть голову из салона
if (key.leftcontrol) { //левое окошко
FakeTrackIR.x=-0,6
}
if (key.leftalt) { //правое
FakeTrackIR.x=1,8
}
//**END key.leftcontrol and ALT ** Высунуть голову из салона
//оцентровка
if mouse.MiddleButton = 1 THEN begin
mouse.CursorPosX = (screen.Width) / 2;
mouse.CursorPosY = screen.Height /2;
endif
var.xxx = MapRange(mouse.CursorPosX, 0, screen.Width, -180, 180)
var.yyy = MapRange(mouse.CursorPosY, 0, screen.Height, 180, -180)
FakeTrackIR.yaw = var.xxx;
FakeTrackIR.pitch = var.yyy;
debug = mouse.CursorPosY;
debug = mouse.CursorPosX;
хотя, вроде догнал теперь
[spoiler второй вариант:]
Код: Выделить всё
//**START key.leftcontrol and ALT ** Высунуть голову из салона
if (key.leftcontrol) { //левое окошко
FakeTrackIR.x=-0,6
}
if (key.leftalt) { //правое
FakeTrackIR.x=1,8
}
//**END key.leftcontrol and ALT ** Высунуть голову из салона
//оцентровка
if mouse.MiddleButton = 1 THEN begin
mouse.cursorposx = screen.Width/2
mouse.cursorposy = screen.Height/2
FakeTrackIR.x=0
FakeTrackIR.y=0
FakeTrackIR.z=0
FakeTrackIR.roll=0
endif
var.xxx = MapRange(mouse.CursorPosX, 0, screen.Width, -180, 180)
var.yyy = MapRange(mouse.CursorPosY, 0, screen.Height, 180, -180)
FakeTrackIR.yaw = var.xxx;
FakeTrackIR.pitch = var.yyy;
debug = mouse.CursorPosY;
debug = mouse.CursorPosX;
попробуй второй вариант, вроде бы должно сразу оцентровать взгляд, и камеру переместить в салон, за руль
http://vk.com/programmirovanie - Программирование на заказ
-
- Новенький
- Сообщения:10
- Зарегистрирован:Сб дек 24, 2011 8:29 pm
- Откуда:Москва
- Контактная информация:
Re: GlovePIE
по идее две X,Y, я лично по-другому поступил, переделал сам джой под мкпп,[spoiler т.е]теперь есть фиксация в передачах, без автовозврата в центрcas4397 писал(а):А сколько осей нужно на джойстике,чтобы приспособить его под МКПП ?
использовал 1 ось джойстика, и 2 кнопки:
ось Х: -180 до 180
кнопка1: при нажатии: 1,3,5 передачи
нажимается при отклонении рукоятки до упора вверх (вместо оси У)
кнопка2: при нажатии: 2,4,6 передачи
нажимается при отклонении рукоятки до упора вниз (вместо оси У)
N.) если ось Х (рукоятка джоя)отклонена до предела влево, и не нажата никакая кнопка, то это нейтралка
N.) если ось Х оцентрована, и не нажата никакая кнопка(рукоятка не поднята и не опущена), то это нейтралка
N.) если ось Х отклонена до предела вправо, и не нажата никакая кнопка, то это нейтралка
1.) если ось Х (рукоятка джоя)отклонена до предела влево, и нажата кнопка1, то это пер1
3.) если ось Х оцентрована, и нажата кнопка1, то это пер3
5.) если ось Х отклонена до предела вправо, и нажата кнопка1, то это пер5
2.) если ось Х (рукоятка джоя)отклонена до предела влево, и нажата кнопка2, то это пер2
4.) если ось Х оцентрована, и нажата кнопка2, то это пер4
6,R.) если ось Х отклонена до предела вправо, и нажата кнопка2, то это пер6(либо задний ход)
{1} {3} {5}
[кнопка1]
(рукоятка
ось Х)
[кнопка2]
{2} {4} {6}
сам код ещё сыроват, выкладывать пока не буду.....[/spoiler]
--------------------------------------------------------------------
а если вы хотите использовать предыдущий скрипт, предназначенный для мышки, то я готов помочь переделать под Джойстик, но только с одним нюансом, при переключении передач нужно будет нажать и удерживать кнопку, иначе не будет нейтральной передачи
http://vk.com/programmirovanie - Программирование на заказ
Re: GlovePIE
Отлично! Спасибо большое, ты мне очень помог! Это то что я хотел.
Re: GlovePIE
Вопрос. Движение мышкой никак не сказывается на верчение с головой. Запускаю сначала 3Di , потом GlovePie ... Втсавляю скрипт, тыкаю ран и ничего.
Re: GlovePIE
Автору темы: Скрипт на переключение передач мышкой не позволяет врубить нейтралку. Доделай.
-
- Новенький
- Сообщения:10
- Зарегистрирован:Сб дек 24, 2011 8:29 pm
- Откуда:Москва
- Контактная информация:
Re: GlovePIE
если ты используешь скрипт Ашота, то там нужно зажимать среднюю кнопку мышки и двигать саму мышку...MrSteve писал(а):Вопрос. Движение мышкой никак не сказывается на верчение с головой. Запускаю сначала 3Di , потом GlovePie ... Втсавляю скрипт, тыкаю ран и ничего.
http://vk.com/programmirovanie - Программирование на заказ
-
- Новенький
- Сообщения:17
- Зарегистрирован:Пн фев 20, 2012 8:11 pm
Re: GlovePIE
mayby tutorial on youtube?
Re: GlovePIE
Напишите мне пожалуйста такой вот скрипт -
-Руление - перемещение мыши по оси Х
-Поворот головы влево - лкм
-Поворот головы право - пкм
-Колесико - переключение передач
Штатно игра мою мышь не определяет.....
-Руление - перемещение мыши по оси Х
-Поворот головы влево - лкм
-Поворот головы право - пкм
-Колесико - переключение передач
Штатно игра мою мышь не определяет.....
Re: GlovePIE
уменя перестал работать GlovePIE .....двойной щелчек идет загрузка и все нифига окно не появляется НО самое главное она в процессах есть