Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Meamyr on March 05, 2017, 04:15:37 PM
-
Браузерка, пытаюсь написать кликер чтобы собирать воду каждые 10 минут, не заглядывая в окно.
Буду по мере продвижения вперед усложнять код, прошу помощи по конкретным вопросам.
Задачи которые я хочу решить (на скриншоте)
1) Перемещение по ферме начинается с этого угла, нужно сдвинуть экран перед началом цикла в нижний левый угол, зажав клавишу мышки на земле и переведя её вверх-вправо, отпустить. Зажимать нужно именно на свободном участке - земле, нужно как-то определить что не будет нажатия на робота или пролетающий самолет.
2) Нажатия по таким иконкам, иконки немного движутся вверх-вниз.
3) Такие плитки можно использовать для навигации по ферме, передвигая экран на другие области для выполнения цикла.
Проблемы:
6) Нужно щелкнуть не открывая окна, но предварительно двинуть мышь и подождать перед кликом. В теме про WinAPI через PostMessage (hWnd, Msg, wParam, lParam) не сказано что нужно писать для движения в поле wParam
7) Как будет выглядеть система с несколькими таймерами, когда по одному из них выходит время - кликер делает нужное действие(щелкает)?
#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]
-
Проблемы:
1) После скриншота в буфер памяти, не хочет двигать мышь в координату с найденным цветом пикселя
(На остальной код пока не смотрите, еще ничего не сделано.)
2) Скрипт который ищет иконку в игре. Какими будут координаты $_return1/2? Центр этой иконки?
3) Где эта "морда.bmp" должна лежать?
1) Ошибка в строке №13 вместо (;)должна быть (,)- поэтому не двигает курсор.
2) Команда IF_PICTURE_IN ищет картинку. Левый-верхний угол.
3) Рядом со скриптом.
-
1) Ошибка в строке №13 вместо (;)должна быть (,)- поэтому не двигает курсор.
2) Команда IF_PICTURE_IN ищет картинку. Левый-верхний угол.
3) Рядом со скриптом.
Спасибо, обновил.
-
Скриншот делать так:
GETSCREEN
SCREENSHOT
HALT
Искать в папке screens. Открывать в Paint, Обрезать и сохранять только в .bmp
Заготовку лучше делать маленькую, но что бы она была уникальной (10х5, 20х10 пикселей достаточно).
И не IF_PIXEL_IN, a IF_PICTURE_IN. Ты же картинку ищешь а не пиксел.
-
Скриншот делать так:
GETSCREEN
SCREENSHOT
HALT
Искать в папке screens. Открывать в Paint, Обрезать и сохранять только в .bmp
Заготовку лучше делать маленькую, но что бы она была уникальной (10х5, 20х10 пикселей достаточно).
И не IF_PIXEL_IN, a IF_PICTURE_IN. Ты же картинку ищешь а не пиксел.
Сделал так. Он тыкает в черный пиксель. Ну хоть что-то. Иконка 10х10. В чем же причина?
-
Скрипт в студию.
-
Скрипт в студию.
Пожалуйста :)
#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)
-
Нашел! hWND не тот уже!
-
а скриптик-то краденный! :o
Чего тут красть-то =D Все у вас взял из двух тем для новичков
-
Нашел! hWND не тот уже!
При каждом новом запуске программы hWND не тот уже.
-
Нашел! hWND не тот уже!
При каждом новом запуске программы hWND не тот уже.
Нет, не помогло, он тыкает немного в другой пиксель, рядом. Причем если сдвинуться вправо по ферме, то он будет тыкать в туже точку относительно интерфейса. Под этой заклепкой, под цифрой "60"
-
Нашел! hWND не тот уже!
Он всегда "Уже не тот", так система устроена. ;D
Ага, я чето забыл, потом сделаю чтобы он по окну искал сам hWND, сейчас не стал перегружать код, и так косяки в упор не вижу)
-
Нашел! hWND не тот уже!
При каждом новом запуске программы hWND не тот уже.
Нет, не помогло, он тыкает немного в другой пиксель, рядом. Причем если сдвинуться вправо по ферме, то он будет тыкать в туже точку относительно интерфейса. Под этой заклепкой, под цифрой "60"
Попробуй процент совпаденияif_picture_in(0, 0, $_xmax, $_ymax, "water.bmp",-1,90)
Или COLORMODE(?) применить. Но тогда и заготовку нужно переделать.
В режиме редактора включи лупу, наведи на окно с игрой. ВИДИТ?
Он просто обязан найти эту "воду.бмп".
-
Попробуй процент совпаденияif_picture_in(0, 0, $_xmax, $_ymax, "water.bmp",-1,90)
Или COLORMODE(?) применить. Но тогда и заготовку нужно переделать.
В режиме редактора включи лупу, наведи на окно с игрой. ВИДИТ?
Он просто обязан найти эту "воду.бмп".
Лупа видит, все увеличивает. -1, 90 сейчас добавлю проверю, а что означает -1? Что в Colormode писать?
-
-1, 90 не помогло. Я обнаружил что он тыкает в определенный пиксель относительно окна браузера, а не этой игры. Если я сдвину игру вниз, то и точка окажется вообще сверху, вне экрана игры
-
Сначала сделать скрин. И заново сделать каплю.
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT
Потом в скрипте добавить.
//#name "PV"
//$HWnd = 5965136
//$WM_LBUTTONDOWN = 0x0201
//$WM_LBUTTONUP = 0x0202
//$WM_MOUSEMOVE = 0x0200
//$MK_LBUTTON = 0x0001
getscreen
COLORMODE(6)
if_picture_in(0, 0, $_xmax, $_ymax, "water.bmp",-1,90)
//-375 -100
MOVE ($_return1 ,$_return2)
end_if // Самое главное забыл
HALT // Тоже пригодится
-1 - это цвет маски(игнорируемый), Если -1 - без маски.
-
То же самое. Тычет в точку которую отсчитывает по браузеру а не игре.
Но ведь в скрипте нет отсылки к hWND? Он нигде не используется в команде. Мы его только задаем. Может по этому? Как его в оборот включить? С end_if ничего не делается вообще. Без него он тычит не туда.
-
Не делается т.к. картинку не находит. Уменьшай процент.
-
Заработало, пробовал разные варианты, переделал каплю не CM6 10х10, а CM6 5x5.
#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 //
Этот вариант не работает (подозреваю что из-за нуля). Как сделать чтобы он тыкал в окно не открывая его? Предварительно нужно двинуть мышь, потому что игра не сразу реагирует на перемещения, как я заметил. Но в той теме про WinAPI через PostMessage (hWnd, Msg, wParam, lParam) не сказано что нужно писать для движения в поле wParam
#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 //
-
Нафига end_if убрал? Без него нельзя!!!
-
Но ведь работало! =D Ладно, могу и вернуть
-
В свернутом окне графика не показывается, поэтому и анализ не возможен.
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(0, 0, $_xmax, $_ymax, "waterCM6_25.bmp",-1,90)
POSTMESSAGE($_hwnd, 0x0200, 0x0001, $_return1 + ($_return2*65536)) // наводим
WAITMS(50)
POSTMESSAGE($_hwnd, 0x0201, 0x0001, $_return1 + ($_return2*65536) // зажимаем
waitms(50)
POSTMESSAGE($_hwnd, 0x0202, 0x0001, $_return1 + ($_return2*65536)) // отпускаем
waitms(100)
ELSE
HINTPOPUP("Не нашел")
END_IF
HALT // Стоп
-
Oraven, ваш скрипт тоже не срабатывает, возвращаясь к моему старому упростим скрипт, вот что я обнаружил:
#name "PV"
$HWnd = 263244 //ìåíÿåì êàæäûé ðàç
$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, 0x0200, 0x0001, $_return1 + ($_return2*65536)) // íàâîäèì
// WAITMS(50)
// POSTMESSAGE($_hwnd, 0x0201, 0x0001, $_return1 + ($_return2*65536) // çàæèìàåì
// waitms(50)
// POSTMESSAGE($_hwnd, 0x0202, 0x0001, $_return1 + ($_return2*65536)) // îòïóñêàåì
// waitms(100)
//ELSE
// HINTPOPUP("Íå íàøåë")
//END_IF
HALT // Ñòîï
Без else, hintpopup, end_if - работает, курсор наводится на воду.
С else, hintpopup, end_if - срабатывает "иначе", показывает "не нашел"
С end_if - не работает, курсор на месте.
Рабочий вариант с выключенными else, hintpopup, end_if и заменой Move на три ваших Postmessage так же не работает или показывает "не нашел" с условием "иначе".
Если Move убрать и оставить только один Postmessage с движением мыши - не работает
-
Да, блин. Тебе уже пять раз сказали, без END_IF нельзя!
Конструкция условия состоит из
IF_
...
END_IF
Не будет END_IF, не будет работать и строка IF_. СОВСЕМ. Просто пропускается. Хоть есть там картинка, хоть нет, тупо идёт дальше и выполняется Move.
У тебя не находит картинку, а ты вместо решения вопроса кликеру зубы выбиваешь.
-
Я понимаю что должен быть конец условия, но почему с ним не работает, а без него наводится точно на воду, он же находит воду без него, что мешает найти с завершенной конструкцией, вот что вызывает недоумение
-
У тебя не находит картинку!!!
-
Значения в системных переменных $_return1 ,$_return2 не сбрасываются даже после остановки скрипта. Именно поэтому их всегда пишут внутри условия.
IF_PICTURE_IN это функция-условие.
IF_PICTURE_IN(0, 0, $_xmax, $_ymax, "waterCM6_25.bmp",-1,90)
// все что здесь выполняется если картинка найдена
ELSE
// эта часть выполняется если картинка не найдена.
END_IF
Завязывай уже портить условие, и копай в сторону не нахождения твоей "waterCM6_25.bmp"!
-
Значения в системных переменных $_return1 ,$_return2 не сбрасываются даже после остановки скрипта. Именно поэтому их всегда пишут внутри условия.
Воо) Теперь я понял!
-
Ты писал:
2) Нажатия по таким иконкам, иконки немного движутся вверх-вниз.
Иконки при движении возможно меняют рисунок.
Попробуй найти этим скриптом. Он ждет появления нужной картинки.
$var=0
WHILE($var=0)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(0, 0, $_xmax, $_ymax, "waterCM6_25.bmp",-1,90)
$var=1
MOVE ($_return1 ,$_return2)
HINTPOPUP("НАШЕЛ ТУТ-Х=",$_return1," У=",$_return2)
WAITMS(100)
ELSE
WAITMS(50)
END_IF
END_CYC
HALT
Даже на первом скрине из первого поста на двух иконках очень отличающиеся друг от друга картинки капли.
-
Капли из первоно поста? А что можно сказать по jpeg-у? Только что где находится и как расположено.
Пора аршинными буквами написать про скрины в png. И не отвечать, пока не появятся.
-
Капли из первоно поста? А что можно сказать по jpeg-у? Только что где находится и как расположено.
Пора аршинными буквами написать про скрины в png. И не отвечать, пока не появятся.
Да я уже не знаю как эту каплю искать. Вот и предположил(слабая надежда).
Автор! Клади сюда скрины в png! ;D