Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: PasqualeAcosta on November 02, 2018, 12:12:32 PM
-
День добрый! Перечитал массу тем про проблемы с привязыванием окон. И только еще больше запутался.
В общем игра три в ряд, отдельный клиент, без каких либо геймгуардов и защит. Оконный режим. Винда 10.
Все цвета в лупе отображаются корректно, мышка кликает во время, цвета считываются. НО мышка кликает туда где находится курсор в данный момент, а не по координатам. Как такое исправить?
Судя по темам которые находил, есть ряд команд которые не работают при привязке, но не нашел нигде общий список того что "Нельзя".
В общем как обходят такие проблемы с наведением?
-
А предварительное наведение курсора MOVE (x, y) пробовал?
-
:-\ А MOVE не работает при привязке? Я даже и не знал :(.
Ну и ладно, вот этот MOVE должен сработать http://crapware.aidf.org/forum/index.php?topic=2111.0
Либо просто:
postmessage($_hwnd,0x0200,0,$x+($y*65536)) //$x и $y - координаты.
-
А способа попроще реально нету)? Судя по описанию функций все гораздо проще должно было быть.
Я не против и так сделать, но реально именно так необходимо?
Как понимаю "0x0200" означает клик левой кнопки? Справку прочитал, но не особо понял эту команду. почему первый координат "0", а второй "$x+($y*65536)". Можно чуть подробнее.
-
SENDMESSAGE / POSTMESSAGE (hwnd, message, wParam, lParam)
Параметры:
hwnd - HWND окна
message - сообщение окну
wParam, lParam - параметры сообщения
hwnd - с этим вроде понятно. Тем более, что если окно привязано, то служебная переменная $_hwnd дает текущий hwnd привязки.
message - берем код сообщения на сайте макрасофта. Сообщения для мышки - https://docs.microsoft.com/ru-ru/windows/desktop/inputdev/mouse-input-notifications.
Нам нужен WM_MOUSEMOVE - https://docs.microsoft.com/ru-ru/windows/desktop/inputdev/wm-mousemove. Сообщение 0x0200. 0x0200 - это число в шеснадцатеричном виде. Можно его написать в десятичном 512 , разницы нет.
Там же на сайте смотрим параметры wParam, lParam для WM_MOUSEMOVE.
wParam - это всякие доп кнопки при передвижении курсора, нам не нужно это, пишем 0.
lParam - два байта с координатами перемещения курсора. Младший байт - координата Х, старший байт - координата У. Эти две координаты представляются одним числом. Поэтому в этом параметре математическое выражение $x+($y*65536)
-
В вашем случае проявляется необходимость наводить курсор перед кликом, что исключает использование режима привязки.
Если кликер не может быть кликером, зачем тогда вообще привязки)? У меня сейчас жена в диабло 3 на виртуалке ботит)) Хороший вариант конечно, но думал все как то проще реализуется.
-
Хорошо, спасибо. Буду оба варианта тестировать. Как минимум ради общего развития)
-
но даже если удастся наводить курсор в оконном режиме, то проблема пользования компом без свободного доступа к управлению мышью останется
Да не, не будет проблем :D. С чего ты взял? Что будет мешать?
Я кстати вспомнил. В игре Арчейдж когдато делал посадку и уборку уражая с привзкой, и там тоже клики не проходили без наведения курсора. Так я тогда прицепил move через реалистичное передвижение с POSTMESSAGE . Работало стабильно, и не мешало основной работе на пк.
-
Да не, не будет проблем :D.
Что бы создать клик мне нужно будет через альтернативу прописать как наведение мышкой А_Move, а потом еще через альтернативу продублировать координаты в сам клик мышкой A_lclick ?
Просто не понимаю зачем прописывать передвижение если в самом щелчке так же указываются координаты действия?
-
В том то и дело, что перед кликом тебе нужно сначала переместить курсор, а потом уже клик.
К примеру вот твой старый скрипт, выглядит так:
LCLICK(247,322)
wait(1)
LCLICK(1245,620)
wait(1)
LCLICK(1153,171)
wait(1)
LCLICK(368,432)
wait(1)
Нужно изменить его на вот такой:
//A_MOVE
SUB(A_MOVE, $A_x, $A_y, $A_hwnd)
postmessage($A_hwnd,0x0200,0,$A_x+($A_y*65536))
END_SUB
A_MOVE(247,322, $_hwnd)
LCLICK(247,322)
wait(1)
A_MOVE(1245,620, $_hwnd)
LCLICK(1245,620)
wait(1)
A_MOVE(1153,171, $_hwnd)
LCLICK(1153,171)
wait(1)
A_MOVE(368,432, $_hwnd)
LCLICK(368,432)
wait(1)
Если клики у тебя работаю в привязке как LCLICK, то и нет нужды переписывать их на A_lclick.
-
Спасибо. Кстати тоже в арчейдж поигрывал когда то еще с ЗБТ на корее))
-
В том то и дело, что перед кликом тебе нужно сначала переместить курсор, а потом уже клик.
Прописал, не получается. Координаты нормально определяются, привязка правильная, в логе так же все корректно отображается. Но по факту клик все равно происходит там где в данный момент находится курсор и он не сдвигается...
Пробовал и клики мыши прописать через postmessage как у вас в теме.
Тоже 0 реакции. В чем еще может быть проблема?
-
:-\ Ну... значит не судьба.