Author Topic: Clickermann не жмет кнопки в...  (Read 4365 times)

0 Members and 3 Guests are viewing this topic.

VenomKAA

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Clickermann не жмет кнопки в...
« 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]
Помогите - кто знает как побороть этот "баг" или "блокировку"?
« Last Edit: March 15, 2017, 12:41:16 AM by VenomKAA »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #1 on: March 14, 2017, 06:57:00 AM »
Речь идет о запоминании положения курсора и возврат его на исходное место после клика.

Если это весь скрипт тогда так
Code: (clickermann) [Select]
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

VenomKAA

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #2 on: March 15, 2017, 12:34:48 AM »
Спасибо за быстрые ответы, но скрипт пытается сделать клик в координатах (0,0) - верхний левый угол экрана, а не по координатам иконки с навыком (пикселем цвета 88830). А так - действительно перемещение мгновенное!

VenomKAA

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #3 on: March 15, 2017, 12:40:25 AM »
Но в таком виде все работает:
[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]
« Last Edit: March 15, 2017, 12:42:23 AM by VenomKAA »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #4 on: March 15, 2017, 06:20:46 AM »
Ну конечно, координаты то клика я забыл вписать.  ::)
Code: (clickermann) [Select]
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

VenomKAA

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #5 on: March 15, 2017, 08:24:45 PM »
Ну конечно, координаты то клика я забыл вписать.  ::)
[SPOILER]
Code: (clickermann) [Select]
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]
Так как Вы предлагаете - код короче и "красивее" что ли!? Нужно попробовать. Я отпишусь.

VenomKAA

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #6 on: March 18, 2017, 06:19:21 PM »
Все работает! Супер - спасибо. Ваш код "красивее", пользуюсь им, только добавил еще пару навыков. Но "нарисовалась" проблема  - если всплывающие окна полностью перекрывают панель навыков, то все хорошо, но если нет - то скрипт пытается нажать кнопки (но это не возможно так как открыто окно торговли или банка и т.д.) и полностью перехватывает управление на себя, так что не могу ничего нажать. Единственный выход отключать скрипт в такие моменты.

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #7 on: March 19, 2017, 01:50:40 PM »
Quote
если всплывающие окна полностью перекрывают панель навыков, то все хорошо, но если нет - то скрипт пытается нажать кнопки (но это не возможно так как открыто окно торговли или банка и т.д.) и полностью перехватывает управление на себя, так что не могу ничего нажать.

я конечно не знаком с твоей игрой, но я так понимаю, что кликать по иконке с умением каждые 100мс  и мониторить PXL(758,959) каждые 30мс будет излишне. попробуй увеличить эти задержки до размера, которого будет достаточно и для скорости скана PXL(758,959), и чтоб не мешали бесполезные клики по иконке каждые 100мс (к примеру поставь секунду задержки после каждого клика). вот к примеру, редактируй сам.
Code: (clickermann) [Select]
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

VenomKAA

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #8 on: March 19, 2017, 05:55:55 PM »
Quote
если всплывающие окна полностью перекрывают панель навыков, то все хорошо, но если нет - то скрипт пытается нажать кнопки (но это не возможно так как открыто окно торговли или банка и т.д.) и полностью перехватывает управление на себя, так что не могу ничего нажать.

[SPOILER]я конечно не знаком с твоей игрой, но я так понимаю, что кликать по иконке с умением каждые 100мс  и мониторить PXL(758,959) каждые 30мс будет излишне. попробуй увеличить эти задержки до размера, которого будет достаточно и для скорости скана PXL(758,959), и чтоб не мешали бесполезные клики по иконке каждые 100мс (к примеру поставь секунду задержки после каждого клика). вот к примеру, редактируй сам.
Code: (clickermann) [Select]
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]

Это самый простой способ - Я думал с проверкой нажатия или с тригером, но логического решения не нашел  :'(

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Clickermann не жмет кнопки в...
« Reply #9 on: March 20, 2017, 08:10:12 AM »
Очевидно что нужно добавить еще одно условие поиска твоих всплывающих окон по каким то признакам.
Однако и близко не представляя с чем ты там имеешь дело ничего посоветовать нельзя.