Доброго времени суток, Ув. Форумчане. Очень надеюсь на вашу помощь по нескольким вопросам.
= = = = = = = = = = = = = = = = 1(Решено) = = = = = = = = = = = = = = = =
1. Клик на случайную картинку
1. Есть скрипт:
Код
set $music2 findimage (205, 131 631, 1008 abs(D:\Работа\uopilot\AdobePremier\Images\music2.bmp) %c 2 100 -1 abs)
if $music2 > 0
log видим весь плейлист
set #x %c[1 1]
set #y %c[1 2]
kleft #x, #y abs
wait 300
end_if
Есть вертикальный список в данных координатах, с одинаковыми картинками (значок mp3) - их много, мне нужно сделать так, что бы бот рандомно кликал на одну из них - т.е. находит 33 одинаковых картинок и каждый раз при запуске этого скрипта - бот должен делать случайный клик на одну из этих найденных картинок. На данный момент бот кликает именно по самой верхней найденной и все.
Нажмите для просмотра прикрепленного файла
= = = = = = = = = = = = = = = = 2 = = = = = = = = = = = = = = = =
2. Хочу написать графического бота, для игры MuOnline (Подобие Lineage), который будет отталкиваясь от координат (цифры в углу игры) персонажа - двигаться в заданные мной координаты.
Мной была проделана работа, которая уже научила бота - считывать координаты и отталкиваясь от них он начинает движение. Кода координаты меняются - он начинает двигаться в заданную мной сторону - если цифры координат уменьшаются при клике - а нам нужно увеличивать число, то клик происходит в ту сторону, где будет увеличение координат.
Нажмите для просмотра прикрепленного файла
Наработки бота по координатам
Код
set #handleWin findwindow (main.exe)
set workwindow #handleWin
set $bmp .bmp
while 1 = 1
set $koma findimage (27, 31 635, 533 abs (D:\Работа\uopilot\MU\img\numbers\deva.bmp) %c33 2 100 1 abs)
if $koma > 0
set #x %c33[1 1]
set #y %c33[1 2]
move #x #y abs
msg
end_if
//// end_script
/////KOMA
set $koma findimage (113, 32 150, 44 abs (D:\Работа\uopilot\MU\img\numbers\dot.bmp) %c33 2 100 1 abs)
if $koma > 0
set #numx %c33[1 1]
set #numy %c33[1 2]
/// move #x #y abs
/// set #x2 #x +22
/// set #y2 #y -8
/// move #x2 #y2 abs
/// end_script
end_if
/////1 ЦИФРА
for #num1 0 9
////Верх координат
set #x2 #numx -20
set #y2 #numy -10
//move #x2, #y2 abs
//wait 3s
////Низ координат
set #x3 #numx -13
set #y3 #numy +6
//move #x3, #y3 abs
//end_script
set $number1 findimage (#x2, #y2 #x3, #y3 abs (D:\Работа\uopilot\MU\img\numbers\s#num1$bmp) %c 2 100 1 abs)
if $number1 > 0
set $a #num1
///msg $a
///end_script
end_if
end_for
/////2 ЦИФРА
for #num2 0 9
////Верх координат
set #x4 #numx -15
set #y4 #numy -9
//move #x4, #y4 abs
//wait 3s
////Низ координат
set #x5 #numx -5
set #y5 #numy +6
//move #x5, #y5 abs
//end_script
set $number2 findimage (#x4, #y4 #x5, #y5 abs (D:\Работа\uopilot\MU\img\numbers\s#num2$bmp) %c 2 100 1 abs)
if $number2 > 0
set $b #num2
/// msg $b
end_if
end_for
/////3 ЦИФРА
for #num3 0 9
////Верх координат
set #x6 #numx -11
set #y6 #numy -9
////Низ координат
set #x7 #numx -1
set #y7 #numy +6
///move #x6, #y6 abs
////wait 3s
///move #x7, #y7 abs
///end_script
set $number3 findimage (#x6, #y6 #x7, #y7 abs (D:\Работа\uopilot\MU\img\numbers\s#num3$bmp) %c 2 100 1 abs)
if $number3 > 0
set $c #num3
end_if
end_for
/// msg $c
//// end_script
/////////////////
/////4 ЦИФРА
for #num4 0 9
////Верх координат
set #x8 #numx +8
set #y8 #numy -8
//move #x8 #y8 abs
//wait 3s
////Низ координат
set #x9 #numx +16
set #y9 #numy +6
//move #x9 #y9 abs
//end_script
set $number4 findimage (#x8, #y8 #x9, #y9 abs (D:\Работа\uopilot\MU\img\numbers\s#num4$bmp) %c 2 100 1 abs)
if $number4 > 0
set $d #num4
end_if
end_for
///msg $d
///end_script
for #num5 0 9
////Верх координат
set #x10 #numx +15
set #y10 #numy -8
//move #x10, #y10 abs
//wait 1s
////Низ координат
set #x11 #numx +25
set #y11 #numy +5
//move #x11, #y11 abs
//end_script
set $number5 findimage (#x10, #y10 #x11, #y11 abs(D:\Работа\uopilot\MU\img\numbers\s#num5$bmp) %c 2 100 1 abs)
if $number5 > 0
set $e #num5
end_if
end_for
///msg $e
///end_script
for #num6 0 9
////Верх координат
set #x12 #numx +20
set #y12 #numy -9
///move #x12, #y12 abs
///wait 3s
////Низ координат
set #x13 #numx +31
set #y13 #numy +6
//move #x13, #y13 abs
///end_script
set $number6 findimage (#x12, #y12 #x13, #y13 abs (D:\Работа\uopilot\MU\img\numbers\s#num6$bmp) %c 2 100 1 abs)
if $number6 > 0
set #x %c[1 1]
set #y %c[1 2]
set $f #num6
end_if
end_for
//msg $a$b$c $d$e$f
//end_script
set #koorX $a$b$c
set #koorY $d$e$f
gosub check
end_while
:check
//// Идем в нужные координаты
while 1 = 1
set #StartX 138
set #StartY 131
set #StartPogrX #StartX
set #StartPogrY #StartY
set #StartPogrX2 #StartX
set #StartPogrY2 #StartY
if #koorX > #StartPogrX
left 365, 221 abs
return
end_if
//if #koorY < #StartPogrY
// left 421, 262 abs
// //msg #koorY
// return
//end_if
if #koorX2 < #StartPogrX2
left 450, 293 abs
return
end_if
//if #koorY2 > #StartPogrY2
// left 390, 285 abs
// //msg #koorY
// return
//end_if
///msg #koorX
if #koorX = #StartX and #koorY = #StartY
msg #koorX #koorY Закончили!
end_script
end_if
end_while
Но не все так хорошо как хотелось бы:
1) Координаты Х У (Цифры в верхнем левом углу) - считываются на разных картах по-разному - так как некоторые пиксели, которые я ищу(по картинке) - меняют свою структуру и например цифра 8 - может считаться как 0 или 3, хотя на карте, которой я учил считывать координаты - проблем не было, а достаточно считывать их на другой локации - уже начинает немного не распознавать верно(пиксели немного сменены).
Как возможно решить данную проблему, что бы на всех картах считывать цифры одинаково нормально?
2) Даже на карте, на которой я все я это настраивал - начинаю движение в заданные координаты - возникает еще одна проблема - как обходить преграды? Так как клики в одну из сторон для движения - иногда подводят, так как один из кликов при ходьбе - может кликать на какое-то препятствие, после чего движение закончится... Как бы вы решили эту задачу, что бы научить ходить минуя препятствия?
3) Как лучше ориентироваться по финишной точке прибытия? Например я думал, отталкиваться от того - что находится в том районе - куда нужно дойти (например ориентир - дерево), но дело то в том, что при движении дерево меняет цвета и если я сохраню пиксели дерева в одних координатах, то став на шаг левее или правее - дерево будет иметь другие пиксели - возможно есть вариант, как обучить пилот распознавать дерево в разных ракурсах? Как выйти из данной ситуации?
= = = = = = = = = = = = = = = = 3 (Частично решено) = = = = = = = = = = = = = = = =
3. Вид при написании скрипта в UOPilot:
- При стандартном скачивании пилота - фон и весь код имеет черно-белую стандартную текстуру, но как-то давно, человек помогал мне и установил скрипт, который переделывал написания скрипта в более приятный стиль - цветной. Есть ли у вас готовые скрипты или плагины, которые можно поставить, для более приятной работы в Пилоте? Буду благодарен, если поделитесь своими заготовками!
= = = = = = = = = = = = = = = = 4 = = = = = = = = = = = = = = = =
4. UOPilot - лучший графический бот - по картинкам? Как-то год назад, на форуме вычитал, что UOPilot уже изжил себя и для написания ботов - например для MuOnline, Lineage - будет лучше перейти на другую программу(забыл ее название). Как вы считаете, есть ли для игровых ботов что-то более удобное, или на UOPilot можно решить все проблемы?
Заранее, очень благодарен за помощь!