Здравствуйте. Интересная тема - плавное перемещение мыши. И еще интересней, что ответа в интернете насчет этого + uopilot я не нашел. Знаю про галочку "перемещать курсор мыши в точку клика", но было лень проверять, да и вряд ли она меня устроила бы. В общем - выкладываю мою заготовку для
плавного перемещения мыши. В моем случае она сделана с кликами, но, думаю, вы справитесь с очисткой от ненужного, да и большинству, наверняка, удобно сразу кликать.
Код
//#LCXBIAS/LCYBIAS - это отклонение, которое вы можете допустить - каждый раз точность может быть разная. То есть, следует считать #LCX #LCY
самыми верхними левыми координатами воображаемого прямоугольника, внутри которого можно рандомно тыкнуть.
//#STEPS - кол-во шагов движения. Чем дальше конечная точка - тем можно больше( примерно 60). Чем ближе следующая точка - меньше(около 30)
//Примеры вызова
//call LСlick 100, 100, 3, 10, 300, 50
//call LСlick 600, 600, 3, 10, 300, 60
//call LСlick 0, 0, 150, 10, 300, 60
//call LСlick 200, 100, 150, 10, 300, 30
proc LClick #LCX #LCY #LCXBIAS #LCYBIAS #WAITAFTERMOVE #STEPS
//рандомизируем конечные координаты - чтобы не тыкать каждый раз в одну точку
set #LCX #LCX + random (#LCXBIAS)
set #LCY #LCY + random (#LCYBIAS)
get mouse_pos #xnow #ynow
set #xincrement ((#LCX - #xnow) / #STEPS)
set #yincrement ((#LCY - #ynow) / #STEPS)
:increment
if (#xnow < #LCX and #xincrement > 0) or (#xnow > #LCX and #xincrement < 0 and #xnow > 0)
set #xnow #xnow + #xincrement + random(3) - random(3) //немножно двигаем мышь не по прямой
end_if
if (#ynow < #LCY and #yincrement > 0) or (#ynow > #LCY and #yincrement < 0 and #ynow > 0)
set #ynow #ynow + #yincrement + random(3) - random(3)
end_if
move #xnow #ynow
// log xnow #xnow ynow #ynow LCX #LCX LCY #LCY xincrement #xincrement yinrcement #yincrement
if (#xnow < #LCX and #xincrement > 0) or (#xnow > #LCX and #xincrement < 0 and #xnow > 0)
goto increment
end_if
if (#ynow < #LCY and #yincrement > 0) or (#ynow > #LCY and #yincrement < 0 and #ynow > 0)
goto increment
end_if
move #LCX, #LCY // перемещаем курсор до конца. ведь мы делили на шаг грубо
wait #WAITAFTERMOVE + random (10) // задержка
left_down #LCX, #LCY // зажатие кнопки
wait 2 + random (1) // задержка
left_up #LCX, #LCY // отпускание кнопки
wait #WAITAFTERMOVE + random (10) // задержка
end_proc // конец процедуры клика левой кнопкой
Надеюсь, кому то поможет. Как мне очень сильно помогал uopilot в моей жизни.