Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Определение формы курсора.Решено, Можно ли определить форму курсора в игре
Мишаня через тире
сообщение 13.1.2020, 16:18
Сообщение #1


*

Registred
Сообщений: 5
Регистрация: 13.1.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.504



Здравствуйте. Хочу написать бота для игры Атлантика онлайн.
Игра самая обычная - бегаешь по локациям, наводишь курсор на моба, нападаешь.
Курсор при наведении на моба меняет форму, это могло бы весьма[i] упростить процесс выцепления мобов из окружающей среды, но. Скриншоты делаемые уопилотом курсор не показывают в принципе.
В связи с этим 2 вопроса.
1) Возможно ли как-то опционально таки получить курсор на скрине, для дальнейшей обработки. Если нет, то...
2) Как я понимаю, с точки зрения windows курсор такое же окно как и все остальные. Является ли оно дочерним по отношению к какому-либо окну, можно ли получить информацию о нем из списков дочерних окон?

Спасибо за помощь заранее. Если нужна какаянть информация дополнительная, предоставлю.


зы. собсно форма не важна, очевидно. Мне нужно отловить один единственный пиксель на курсоре, для реализации.

Вопрос решен. Изображение текущего курсора элегантно и просто выдирается из ресурсов самой игры.
Реализация на С, если кому интересно:
CURSORINFO ci;
ICONINFO ii;

ci.cbSize= sizeof(CURSORINFO);
if(!GetCursorInfo(&ci))
MessageBox(NULL, "GetCursorInfo", "Oops", MB_ICONERROR);
hCursor= ci.hCursor;

ii.fIcon= FALSE;
if(!GetIconInfo (hCursor, &ii))
MessageBox(NULL, "GetIconInfo", "Oops", MB_ICONERROR);
hBitmap= ii.hbmColor;

Осталось одно маленькое неудобство, в том, что данная реализация не работает, если окно игры активно.
Сорри, но дальше возиться неохота, проще выводить его в пассив, через несколько секунд после клика.
Всем спасибо, удачной охоты ).
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Fors1k
сообщение 13.1.2020, 18:20
Сообщение #2


*****

Journeyman
Сообщений: 497
Регистрация: 19.12.2017
Группа: Пользователи
Наличность: 2420
Пользователь №: 18.746



Цитата(Мишаня через тире @ 13.1.2020, 16:18) *

1) Возможно ли как-то опционально таки получить курсор на скрине, для дальнейшей обработки.

Подключись тимвивером к компу, поставь галочку "отображать курсор клиента", сделай скрин.


Цитата(Мишаня через тире @ 13.1.2020, 16:18) *
Мне нужно отловить один единственный пиксель на курсоре, для реализации
Цитата(Мишаня через тире @ 13.1.2020, 16:18) *
Скриншоты делаемые уопилотом курсор не показывают в принципе.

Если пилот не может видеть курсор, то как он поймет что на нем изменился пиксель?)


--------------------
Для связиИзображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Мишаня через тире
сообщение 14.1.2020, 0:03
Сообщение #3


*

Registred
Сообщений: 5
Регистрация: 13.1.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.504



Цитата(Fors1k @ 13.1.2020, 18:20) *

Подключись тимвивером к компу, поставь галочку "отображать курсор клиента", сделай скрин.
Если пилот не может видеть курсор, то как он поймет что на нем изменился пиксель?)


Так вопрос собственно в этом и состоит. Каким образом из пилота можно поймать изменение формы и цвета курсора. Ну или его части ). Смысл делать скрин сторонним по нету, так-то я его и в пайнте нарисовать могу.
Мне надо сделать так чтобы это можно было определить из скрипта.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 14.1.2020, 5:04
Сообщение #4


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Ну поидее если стороннее что-то видит мышь на скрине (далеко не факт), то можно этим сторонним сохранять, подгружать изображение в пилот и искать его.
Собственно тут нужен будет набор:
loadimage+findimage.
Скринить лучше на ram диск, а то и так цепочка тормозная ожидается.

Сообщение отредактировал DarkMaster - 14.1.2020, 5:06


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 14.1.2020, 5:20
Сообщение #5


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



https://forum.uokit.com/index.php?showtopic...%E6%E5%ED%E8%E5
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 14.1.2020, 6:23
Сообщение #6


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



хе. мысли сходятся =)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Мишаня через тире
сообщение 14.1.2020, 6:38
Сообщение #7


*

Registred
Сообщений: 5
Регистрация: 13.1.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.504



Цитата(cirus @ 14.1.2020, 5:20) *


Чорт, говорила же мне мама в детстве, - учись Мишаня через тире юзать поиск. А я не слушался. Огромное спасибо. Тема закрыта.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Мишаня через тире
сообщение 15.1.2020, 13:34
Сообщение #8


*

Registred
Сообщений: 5
Регистрация: 13.1.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.504



Цитата(Мишаня через тире @ 14.1.2020, 6:38) *

Чорт, говорила же мне мама в детстве, - учись Мишаня через тире юзать поиск. А я не слушался. Огромное спасибо. Тема закрыта.


Увы . С удивлением увидел на скрине стандартный виндовый курсор мыши.
Плюнул на все, вспомил молодость и пошел писать свой скринер. И вот тут-то в процессе и выяснилось, что сия программа дорисовывает на скрин текущий стандартный курсор винды. Ибо средствами winapi получить изображение курсора невозможно, так как он вне всех контекстов, в том числе и дисплея.
Итого. Как из пилота получить доступ к видеобуферу? Можно даже на ассемблере ).
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.1.2020, 14:14
Сообщение #9


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
изображение курсора невозможно, так как он вне всех контекстов, в том числе и дисплея

А можно где-то почитать? а то мельком пробовал искать и не нашел интересующей инфы. В частности очень интересно каким образом он отрисовывается в рамках использования данного метода для других целей.

Цитата
Как из пилота получить доступ к видеобуферу?

Есть небезосновательные подозрения, что это не поможет.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Мишаня через тире
сообщение 15.1.2020, 14:41
Сообщение #10


*

Registred
Сообщений: 5
Регистрация: 13.1.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.504



Цитата(DarkMaster @ 15.1.2020, 14:14) *

А можно где-то почитать? а то мельком пробовал искать и не нашел интересующей инфы. В частности очень интересно каким образом он отрисовывается в рамках использования данного метода для других целей.


Информация взята отсюда https://www.codeproject.com/Articles/12850/...he-Mouse-Cursor.

Конечно, это не msdn, но учитывая, что ни один контекст устройств изображения курсора не видит, это весьма похоже на правду.

Более детальную информацию, учитывая мои 3 слова на англ., я в ингнете не нашел, может у Вас получится )

зы А чем плох видеобуфер? Насколько я еще помню ассемблер, просто массив точек в памяти. Если погуглить можно даже абсолютный адрес найти. Ну, я так думаю )

зы 2 Мне тут на одном форуме вешают, что можно из дескриптора курсора получить ид ресурса, со всеми вытекающими. Хоть убей не помню такого, и найти не могу. Может подскажет кто?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.1.2020, 19:31
Сообщение #11


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
зы А чем плох видеобуфер? Насколько я еще помню ассемблер, просто массив точек в памяти. Если погуглить можно даже абсолютный адрес найти. Ну, я так думаю )

тем, что там его может не быть. Не все, что вы видите идет через видеобуфер. Часть наложений его минует. Сюрприз.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 1:24
Designed by Nickostyle