Выкладываю весь блок, имеющий отношение к сдвигу экрана. Может тут что-то можно иное подкрутить, чтобы в Nox заработало? Впечатление, что при сдвиге - "не запоминает" что нажата кнопка мышки... Но именно в Nox, в Блюстаке все работает...
////////////////////////////////////////////////////////////////////////////////
/// подпрограмма замедленного передвижения ////
////////////////////////////////////////////////////////////////////////////////
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
$MOVE_SPEED = 3 // множитель скорости
$MOVE_Start_X = $_xmouse
$MOVE_Start_Y = $_ymouse
$MOVE_X = $MOVE_Start_X
$MOVE_Y = $MOVE_Start_Y
$dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
$MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
IF($MOVE_SPEEDVAR < 1)
$MOVE_SPEEDVAR = 1
END_IF
$MOVE_step=($dist-1)/$MOVE_SPEEDVAR
$MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
$MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
$MOVE_X = $MOVE_X + $MOVE_X_step
$MOVE_Y = $MOVE_Y + $MOVE_Y_step
MOVE(ROUND($MOVE_X,0)+RND(-2,2), ROUND($MOVE_Y,0)+RND(-2,2)) // добавляем рандом
WAITMS($rnwait) // задержка при движении по точкам
END_CYC
END_SUB
SUB(m_move,$M_X,$M_Y)
$rnwait = RND(6,15) // случайная скорость
$MOVE_MID_X = ($_xmouse+$M_X)/2
$MOVE_MID_Y = ($_ymouse+$M_Y)/2
mouse_move($MOVE_MID_X+RND(-30,30),$MOVE_MID_Y+RND(-30,30))
mouse_move($M_X,$M_Y)
MOVE($M_X,$M_Y) //передвинуть окончательно в заданную точку
END_SUB
/////////////////////////////////////////
// а это вырезка из основного кода:
//---получить куда хотим идти
$x_boi_map=INT(rnd(0, ABS($x_tetraedr*$x_mashtab-$x_zone_pxl-$x_pogreshn)))
$y_boi_map=INT(rnd(0, ABS($y_tetraedr*$y_mashtab-$y_zone_pxl-2*$y_pogreshn)))
//---переезд на новое место
while ((ABS($x_boi_map-$x_tekush_abs) > 3)|(ABS($y_boi_map-$y_tekush_abs) > 3))
// расчеты точек сдвига
if (ABS($x_boi_map-$x_tekush_abs) > (INT(3/4*$x_zone_pxl)))
if ($x_boi_map-$x_tekush_abs > 0)
$x_move_fict=INT(3/4*$y_zone_pxl)
else
$x_move_fict=(-1)*INT(3/4*$y_zone_pxl)
end_if
else
$x_move_fict=$x_boi_map-$x_tekush_abs
end_if
if (ABS($x_move_fict/2)>INT(ABS($x_move_fict/2))) //уменьшение до четного числа
if ($x_move_fict>0)
$x_move_fict = $x_move_fict-1
else
$x_move_fict = $x_move_fict+1
end_if
end_if
// print("текущее $x_move_fict = ", $x_move_fict)
if (ABS($y_boi_map-$y_tekush_abs) > (INT(3/4*$y_zone_pxl)))
if ($y_boi_map-$y_tekush_abs > 0)
$y_move_fict=INT(3/4*$y_zone_pxl)
else
$y_move_fict=(-1)*INT(3/4*$y_zone_pxl)
end_if
else
$y_move_fict=$y_boi_map-$y_tekush_abs
end_if
if (ABS($y_move_fict/2)>INT(ABS($y_move_fict/2))) //уменьшение до четного числа
if ($y_move_fict>0)
$y_move_fict = $y_move_fict-1
else
$y_move_fict = $y_move_fict+1
end_if
end_if
// print("текущее $y_move_fict = ", $y_move_fict)
// собственно начало сдвига
if($emulator_vybor=1) // для Блюстака
ldown(INT($x_pxl_lev_verh+$x_zone_pxl/2+$x_move_fict/2),INT($y_pxl_lev_verh+$y_zone_pxl/2+$y_move_fict/2))
else // для Нокса, экспериментировал по разному :(
$x_nox=INT($x_pxl_lev_verh+$x_zone_pxl/2+$x_move_fict/2)
$y_nox=INT($y_pxl_lev_verh+$y_zone_pxl/2+$y_move_fict/2)
move($x_nox,$y_nox) // просто поставили мышь на начальную точку
print("переместили мышь на ", $_xmouse, " ", $_ymouse)
POSTMESSAGE($hwnd1,0x0201,0x0001,$x_nox+($y_nox*65536)) //LDOWN
// ldown($x_nox,$y_nox)
waitms(1250+rnd(0,50))
end_if
print("---кликнули на ", $_xmouse, " ", $_ymouse)
waitms(250+rnd(0,50))
m_move(INT($x_pxl_lev_verh+$x_zone_pxl/2-$x_move_fict/2), INT($y_pxl_lev_verh+$y_zone_pxl/2-$y_move_fict/2))
// print("---Передвинулись на дальность", $x_move_fict, " и ", $y_move_fict)
waitms(900+rnd(0,100))
if($emulator_vybor=1) // для Блюстака
lup($_xmouse, $_ymouse)
else // для Нокса
POSTMESSAGE($hwnd1,0x0202,0x0000,$_xmouse+($_ymouse*65536)) //LUP
end_if
print("---Отжали мышь на ", $_xmouse, " ", $_ymouse)
waitms(900+rnd(0,150))
$x_tekush_abs=$x_tekush_abs+$x_move_fict
$y_tekush_abs=$y_tekush_abs+$y_move_fict
// print("Координаты новой карты для боя (пиксели относит.лев.верхн.края Города):")
// print("сдвинули карту, =", $x_tekush_abs, " и ", $y_tekush_abs)
end_cyc
// print("...приехали =", $x_tekush_abs, " и ", $y_tekush_abs)