Нашел скрипт на просторах интернета решил поделится. Сам пользуюсь вроде не жалуюсь.
Скрипт позволяет ровно засаживать растения на пугалах или просто в горах. Писал для себя. Скрипт написан на AutoIt. Тестировался с разрешением экрана 1366x768(у меня работает на 1920х1080).
После компиляции скрипта запускаем его от имени администратора.
Выставляем семена в ячейку "Shift+1", выставляем камеру в положение на персонажем и определяем начальную позицию посадки.Дистанция между посадками в ряду и столбце зависит от размера растения.
Для риса и азалии я использовал значение 63, можно и меньше, тестируйте.
Время движения персонажа в сек - это время, которое персонаж будет двигаться назад, чтобы урегулировать камеру для посадки новых рядов.
Для засадки БП я использовал значения, которые приведены в примере скрипта, хотя можно посадить и компактнее, все зависит от ровности поверхности.
Код:
Global $stat_y
Global $i[100]
Global $j
Global $n = 2
Global $count = 2
Global $countrow = 1
$slp = InputBox("Старт бота","Через сколько сек после нажатия F11 активировать бота (Пример: 5)")
$crow = InputBox("Введите кол-во посадок","Введите количество растений в одном ряду (Пример: 4)")
$ccol = InputBox("Введите кол-во рядов","Введите кол-во рядов (Пример: 5)")
$rrow = InputBox("Интервал между посадками в ряду","Интервал между посадками в ряду (Пример: 63)")
$rcol = InputBox("Интервал между рядами","Интервал между рядами (Пример: 62)")
$rtime = InputBox("Время движения персонажа","Время движения персонажа в сек между интервалом рядов (Пример: 2)")
$footer = InputBox("Передвижение персонажа","Через сколько рядов передвигать персонажа (для урегулирования камеры) (Пример: 2)")
Global $AA_TITLE = "- ArcheAge " ;
_WinWaitActivate($AA_TITLE ,"")
Global $hWnd = WinActive($AA_TITLE ,"")
Do
Sleep(1000)
Until $STOP = False
If $STOP = False Then
$slp = $slp * 1000
Sleep($slp)
$rtime = $rtime * 1000
$pos = MouseGetPos()
$x = $pos[0]
$y = $pos[1]
$stat_y = $pos[1]
If $ccol > $footer And Mod($ccol,$footer) == 0 Then
$countf = $ccol / $footer - 1
Else
$countf = Int($ccol/$footer)
EndIf
For $j = 0 to $ccol Step 1
$i[$j] = 0
Next
$countf = $countf + 2
For $j = 3 to $countf Step 1
$i[$j-1] = $j-2
Next
While ($countrow <= $crow)
Main()
WEnd
While ($count <= $ccol)
$y = $y + $rcol
Sleep(2000)
MouseMove($x,$y)
$countrow = 1
While ($countrow <= $crow)
Main()
WEnd
cnt($count)
$count = $count + 1
WEnd
Else
Sleep(100)
EndIf
Func Main()
$pos = MouseGetPos()
$ones = True
If $STOP = False Then
If $ones = True Then
Send("{! 1}")
MouseClick("left", $pos[0], $pos[1])
Sleep(3000)
$ones = False
EndIf
Send("{! 1}")
MouseClick("left", $pos[0]+$rrow, $pos[1])
Sleep(3000)
$countrow = $countrow + 1
Else
Sleep(100)
EndIf
EndFunc
Func cnt($count)
While ($n <= $countf)
If $count = $i[$n]*$footer Then
Send("{DOWN down}")
Sleep ($rtime)
Send("{DOWN up}")
$y = $stat_y
Else
return 0
EndIf
$n = $n + 1
WEnd
EndFunc
Func foot()
$rtime = $rtime * 1000
If $STOP = False Then
Send("{DOWN down}")
Sleep ($rtime)
Send("{DOWN up}")
Else
Sleep(100)
EndIf
EndFunc
Func StartOrStop()
If $STOP = True Then
$STOP = False
Else
$STOP = True
EndIf
EndFunc