|
|
|
бот для pirates, Помогите в начинании |
|
|
glykoman2010 |
1.4.2017, 0:13
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
воспользовшись справкой накатал скрипт (нагло скопировал (IMG: style_emoticons/default/laugh.gif) ) Код set #a findimage (832 198 832 230 (\gold2.bmp) %arr 2 60 -1) set #w size (%arr) // получим число найденных картинок msg Найдено картинок: #w for #i 1 #w set #x %arr [#i 1] set #y %arr [#i 2] msg картинка в координатах: #x #y end_for
фишка в том, что картинку не находит. что делаю не так? прилаживаю оригинал и мной вырезанный кусочек.
Прикрепленные файлы
gold2.bmp ( 2,16 килобайт )
Кол-во скачиваний: 410
|
|
|
|
glykoman2010 |
1.4.2017, 9:02
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
Цитата(cirus @ 1.4.2017, 2:12) Область поиска неправильно указана. Получается полоска шириной в 1 пиксель. моя оплошность, код не измененный кинул. я по прямоугольнику искал Код set #a findimage (150 90 1150 690 (\gold2.bmp) %arr 2 60 -1) set #w size (%arr) // получим число найденных картинок msg Найдено картинок: #w for #i 1 #w set #x %arr [#i 1] set #y %arr [#i 2] msg картинка в координатах: #x #y end_for
через другой кликер эту картинку ищет и нажимаем, но он процессор загружает...
Эскизы прикрепленных изображений
|
|
|
|
glykoman2010 |
1.4.2017, 13:58
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
немного пошаманив получилось вот такое: Код set #handle FindWindow(460808) set #startX 150 set #startY 90 set #endX 1150 set #endY 690 set $path "D:\pilot\" set %cash[1] gold2 // будем искать картинку set #a findimage (#startX #startY #endX #endY ($path%cash[1].bmp) %crds #handle 2 70 20 5) if #a > 0 msg Картинка в координатах X= %crds[1 1] Y= %crds[1 2]. жмем... left %crds[1 1] %crds[1 2] #handle // жмем else msg Ничего не найдено end_if
в логах пишет, что находит координаты, а дальше ступор, так как даже не кликает, если и находит действительно картинку
|
|
|
|
glykoman2010 |
1.4.2017, 18:57
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
после половины суток разбирательства, вернулся к старой версии скрипта: Код set #a findimage (140 130 1150 690 (\gold.bmp) %arr 2 70 -1 18 abs ) //msg #a set #w size (%arr) // получим число найденных картинок //msg Найдено картинок: #w for #i 1 #w set #x %arr [#i 1] set #y %arr [#i 2] kleft %arr[1 1] %arr[1 2] // жмем end_for если сделать скрин и искать на скрине, то вроде есть продвижения, находит 7 изображений, но в игре никак.
|
|
|
|
cirus |
1.4.2017, 19:12
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26691
Пользователь №: 16.971
Возраст: 29
|
Цитата может проблема в виндовс 10? и в том, что приложение с магазина? Нет. Цитата #handle 2 70 20 5 Тут ошибка, максимально может быть 4 параметра. #handle 2 - оставляйте 2, #handle это для поиска в перекрытом окне. Что пишет в сообщении msg #a? Картинки дров (или что там) разные. Увеличьте картинку из первого поста, и посмотрите. Попробуйте уменьшить точность и увеличить отклонение по цвету. Код set #a findimage (140 130 1150 690 (\gold2.bmp) %arr 2 70 -1 10)
|
|
|
|
glykoman2010 |
1.4.2017, 19:35
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
Цитата(cirus @ 1.4.2017, 19:12) Нет. Тут ошибка, максимально может быть 4 параметра. #handle 2 - оставляйте 2, #handle это для поиска в перекрытом окне. Что пишет в сообщении msg #a? Картинки дров (или что там) разные. Увеличьте картинку из первого поста, и посмотрите. Попробуйте уменьшить точность и увеличить отклонение по цвету. Код set #a findimage (140 130 1150 690 (\gold2.bmp) %arr 2 70 -1 10) выше отредактировал сообщение и код, извиняюсь. сделал так: Код set #a findimage (140 130 1150 690 (\gold.bmp) %arr 2 70 -1 18 abs ) //msg #a set #w size (%arr) // получим число найденных картинок //msg Найдено картинок: #w for #i 1 #w set #x %arr [#i 1] set #y %arr [#i 2] kleft %arr[1 1] %arr[1 2] // жмем end_for все ищет и нажимает, только после нажатия (сбора ресурсов) еще несколько раз прокликивает? и еще вопрос как сделать так чтоб через 15 мин выаолнения выполнялось такое: 1) перевести мышь в координаты Х У 2) зажать левую кнопку мыши 3) перевести мышь в координаты Х+90 У+90 4) перевести мышь в координаты Х У 5) разжать кнопку мыши и продрлжить выполнение скрипта на поиск картинки. картинку золота и оришинал прилагаю ниже.
Прикрепленные файлы
1.bmp ( 3 мегабайт )
Кол-во скачиваний: 394
gold.bmp ( 534 байт )
Кол-во скачиваний: 254
|
|
|
|
cirus |
1.4.2017, 19:49
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26691
Пользователь №: 16.971
Возраст: 29
|
Код for #i 1 #w set #x %arr [#i 1] set #y %arr [#i 2] kleft %arr[1 1] %arr[1 2] // жмем end_for Нажать нужно на все картинки? Код for #i 1 #w kleft %arr[#i 1] %arr[#i 2] // жмем end_for Цитата 2 70 -1 18 18 это большой % отклонения, скорее всего находится картинок больше, чем есть на самом деле. Попробуйте уменьшить % отклонения или увеличить точность поиска. Код log #a // количество найденных картинок А лучше сделайте картинку такую:
gold.bmp ( 4,78 килобайт )
Кол-во скачиваний: 437Цитата и еще вопрос как сделать так чтоб через 15 мин выаолнения выполнялось такое: 1) перевести мышь в координаты Х У 2) зажать левую кнопку мыши 3) перевести мышь в координаты Х+90 У+90 4) перевести мышь в координаты Х У 5) разжать кнопку мыши и продрлжить выполнение скрипта на поиск картинки. Код wait 15m // через 15 мин move X Y // 1) перевести мышь в координаты Х У, возможно без этого будет работать kleft_down X Y // 2) зажать левую кнопку мыши wait 100 move X1 Y1 // 3) перевести мышь в координаты Х+90 У+90 wait 100 move X Y // 4) перевести мышь в координаты Х У, возможно без этого будет работать wait 100 kleft_up X Y // 5) разжать кнопку мыши
|
|
|
|
glykoman2010 |
2.4.2017, 13:31
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
Цитата(cirus @ 1.4.2017, 19:49) Код wait 15m // через 15 мин move X Y // 1) перевести мышь в координаты Х У, возможно без этого будет работать kleft_down X Y // 2) зажать левую кнопку мыши wait 100 move X1 Y1 // 3) перевести мышь в координаты Х+90 У+90 wait 100 move X Y // 4) перевести мышь в координаты Х У, возможно без этого будет работать wait 100 kleft_up X Y // 5) разжать кнопку мыши сделал так пока для проверки Код set #handleWin findwindow (Pirates of Everseas) set workwindow #handleWin wait 1s // через .... move 660 400 // 1) перевести мышь в координаты Х У, возможно без этого будет работать kleft_down 660 400 // 2) зажать левую кнопку мыши wait 500 move 800 600 // 3) перевести мышь в координаты Х+90 У+90 wait 500 move 660 400 // 4) перевести мышь в координаты Х У, возможно без этого будет работать wait 500 left_up 660 400 // 5) разжать кнопку мыши set #a findimage (140 130 1150 690 (\gold.bmp) %arr #handle 70 -1 18 abs ) set #w size (%arr) // получим число найденных картинок log количество картинок #w for #i 1 #w kleft %arr[#i 1] %arr[#i 2] #handle // жмем end_for Цитата мышка дергается по координатам, но экран за собой не тянет. Плюс пытался еще сделать так, чтоб курсор только в окне работал. а то ничего не поставить поверх, курсор за собой все остальное прокликивает, что сверху над окном) движение нужно для того, чтоб обойти защиту от кликера. я еще толком не разобрался, но вроде как через некоторое время сидения у себя на карте игра сама перемещает экран вниз. если не получиться его передергивать, то просто сделаю клик, который будет на карту игровую переходить и обратно на остров. Но так бы не хотелось делать в целях экономии трафика и боязни того, что выкинет с сервера а бот сам не переподключиться. Цитата я тут подумал, все иконки ресурсов в черной рамке, так почему бы не искать рамку?
zol.bmp ( 6,48 килобайт )
Кол-во скачиваний: 404 пробовал в паинте по картинке искать (раб область менял на paint соответственно) , но не находит. может у вас получиться подобрать пропорции точности?
Новый_точечный_рисунок.bmp ( 3 мегабайт )
Кол-во скачиваний: 442
|
|
|
|
cirus |
2.4.2017, 15:17
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26691
Пользователь №: 16.971
Возраст: 29
|
Цитата все иконки ресурсов в черной рамке, так почему бы не искать рамку? Лучше рамку с белым фоном.
zol4.bmp ( 5,3 килобайт )
Кол-во скачиваний: 385В пейнте находятся, но т. к. большой % погрешности по цвету находится больше картинок, чем есть на самом деле. Приходится лишние отсеивать. код, тестил в paint
Код set findoffsety 140 // смещение координаты Y (для теста в paint, для игры убрать или изменить на нужное значение)
set #a findimage (270, 142 1045, 651 (C:\zol4.bmp) %arr 2 70 -1 20)
if #a > 0 ////// блок отсеивания лишних координат, ничего не менять!!! set size(%array) set #z 1 init_arr %array (#z) %arr [1 1] %arr [1 2] for #i 1 eval(size(%arr) - 1) set #break 0 set #j #i + 1 for #n 1 #z set #delta round(point_distance (%arr [#j 1] %arr [#j 2] %array [#n 1] %array [#n 2])) if abs(#delta) < 10 set #break 1 break end_if end_for if #break = 0 set #z #z + 1 init_arr %array (#z) %arr [#j 1] %arr [#j 2] end_if end_for ///////////
///// Координаты картинок содержатся в массиве %array for #i 1 size(%array) hint (12 clred %array [#i 1] %array [#i 2] (#i)) wait 500 end_for end_if end_script Цитата Плюс пытался еще сделать так, чтоб курсор только в окне работал. Вместо kleft использовать left. Работает не везде.
|
|
|
|
glykoman2010 |
2.4.2017, 21:03
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
Цитата(cirus @ 2.4.2017, 15:17) Цитата Лучше рамку с белым фоном.
zol4.bmp ( 5,3 килобайт )
Кол-во скачиваний: 385В пейнте находятся, но т. к. большой % погрешности по цвету находится больше картинок, чем есть на самом деле. Приходится лишние отсеивать. в игре половину не видит рамок, при том большую. поигрался точность/погрешность и вернулся к иконке золота. она отработала отлично и нашла все. буду пробовать дружить код с поиском множества картинок. как из массива брать координаты и по ним тыкать? и, если можно, можно подробно расписать работу скрипта, особено где отсев идет?
|
|
|
|
cirus |
2.4.2017, 21:25
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26691
Пользователь №: 16.971
Возраст: 29
|
Цитата как из массива брать координаты и по ним тыкать? Код ///// Координаты картинок содержатся в массиве %array kleft %array [1 1] %array [1 2] // первая картинка kleft %array [2 1] %array [2 2] // вторая картинка Если нужно кликнуть по всем картинками: Код ///// Координаты картинок содержатся в массиве %array for #i 1 size(%array) kleft %array [#i 1] %array [#i 2] wait 500 end_for Цитата можно подробно расписать работу скрипта, особено где отсев идет? В отсев нет смысла вникать. Нужно только добавить уничтожение массива. Код set size(%array) // добавить эту строку set #z 1 Если вкратце, есть массив с координатами картинок %arr, создаётся ещё один массив %array, в который записываются координаты только тех картинок, которые не находятся рядом друг с другом. Можно вывести в лог всё что нашлось: Код set #a findimage (270, 142 1045, 651 (C:\zol4.bmp) %arr 2 70 -1 20) if #a > 0 for #i 1 size(%arr) log #i %arr [#i 1] %arr [#i 2] end_for end_if end_script Из-за большой погрешности в цвете и маленькой точности будет больше координат, чем картинок. Причём некоторые координаты будут отличаться всего на несколько пикселей, вот они и отсеиваются, остальные записываются в массив %array.
|
|
|
|
glykoman2010 |
3.4.2017, 0:22
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
Цитата(cirus @ 2.4.2017, 21:25)
Вот, что получилось. Ни kleft_down , ни left_down не перетягивают. просто мышь зажимается, телепортируется в другое место, обратно и разжимается, а перетягивание картинки не происходит. через какую функцию запртить ему кликать на других окнах? Код wait 5s // через .... move 660 400 // 1) перевести мышь в координаты Х У, возможно без этого будет работать kleft_down 660 400 // 2) зажать левую кнопку мыши wait 500 move 800 600 // 3) перевести мышь в координаты Х+90 У+90 wait 500 move 660 400 // 4) перевести мышь в координаты Х У, возможно без этого будет работать wait 500 kleft_up 660 400 // 5) разжать кнопку мыши set #a findimage (140 130 1150 690 (\gold.bmp) %arr 2 70 -1 18 abs ) if #a > 0 ////// блок отсеивания лишних координат, ничего не менять!!! set size(%array) set #z 1 init_arr %array (#z) %arr [1 1] %arr [1 2] for #i 1 eval(size(%arr) - 1) set #break 0 set #j #i + 1 for #n 1 #z set #delta round(point_distance (%arr [#j 1] %arr [#j 2] %array [#n 1] %array [#n 2])) if abs(#delta) < 10 set #break 1 break end_if end_for if #break = 0 set #z #z + 1 init_arr %array (#z) %arr [#j 1] %arr [#j 2] end_if end_for ///////////
///// Координаты картинок содержатся в массиве %array for #i 1 size(%array) kleft %array [#i 1] %array [#i 2] wait 500 end_for end_if //end_script
|
|
|
|
glykoman2010 |
4.4.2017, 17:22
|
Neophyte
Сообщений: 10
Регистрация: 1.4.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.417
Возраст: 22
|
Цитата(cirus @ 3.4.2017, 0:59) Что имеется ввиду, не делать клик если окно с игрой не активно или поднять окно с игрой на передний план и тогда сделать клик? На счёт перетягивания не знаю что там.
вот пример: вкл игру, вкл пилот, поверх этого вкл видео проигрыватель (окно игры не сворачиваю), и программа начинает кликать не по окну с игрой, а по плееру.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|