Author Topic: Проект "Восстановление"  (Read 8792 times)

0 Members and 8 Guests are viewing this topic.

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Проект "Восстановление"
« on: March 05, 2017, 04:15:37 PM »
Браузерка, пытаюсь написать кликер чтобы собирать воду каждые 10 минут, не заглядывая в окно.
Буду по мере продвижения вперед усложнять код, прошу помощи по конкретным вопросам.

Задачи которые я хочу решить (на скриншоте)
1) Перемещение по ферме начинается с этого угла, нужно сдвинуть экран перед началом цикла в нижний левый угол, зажав клавишу мышки на земле и переведя её вверх-вправо, отпустить. Зажимать нужно именно на свободном участке - земле, нужно как-то определить что не будет нажатия на робота или пролетающий самолет.
2) Нажатия по таким иконкам, иконки немного движутся вверх-вниз.
3) Такие плитки можно использовать для навигации по ферме, передвигая экран на другие области для выполнения цикла.


Проблемы:
6) Нужно щелкнуть не открывая окна, но предварительно двинуть мышь и подождать перед кликом. В теме про WinAPI через PostMessage (hWnd, Msg, wParam, lParam) не сказано что нужно писать для движения в поле wParam
7) Как будет выглядеть система с несколькими таймерами, когда по одному из них выходит время - кликер делает нужное действие(щелкает)?
Code: (clickermann) [Select]
#name "PV"
$HWnd = 2032438
$WM_LBUTTONDOWN = 0x0201
$WM_LBUTTONUP = 0x0202
$WM_MOUSEMOVE = 0x0200
$MK_LBUTTON = 0x0001
     
getscreen
COLORMODE(6)
if_picture_in(0, 0, $_xmax, $_ymax, "waterCM6_25.bmp",-1,90)
//Move ($_return1 ,$_return2)
postmessage($HWND, $WM_MOUSEMOVE, 0, $_return1 + ($_return2*65536))
HALT
[/color]
« Last Edit: March 06, 2017, 05:19:48 PM by Meamyr »

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Проект "Восстановление"
« Reply #1 on: March 05, 2017, 04:26:30 PM »
Проблемы:
1) После скриншота в буфер памяти, не хочет двигать мышь в координату с найденным цветом пикселя
(На остальной код пока не смотрите, еще ничего не сделано.)
2) Скрипт который ищет иконку в игре. Какими будут координаты $_return1/2? Центр этой иконки?
3) Где эта "морда.bmp" должна лежать?

1) Ошибка в строке №13 вместо (;)должна быть (,)- поэтому не двигает курсор.
2) Команда IF_PICTURE_IN ищет картинку. Левый-верхний угол.
3) Рядом со скриптом.

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #2 on: March 05, 2017, 04:44:54 PM »
1) Ошибка в строке №13 вместо (;)должна быть (,)- поэтому не двигает курсор.
2) Команда IF_PICTURE_IN ищет картинку. Левый-верхний угол.
3) Рядом со скриптом.
Спасибо, обновил.
« Last Edit: March 05, 2017, 04:49:44 PM by Meamyr »

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Проект "Восстановление"
« Reply #3 on: March 05, 2017, 04:59:03 PM »
Скриншот делать так:
Code: (clickermann) [Select]
GETSCREEN
SCREENSHOT
HALT
Искать в папке screens. Открывать в Paint, Обрезать и сохранять только в .bmp
Заготовку лучше делать маленькую, но что бы она была уникальной (10х5, 20х10 пикселей достаточно).
И не IF_PIXEL_IN, a IF_PICTURE_IN. Ты же картинку ищешь а не пиксел.
« Last Edit: March 05, 2017, 05:01:48 PM by open_78 »

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #4 on: March 05, 2017, 05:19:53 PM »
Скриншот делать так:
Code: (clickermann) [Select]
GETSCREEN
SCREENSHOT
HALT
Искать в папке screens. Открывать в Paint, Обрезать и сохранять только в .bmp
Заготовку лучше делать маленькую, но что бы она была уникальной (10х5, 20х10 пикселей достаточно).
И не IF_PIXEL_IN, a IF_PICTURE_IN. Ты же картинку ищешь а не пиксел.
Сделал так. Он тыкает в черный пиксель. Ну хоть что-то. Иконка 10х10. В чем же причина?

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Проект "Восстановление"
« Reply #5 on: March 05, 2017, 05:24:24 PM »
Скрипт в студию.

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #6 on: March 05, 2017, 05:26:08 PM »
Скрипт в студию.
Пожалуйста :)
Code: (clickermann) [Select]
#name "PV"
$HWnd = 5965136
$WM_LBUTTONDOWN = 0x0201
$WM_LBUTTONUP = 0x0202
$WM_MOUSEMOVE = 0x0200
$MK_LBUTTON = 0x0001

