Author Topic: Как обнаружить мышь на экране?  (Read 1706 times)

0 Members and 1 Guest are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Как обнаружить мышь на экране?
« on: November 01, 2020, 01:24:42 AM »
Ребят, помогите проблему решить. Есть игра, которая захватывает и отпускает мышь. При захвате мышь исчезает с экрана и если ею двигать, то поворачивается камера в игре. А если захват мыши отпустить, то она просто перемещается по экрану. Вся проблема в том, что при некоторых действиях в игре, мышь захватывается автоматически и если потом нужно куда-то кликнуть ею, то полная херь получается. Кликер не видит мышь на экране и не может определить - захвачена она, или нет. Как эту проблему решить можно?
Я не ду... Потому и не бу...

ya12

  • Активный участник
  • ***
  • Posts: 165
    • View Profile
Re: Как обнаружить мышь на экране?
« Reply #1 on: November 01, 2020, 08:43:51 AM »
Если игра позволяет, то ковыряешь память с помощью Cheat Engine. При захвате значение измениться. Обычно для переключения режимов используются значения типа 0,1,..., но бывают и не очень логичные 255.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как обнаружить мышь на экране?
« Reply #2 on: November 01, 2020, 11:55:26 AM »
Если игра позволяет, то ковыряешь память с помощью Cheat Engine. При захвате значение измениться. Обычно для переключения режимов используются значения типа 0,1,..., но бывают и не очень логичные 255.
Я к сожалению далек от кавыряния в памяти... Никогда этим не занимался... И навряд ли Black Desert это позволит ))
« Last Edit: November 01, 2020, 11:56:59 AM by Hito »
Я не ду... Потому и не бу...

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Как обнаружить мышь на экране?
« Reply #3 on: November 01, 2020, 01:48:28 PM »
А код курсора как то меняется в состояниях, когда мышь "захвачена" и "не захвачена" автоматически?
Бывает так, что сами цифровые значения системной переменной $_cursor не важны, достаточно того, что они не равны друг другу, в различные моменты игры.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как обнаружить мышь на экране?
« Reply #4 on: November 01, 2020, 02:34:17 PM »
А код курсора как то меняется в состояниях, когда мышь "захвачена" и "не захвачена" автоматически?
Бывает так, что сами цифровые значения системной переменной $_cursor не важны, достаточно того, что они не равны друг другу, в различные моменты игры.

Ты об $_xmouse и $_ymouse? Если мышь захвачена и находится у края игрового клиента, то ее координаты меняются на противоположный край клиента. Я так понимаю, это для того, чтобы камеру крутить бесконечно можно было. Но смысл в том, что камеру-то крутить не надо, а нужно навести мышь в нужные координаты и кликнуть. Каким образом этой инфой можно воспользоваться - я хз. К примеру, не привязанная мышь находится в координатах 1000, 1000, что в нашем примере будет ровняться нижнему правому углу игрового клиента. А в привязанном состоянии ее координаты поменяются на 10,10. Но как кликеру понять - привязана мышь, или нет?
Я не ду... Потому и не бу...

4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Как обнаружить мышь на экране?
« Reply #5 on: November 01, 2020, 03:19:48 PM »
Ты об $_xmouse и $_ymouse?

Не, я говорю не про координаты, а про код курсора, который меняется, например при наведении курсора на различные элементы окна приложения (или элементы игрового интерфейса).
В редакторе: Команды ==> Системные переменные ==> $_cursor - Код курсора. Вот я про что.

Code: (clickermann) [Select]
LOGWRITE ($_cursor)

WAITMS(100)

Кстати да, резкое несанкционированное изменение координат курсора, тоже можно наверно анализировать).

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Как обнаружить мышь на экране?
« Reply #6 on: November 01, 2020, 04:06:52 PM »
Ты об $_xmouse и $_ymouse?

Не, я говорю не про координаты, а про код курсора, который меняется, например при наведении курсора на различные элементы окна приложения (или элементы игрового интерфейса).
В редакторе: Команды ==> Системные переменные ==> $_cursor - Код курсора. Вот я про что.

Code: (clickermann) [Select]
LOGWRITE ($_cursor)

WAITMS(100)

Кстати да, резкое несанкционированное изменение координат курсора, тоже можно наверно анализировать).

Хм... То, что доктор прописал...
А по поводу резкого несанкционированного изменения координат курсора - тогда бы уже давно заблокировали ))
Спасибо огромное!
Я не ду... Потому и не бу...