Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: VenomKAA on March 14, 2017, 01:51:44 AM
-
Clickermann не жмет кнопки в игре Royal Quest, хотел Автоматизировать бафф, что бы не я а скрипт по КД вешал баф, все норм если делаю так:
[SPOILER]
DEFINE($var, 88830)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(758,959, 758,959, $var) //считываю цвет пикселя если он не отличается от константы то клик по координатам иначе ждать
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
[/SPOILER]
Но это не удобно потому как "Срывает" курсор на иконку с умением, что в бою очень не удобно! Хотел назначить на клавишу - присвоил ее умению (#F5), но кликерман жмет F5 везде - кроме окна с игрой!
[SPOILER]
DEFINE($var, 88830)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(758,959, 758,959, $var) //считываю цвет пикселя если он не отличается от константы то клик по координатам иначе ждать
KEYPRESS(116) // не жмет в окне игры :-(
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
[/SPOILER]
Помогите - кто знает как побороть этот "баг" или "блокировку"?
-
Речь идет о запоминании положения курсора и возврат его на исходное место после клика.
Если это весь скрипт тогда так
GETSCREEN(758,959, 758,959)
IF(PXL(758,959) = 88830)
$x = $_xmouse // запоминаем положение
$y = $_ymouse
LCLICK($_return1, $_return2) // кликаем
MOVE($x,$y) // возвращаем курсор на место
WAITMS(100)
ELSE
WAITMS(30)
END_IF
-
Спасибо за быстрые ответы, но скрипт пытается сделать клик в координатах (0,0) - верхний левый угол экрана, а не по координатам иконки с навыком (пикселем цвета 88830). А так - действительно перемещение мгновенное!
-
Но в таком виде все работает:
[SPOILER]
DEFINE($var, 88830)
$check = 0
WHILE($check = 0)
GETSCREEN
IF_PIXEL_IN(758,959,758,959, $var)
$check = 1
$x = $_xmouse
$y = $_ymouse
LCLICK($_return1, $_return2)
MOVE($x,$y)
WAITMS(100)
ELSE
WAITMS(500)
END_IF
END_CYC
[/SPOILER]
-
Ну конечно, координаты то клика я забыл вписать. ::)
GETSCREEN(758,959, 758,959)
IF(PXL(758,959) = 88830)
$x = $_xmouse // запоминаем положение
$y = $_ymouse
LCLICK(758,959) // кликаем
MOVE($x,$y) // возвращаем курсор на место
WAITMS(100)
ELSE
WAITMS(30)
END_IF
-
Ну конечно, координаты то клика я забыл вписать. ::)
[SPOILER]
GETSCREEN(758,959, 758,959)
IF(PXL(758,959) = 88830)
$x = $_xmouse // запоминаем положение
$y = $_ymouse
LCLICK(758,959) // кликаем
MOVE($x,$y) // возвращаем курсор на место
WAITMS(100)
ELSE
WAITMS(30)
END_IF
[/SPOILER]
Так как Вы предлагаете - код короче и "красивее" что ли!? Нужно попробовать. Я отпишусь.
-
Все работает! Супер - спасибо. Ваш код "красивее", пользуюсь им, только добавил еще пару навыков. Но "нарисовалась" проблема - если всплывающие окна полностью перекрывают панель навыков, то все хорошо, но если нет - то скрипт пытается нажать кнопки (но это не возможно так как открыто окно торговли или банка и т.д.) и полностью перехватывает управление на себя, так что не могу ничего нажать. Единственный выход отключать скрипт в такие моменты.
-
если всплывающие окна полностью перекрывают панель навыков, то все хорошо, но если нет - то скрипт пытается нажать кнопки (но это не возможно так как открыто окно торговли или банка и т.д.) и полностью перехватывает управление на себя, так что не могу ничего нажать.
я конечно не знаком с твоей игрой, но я так понимаю, что кликать по иконке с умением каждые 100мс и мониторить PXL(758,959) каждые 30мс будет излишне. попробуй увеличить эти задержки до размера, которого будет достаточно и для скорости скана PXL(758,959), и чтоб не мешали бесполезные клики по иконке каждые 100мс (к примеру поставь секунду задержки после каждого клика). вот к примеру, редактируй сам.
GETSCREEN(758,959, 758,959)
IF(PXL(758,959) = 88830)
$x = $_xmouse // запоминаем положение
$y = $_ymouse
LCLICK(758,959) // кликаем
MOVE($x,$y) // возвращаем курсор на место
WAITMS(1000)//и задержка в секунду после клика до следующей проверки на наличие пикселя.
ELSE
WAITMS(300)//задержка между проверками (если пикселя нет)
END_IF
-
если всплывающие окна полностью перекрывают панель навыков, то все хорошо, но если нет - то скрипт пытается нажать кнопки (но это не возможно так как открыто окно торговли или банка и т.д.) и полностью перехватывает управление на себя, так что не могу ничего нажать.
[SPOILER]я конечно не знаком с твоей игрой, но я так понимаю, что кликать по иконке с умением каждые 100мс и мониторить PXL(758,959) каждые 30мс будет излишне. попробуй увеличить эти задержки до размера, которого будет достаточно и для скорости скана PXL(758,959), и чтоб не мешали бесполезные клики по иконке каждые 100мс (к примеру поставь секунду задержки после каждого клика). вот к примеру, редактируй сам.
GETSCREEN(758,959, 758,959)
IF(PXL(758,959) = 88830)
$x = $_xmouse // запоминаем положение
$y = $_ymouse
LCLICK(758,959) // кликаем
MOVE($x,$y) // возвращаем курсор на место
WAITMS(1000)//и задержка в секунду после клика до следующей проверки на наличие пикселя.
ELSE
WAITMS(300)//задержка между проверками (если пикселя нет)
END_IF
[/SPOILER]
Это самый простой способ - Я думал с проверкой нажатия или с тригером, но логического решения не нашел :'(
-
Очевидно что нужно добавить еще одно условие поиска твоих всплывающих окон по каким то признакам.
Однако и близко не представляя с чем ты там имеешь дело ничего посоветовать нельзя.