getscreen
if_picture_in(0, 0, $_xmax, $_ymax, "water.bmp")
//-375 -100
 Move ($_return1 ,$_return2)

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #7 on: March 05, 2017, 05:27:36 PM »
Нашел! hWND не тот уже!

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #8 on: March 05, 2017, 05:28:40 PM »
а скриптик-то краденный! :o
Чего тут красть-то =D Все у вас взял из двух тем для новичков

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Проект "Восстановление"
« Reply #9 on: March 05, 2017, 05:30:45 PM »
Нашел! hWND не тот уже!
При каждом новом запуске программы hWND не тот уже.

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #10 on: March 05, 2017, 05:35:07 PM »
Нашел! hWND не тот уже!
При каждом новом запуске программы hWND не тот уже.
Нет, не помогло, он тыкает немного в другой пиксель, рядом. Причем если сдвинуться вправо по ферме, то он будет тыкать в туже точку относительно интерфейса. Под этой заклепкой, под цифрой "60"

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #11 on: March 05, 2017, 05:38:17 PM »
Нашел! hWND не тот уже!
Он всегда "Уже не тот", так система устроена. ;D
Ага, я чето забыл, потом сделаю чтобы он по окну искал сам hWND, сейчас не стал перегружать код, и так косяки в упор не вижу)

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Проект "Восстановление"
« Reply #12 on: March 05, 2017, 05:41:10 PM »
Нашел! hWND не тот уже!
При каждом новом запуске программы hWND не тот уже.
Нет, не помогло, он тыкает немного в другой пиксель, рядом. Причем если сдвинуться вправо по ферме, то он будет тыкать в туже точку относительно интерфейса. Под этой заклепкой, под цифрой "60"
Попробуй процент совпадения
Code: (clickermann) [Select]
if_picture_in(0, 0, $_xmax, $_ymax, "water.bmp",-1,90)Или COLORMODE(?) применить. Но тогда и заготовку нужно переделать.
В режиме редактора включи лупу, наведи на окно с игрой. ВИДИТ?
Он просто обязан найти эту "воду.бмп".

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #13 on: March 05, 2017, 05:48:12 PM »
Попробуй процент совпадения
Code: (clickermann) [Select]
if_picture_in(0, 0, $_xmax, $_ymax, "water.bmp",-1,90)Или COLORMODE(?) применить. Но тогда и заготовку нужно переделать.
В режиме редактора включи лупу, наведи на окно с игрой. ВИДИТ?
Он просто обязан найти эту "воду.бмп".
Лупа видит, все увеличивает. -1, 90 сейчас добавлю проверю, а что означает -1? Что в Colormode писать?

Meamyr

  • Зашел в гости
  • *
  • Posts: 16
    • View Profile
Re: Проект "Восстановление"
« Reply #14 on: March 05, 2017, 05:52:58 PM »
-1, 90 не помогло. Я обнаружил что он тыкает в определенный пиксель относительно окна браузера, а не этой игры. Если я сдвину игру вниз, то и точка окажется вообще сверху, вне экрана игры