CODE
// Тумблер F9
//Вкл/Выкл джоя
if (F9 = false) then var.f=0
if (F9 = true and var.off = 0 and var.f=0) {
var.off = 1
var.f=1
elseif (F9 = true and var.off = 1 and var.f=0) {
var.off = 0
var.f=1
}
}



if var.off =0 {
// ######## Опрос мышек НАЧАЛО #######
// ############ Mouse1 #######################
if (Mouse1.present) {
if (var.Mouse1_in = false) {

// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Входные параметры:
var.Mouse1_mapX = 1024 //Разрешение оси X, подбирается индивидуально
var.Mouse1_mapY = 1024 //Разрешение оси Y подбирается индивидуально
var.Mouse1_Wheel = 6 //На сколько щелчков колеса мыши разбить ось джойстика

var.Mouse1_mapZ = var.Mouse1_Wheel*120
//Центровка при старте
var.Mouse1_X = var.Mouse1_mapX/2
var.Mouse1_Y = var.Mouse1_mapY/2
var.Mouse1_Z = var.Mouse1_mapZ/2
var.Mouse1_in = true
}
//Здвиг мышки
var.Mouse1_deltax = Delta(Mouse1.DirectInputX)
var.Mouse1_deltay = Delta(Mouse1.DirectInputY)
var.Mouse1_deltaz = Delta(Mouse1.DirectInputZ)

// Новые координаты мыши
var.Mouse1_X = var.Mouse1_X + (var.Mouse1_deltax)
var.Mouse1_Y = var.Mouse1_Y + (var.Mouse1_deltay)
var.Mouse1_Z = var.Mouse1_Z + (var.Mouse1_deltaz)

//Нельзя выходить за границы допустимой зоны
if var.Mouse1_X < 0 then var.Mouse1_X = 0
if var.Mouse1_X > var.Mouse1_mapX then var.Mouse1_X = var.Mouse1_mapX
if var.Mouse1_Y < 0 then var.Mouse1_Y = 0
if var.Mouse1_Y > var.Mouse1_mapY then var.Mouse1_Y = var.Mouse1_mapY
if var.Mouse1_Z < 0 then var.Mouse1_Z = 0
if var.Mouse1_Z > var.Mouse1_mapZ then var.Mouse1_Z = var.Mouse1_mapZ

//Преобразуем диапазон зоны 0-1024 в диапазон джойстика от -1 до +1
Var.Mouse1_JX = MapRange(var.Mouse1_X, 0, var.Mouse1_mapX, -1 ,1)
Var.Mouse1_JY = MapRange(var.Mouse1_Y, 0, var.Mouse1_mapY, -1 ,1)
Var.Mouse1_JZ = MapRange(var.Mouse1_Z, 0, var.Mouse1_mapZ, -1 ,1)

}

// ########## MOUSE2 #######################
if (Mouse2.present) {
if (var.Mouse2_in = false) {

// ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::Входные параметры:
var.Mouse2_mapX = 1024 //Разрешение оси X, подбирается индивидуально
var.Mouse2_mapY = 1024 //Разрешение оси Y подбирается индивидуально
var.Mouse2_Wheel = 6 //На сколько щелчков колеса мыши разбить ось джойстика

var.Mouse2_mapZ = var.Mouse2_Wheel*120
var.Mouse2_X = var.Mouse2_mapX/2
var.Mouse2_Y = var.Mouse2_mapY/2
var.Mouse2_Z = var.Mouse2_mapZ/2
var.Mouse2_in = true
}

var.Mouse2_deltax = Delta(Mouse2.DirectInputX)
var.Mouse2_deltay = Delta(Mouse2.DirectInputY)
var.Mouse2_deltaz = Delta(Mouse2.DirectInputZ)

// собственно координаты мыши
var.Mouse2_X = var.Mouse2_X + (var.Mouse2_deltax)
var.Mouse2_Y = var.Mouse2_Y + (var.Mouse2_deltay)
var.Mouse2_Z = var.Mouse2_Z + (var.Mouse2_deltaz)

if var.Mouse2_X < 0 then var.Mouse2_X = 0
if var.Mouse2_X > var.Mouse2_mapX then var.Mouse2_X = var.Mouse2_mapX
if var.Mouse2_Y < 0 then var.Mouse2_Y = 0
if var.Mouse2_Y > var.Mouse2_mapY then var.Mouse2_Y = var.Mouse2_mapY
if var.Mouse2_Z < 0 then var.Mouse2_Z = 0
if var.Mouse2_Z > var.Mouse2_mapZ then var.Mouse2_Z = var.Mouse2_mapZ

Var.Mouse2_JX = MapRange(var.Mouse2_X, 0, var.Mouse2_mapX, -1 ,1)
Var.Mouse2_JY = MapRange(var.Mouse2_Y, 0, var.Mouse2_mapY, -1 ,1)
Var.Mouse2_JZ = MapRange(var.Mouse2_Z, 0, var.Mouse2_mapZ, -1 ,1)

}
//Опрос мышек КОНЕЦ ###########





//################### Подменяем оси джойстика на оси мыши #######
// Первый джойстик - управление самолетом
PPJoy1.analog0 = Var.Mouse1_JX // Ось Х
PPJoy1.analog1 = Var.Mouse1_JY // Ось У

PPJoy1.analog4 = Var.Mouse1_JZ
PPJoy1.analog5 = Var.Mouse2_JZ

if (mouse2.LeftButton = false) { //Если не нажата левая кнопка Mouse2, то Двигатель+Педали, Иначе - ОБЗОР
if(var.trig_up=false){
Var.Mouse2_Y = var.temp_y
Var.Mouse2_X = var.temp_x
PPJoy2.analog0 = 0
PPJoy2.analog1 = 0
var.trig_vz=false
var.trig_up=true
} else {
PPJoy1.analog2 = Var.Mouse2_JY // Двигатель
PPJoy1.analog3 = Var.Mouse2_JX // Педали
}
} else {
if(var.trig_vz=false){
var.temp_y = Var.Mouse2_Y
var.temp_x = Var.Mouse2_X
var.Mouse2_X = var.Mouse2_mapX/2
var.Mouse2_Y = var.Mouse2_mapY/2
var.trig_vz=true
var.trig_up=false
} else {
//Второй джойстик - управление взглядом

PPJoy2.analog0 = Var.Mouse2_JX // Ось Х
PPJoy2.analog1 = Var.Mouse2_JY // Ось У
}
}





//################ Подменяем кнопки джойстика кнопками нужной мыши #####
PPJoy1.Digital0 = Mouse1.LeftButton
PPJoy1.Digital1 = Mouse1.RightButton
PPJoy1.Digital2 = Mouse1.MiddleButton
PPJoy1.Digital3 = Mouse1.XButton1
PPJoy1.Digital4 = Mouse1.XButton2


// Центрирование осей
if Mouse2.RightButton = true { //Если нажата правая кнопка Mouse2 - Эти оси центрируются
var.Mouse1_X = var.Mouse1_mapX/2
var.Mouse1_Y = var.Mouse1_mapY/2
var.Mouse2_X = var.Mouse2_mapX/2
}


}