nncron в играх возможно ли это сделать?

Обсуждение программ nnCron и nnCron LITE

nncron в играх возможно ли это сделать?

Postby chuk » Tue, 18 Sep 2007, 14:10

Как в Exe приложениях (игра стратегия) выполнить допустим клик мышкой в заданных (х, у) координатах Карты игры (координаты показуются самой игрой).
Пользуюсь кроном уже давно, но в основном не в сложных ситуациях, так как в програмировании мягко сказа но не силен.

Если подскажете скриптик буду преочень благодарен :)
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Re: nncron в играх возможно ли это сделать?

Postby SaMM » Tue, 18 Sep 2007, 21:23

chuk wrote:выполнить допустим клик мышкой в заданных (х, у) координатах Карты игры

==>> Раздел справки "Эмуляция движений мыши"
SaMM
 
Posts: 236
Joined: Fri, 25 Aug 2006, 12:33

Postby chuk » Wed, 19 Sep 2007, 09:02

Суть вопроса не в "Эмуляции движений мыши" в области экрана ,а в передвижении экрана в области намого большей чем сам экран,
Например размер экрана х-1023, у-767, а размер карты
х- 20 000, у- 20 000.
Отсюда и сам вопрос Как кликнуть мышкой в координатах КАРТЫ например х-1000 ,у-8000

Пожалуста подскажите возможно ли такое или нет, что б я не забивал себе и другим голову :)))
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Postby VoidVolker » Wed, 19 Sep 2007, 09:04

Этот способ работает процентов на 30(работает только при наличии курсора и часто прпускаются клики), т.к. в кроне для эмуляции пользовательского ввода используется старое вин-апи, еще с 98-ой винды, а в ХР лучше использовать SendInput. Тут ниже есть тема такая же.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Postby chuk » Wed, 19 Sep 2007, 09:48

Если вы имели ввиду эту тему
"SEND-KEYS для приложения DirectX - SendInput?"

Тогда это немного не то. Я использую нажатие клавиш или одновременно нажатые клавиши в играх не через SEND-KEYS
а через keybd_event и прекрасно все работает например нажать и отжать "А" будет:
0 1 69 65 keybd_event DROP
0 3 69 65 keybd_event DROP

Мой вопрос не в том КАК двигать или нажимать клавиши в ИГРЕ (это все я умею)
А КАК ПЕРЕМЕЩАТЬ курсор в нужные координаты НО, не экрана !!! А КАРТЫ!! где экран монитора всего лиш маленький квадратик на большой карте
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Postby chuk » Wed, 19 Sep 2007, 13:58

Пока я нахожусь в смиренном ожидании мудрого ответа:)))

Хочу уточнить маленький нюанс :Можно ли сделать так что бы утилита WinSpy была всегда видна? Потому что при запуске ЕХЕ приложений она скрывается. И если нельзя, то каким способом еще можно определять координаты курсора на экране в Ехе приложениях(играх)?
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Postby SaMM » Wed, 19 Sep 2007, 14:09

chuk wrote:каким способом еще можно определять координаты курсора на экране в Ехе приложениях(играх)?

В цикле пишем в лог то, что вернет MOUSE-POS
Last edited by SaMM on Sun, 23 Sep 2007, 22:03, edited 1 time in total.
SaMM
 
Posts: 236
Joined: Fri, 25 Aug 2006, 12:33

Postby VoidVolker » Wed, 19 Sep 2007, 15:23

Например так:
Code: Select all
<%
: CUR-POS!
  MOUSE-POS ROT 2! ;
: CUR-MOVE
  2@ MOUSE-MOVE ;
: XY-CLIK
  CUR-MOVE MOUSE-LBCLK ;

2VARIABLE XYCELL1
2VARIABLE XYCELL2
%>

#( 1_CUR!
WatchHotKey: "^1"  \ Ctrl+1
Action:
XYCELL1 CUR-POS!
)#

#( 1_CUR-MOVE
WatchHotKey: "@1"  \ Alt+1
Action:
XYCELL1 CUR-MOVE
)#


#( 2_CUR!
WatchHotKey: "^2"  \ Ctrl+2
Action:
XYCELL2 CUR-POS!
)#

#( 2_CUR-MOVE-CLIK
WatchHotKey: "@2"  \ Alt+2
Action:
XYCELL2 XY-CLIK
)#

Но в играх работает через раз, да и только в тех где имеется курсор, поэтому таки надо с SendInput (http://tripsin.narod.ru/notes/input_imitation.htm) разобраться, да вот только я не знаю что делает сишное "union", а так бы уже давно сделал.
Last edited by VoidVolker on Thu, 20 Sep 2007, 21:35, edited 2 times in total.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Postby chuk » Wed, 19 Sep 2007, 17:51

:roll: Большое спасибо за код, сам бы я его не написал!

Ну что ж это выход! не такой легкий как я думал но все же! :P

Конечно через mouse_event с установкой абсолютнй позиции мыши по оси X и У было бы лучше. А так придется дОООлго возиться на одной только карте нужно ввести 80 позиций, а карт миниму 5-6 :))))

Но как говорится не можеш работать головой бери лопату :)
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Postby VoidVolker » Wed, 19 Sep 2007, 20:56

Как представлена эта карта? Она просто растянута на весь экран? Или там прокрутка? И что за игра?
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Postby chuk » Wed, 19 Sep 2007, 22:27

Код опробовал действительно в играх очень нестабильно 30% правильно остальное куда угодно только не там где запоминали
и еще вот тут опечатка
#( 2_CUR-MOVE
WatchHotKey: "@2" \ Alt+2
Action:
XYCELL2 XY-CLIK
)#

а надо
#( 2_CUR-MOVE
WatchHotKey: "@2" \ Alt+2
Action:
XYCELL2 CUR-MOVE
)#
когда крон заругался то я чисто интуитивно догадался:)

карта обычная 2д с координатами х и у в верхнем левом углу , представлена ..... ну не знаю как представлена, как во всех стратегиях, одинаково везде.
Могу по колхозному расписать :) Экран монитора как спичечный коробок на альбомном листе.Управляется тоже везде одинаково стрелочками влево, вправо, вверх, вниз, либо мышкой на край экрана и тогда экран как бы ползет в строну курсора.

В вашей ссылке там об этом написано в "Функция mouse_event"но как вы сказали ее уже заменили.

Поначалу я предположил что если задать крону Абсолютные координаты окна(в десятки раз большие чем координаты экрана)
то все получится :))) ОНО та получится, НО как задать вот в чем вопрос :) :roll:
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Postby chuk » Thu, 20 Sep 2007, 09:25

По Вашей ссылке я нашол другую статью
"Приручение мыши. Имитация ввода пользователя."
http://tripsin.narod.ru/articles/mouse_ ... tation.htm

так вот там вскользь упоминается мой вопрос вот цитата
"Во много экранной системе эти координаты относятся к главному монитору. Если хочешь использовать весь виртуальный рабочий стол (т.е. несколько мониторов), то установи флаг MOUSEEVENTF_VIRTUALDESK (это только в Windows 2000/XP)."

ну, а как и к чему прикрутить :roll: и чего с этим делать я даж в инете информации не нашёл.
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Postby VoidVolker » Thu, 20 Sep 2007, 21:31

Код опробовал действительно в играх очень нестабильно 30% правильно остальное куда угодно только не там где запоминали

Вот видишь - нужно разбираться что делает сишное "union".
Вообще-то ошибка была в определении, исправил.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Postby chuk » Fri, 21 Sep 2007, 08:21

[/quote]Вот видишь - нужно разбираться

Чтоб разбираться нужно, что то понимать, а не тупо искать что похожее и переделывать под себя как это делаю я!

Так что если кто нить что нить поймет и выложит скриптик, я судовольствием буду бета тестером :roll:
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Postby chuk » Sun, 23 Sep 2007, 12:27

Может у кого нить что нить уже получилось ?Не жадничайте подскажите :)))
chuk
 
Posts: 65
Joined: Tue, 18 Sep 2007, 13:59

Next

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests

cron