1 (изменено: vezderegit@bk.ru, 2012-03-21 18:24:12)

Тема: AHK: Привязать PixelSearch к курсору мыши

Помогите сделать привязку PixelSearch к курсору мыши. Нужно чтобы под курсором областью 50х50 искал определенный цвет, если находил нажимать лкм. Если нет, то повтор заново. Уже все темы просмотрел с PixelSearch ниче не получается, даже цвет найти по координатам. Ниже скрипт, что смог сделать, совсем не то что нужно... Проверял по изображению http://s1.hostingkartinok.com/uploads/i … 737b5e.bmp


!^g::  ; запуск по альт ктрл г
    Loop
    {
    PixelSearch, Px, Py, 0, 0, 100, 100, 0xfff600, 3, Fast          ; Задаем область поиска и цвет
    If ErrorLevel1
	click
    else                                         
           MsgBox, cvet nauden tut  x%Px% y%Py%
Sleep, 100
    }
return

else наверно тут вовсе не нужно и ErrorLevel1 заменить на =0. Справку читал уже. И желательно пример привести как будет выглядеть.

2

Re: AHK: Привязать PixelSearch к курсору мыши

http://www.autohotkey.com/docs/commands/MouseGetPos.htm
http://forum.script-coding.com/viewtopi … 310#p56310

3

Re: AHK: Привязать PixelSearch к курсору мыши

!^vk47::  ; запуск по Alt-Ctrl-G
Loop
{
   MouseGetPos, X, Y
   PixelSearch,,, X-50, Y-50, X+50, Y+50, 0xfff600,, Fast RGB
   If !ErrorLevel
   SoundBeep, 750, 500 ; для отладки. (т.е. тут будет Click)
   Sleep, 100
}
return

4

Re: AHK: Привязать PixelSearch к курсору мыши

vezderegit@bk.ru пишет:

Уже все темы просмотрел с PixelSearch...

Видимо плохо смотрели. 1, 2.

5 (изменено: vezderegit@bk.ru, 2012-03-21 17:26:43)

Re: AHK: Привязать PixelSearch к курсору мыши

Отлично, спасибо. Только SoundBeep у меня выключен. Не издает никаких звуков. И 750, 500 это получается в этой области будет кликать? А чтобы было например не клик, а нажатия на клавиши код предположительно будет выглядеть так?

!^vk47::  ; запуск по Alt-Ctrl-G
Loop
{
   MouseGetPos, X, Y
   PixelSearch,,, X-50, Y-50, X+50, Y+50, 0xff0000,, Fast RGB
   If !ErrorLevel
   Send, {SC020 down} ; нажать D
   Sleep, 100
   Send, {SC020 up} ; отпустить D
   Sleep, 100
;тут продолжение кода
}
return

;клавиши нужные

^Home::Reload  ; 						клавиша ctrl + Home перезагрузка скрипта
	^End::Suspend	 ; 						клавиша ctrl + End включения-выключения скрипта
		+End::pause  ; 							клавиша shift + End скрипта
			^Ins:: exitapp ;  						клавиша ctrl + Ins выход из скрипта

Там коды без пояснений, мне не понятны многим.

А еще вопрос, почему бы не создать общую тему для таких новичков? И отправлять по ссылкам на другие уже созданные темы. Ведь это намного проще, чем искать самому не зная. А тут уже кто находится сравнительно длинное время уже много знают где какая тема была создана.

6

Re: AHK: Привязать PixelSearch к курсору мыши

Опробовал, оказывается как и у многих других. Скрипт стабильно работает в винде, а при запуске игры ноль реакции.

7 (изменено: vezderegit@bk.ru, 2012-03-21 20:29:36)

Re: AHK: Привязать PixelSearch к курсору мыши

Нет, не так все
Короче тут идет цикл в скриптах, что выше в них этот цикл повторяется, если цвет был найден. А мне нужно как в тех примерах со вторым вариантом, если цвет есть, кликает, а если нет, то не кликает. Только тут не кликать, а нажимать клавиши. По коду у меня какой то бред выходит. Не понимаю че за ватч курсор и L,,,,,, U. Объясните как новичку может и в коде без комментариев я не разберусь.

!^vk42::  ; запуск по Alt-Ctrl-B
Loop
{
SetTimer, WatchCursor1, 100
WatchCursor1:
   MouseGetPos, XPos, YPos
   PixelSearch,,, XPos-25
                , YPos-25
                , XPos+25
                , YPos+25
                , 0xff3b1d,, Fast RGB ; зона поиска 50х50 от центра курсора
   If !ErrorLevel
   {
      Send, {SC039 up} ;отпустить пробел
         Sleep, 100 ; Задержка 0,1 секунды
            Send, {SC020} ;нажать D   ---2 скорость
               Sleep, 100 ; Задержка 0,1 секунды
                  Send, {SC039 down} ;нажать и держать пробел
      SetTimer, WatchCursor1, Off
      SetTimer, WatchCursor2, 100
   }
   Return
WatchCursor2:
   MouseGetPos, XPos, YPos
   PixelSearch,,, XPos-25
                , YPos-25
                , XPos+25
                , YPos+25
                , 0x0000FF,, Fast RGB
   If ErrorLevel
   {
      MouseClick, L,,,,, U
      SetTimer, WatchCursor2, Off
      SetTimer, WatchCursor1, 100
   }
   Return
}
return

Короче еще раз.
Там область слишком большая, лучше поменьше сделать, как тут на 25. А цвета сперва этот 0xfcf1b4 - это как только например зеленый загорелся, жмет пробел. А потом каким то образом мы перемещаем мышь. И новый цвет - 0xff3b1d - двигателья красненького нашего, слип чуть чуть 50 например. Чтобы не сразу на красном переключал, а чуть позже. D - кнопка переключения. Между нажатиями D нужна тоже задержка в 100. Дальше снова газу - пробел. А цвет теперь красный исчез. Нужно чтобы цикл прекратился. А потом все повторилось со слип 50. И все это в одном скрипте.

8

Re: AHK: Привязать PixelSearch к курсору мыши

Ничего не понятно.
Напишите алгоритм от начала и до конца.

9

Re: AHK: Привязать PixelSearch к курсору мыши

А его и нету нормального, есть два скрипта по типу #3 поста запускающихся на разные клавиши. И эти скрипты надо объединить. Как описано в конце #7 поста.
Только не надо справку опять цитировать, в ней все равно ничего не понятно.

10

Re: AHK: Привязать PixelSearch к курсору мыши

Ну раз вы сами не можете описать, то чего вы хотите, то кто ж вам поможет...

11 (изменено: vezderegit@bk.ru, 2012-03-21 21:15:50)

Re: AHK: Привязать PixelSearch к курсору мыши

Я же написал в 7м посте что нужно.
Первый цикл

!^vk47::  ; запуск по Alt-Ctrl-G
Loop
{
   MouseGetPos, X, Y
   PixelSearch,,, X-25, Y-25, X+25, Y+25, 0xfcf1b4,, Fast RGB ; определяем цвет
   If !ErrorLevel
Send, {SC039 down} ; нажать и держать пробел
} 
return

Первый цикл просто должен жать на пробел, но как только под курсором появился цвет1 fcf1b4 (0xfcf1b4). И так он все и жмет пробел пока под курсором не появится цвет2 ff3b1d (0xff3b1d). После чего ждет 100 мсек (0,1 сек) и нажимает "D" (SC020). Потом снова пауза в 100 мсек (0,1 сек). Наш цвет2 исчез под курсором, поэтому снова постоянно пробел (SC039 down).  А как только он появляется вновь повторяется "100, D, 100". Пока не исчезнет, а дальше снова пробел. И так до бесконечности.

12 (изменено: creature.ws, 2012-03-21 21:21:02)

Re: AHK: Привязать PixelSearch к курсору мыши

В сообщении #7 вижу вопрос —

Не понимаю че за ватч курсор и L,,,,,, U. Объясните

WatchCursor1  и WatchCursor2 — метки подпрограмм.
MouseClick, L,,,,, U

The button to click: Left (default), Right, Middle (or just the first letter of each of these);

U = Release the mouse button (i.e. generate an up-event).

По поводу прочего, описываемого в ключе «нужно, должен» : нужно — делайте.

13

Re: AHK: Привязать PixelSearch к курсору мыши

f11::
Loop
{
   MouseGetPos, X, Y
   PixelSearch,,, X-25, Y-25, X+25, Y+25, 0xffffff,, Fast RGB ; определяем цвет
   if !ErrorLevel       ; если нашёл
   {
      msgbox 1
      Loop
      {
         sleep 100
         MouseGetPos, X, Y
         PixelSearch,,, X-25, Y-25, X+25, Y+25, 0x000000,, Fast RGB ; определяем цвет
         if !ErrorLevel       ; если нашёл
         {         
            msgbox 2
            break
         }
      }
   }
}
return

14

Re: AHK: Привязать PixelSearch к курсору мыши

vezderegit@bk.ru пишет:

Только не надо справку опять цитировать, в ней все равно ничего не понятно.

Русская справка переведена грамотно, за что людям проделавшим сей труд большое спасибо и уважение!

15

Re: AHK: Привязать PixelSearch к курсору мыши

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

16

Re: AHK: Привязать PixelSearch к курсору мыши

У Вас есть замечательная возможность начать сие делать.

17

Re: AHK: Привязать PixelSearch к курсору мыши

У меня недостаточно знаний, опыта и времени для такого дела.
А вот если бы кто-нибудь из гуру автохотки взялся бы за такое дело, то можно было бы участникам скинуться, кто во что горазд, на гонорар.

18

Re: AHK: Привязать PixelSearch к курсору мыши

Malcev пишет:

У меня недостаточно знаний, опыта…

В этом и будет Ваше преимущество. Ибо Вы сможете отобрать именно то, что:

Malcev пишет:

…во многом непонятная начинающим пользователям.

Malcev пишет:

… и времени для такого дела.

А у кого оно есть?

Malcev пишет:

А вот если бы кто-нибудь из гуру автохотки взялся бы за такое дело, то можно было бы участникам скинуться, кто во что горазд, на гонорар.

Первая часть малореальна, а вторая, не обижайтесь, и вовсе из области сказок. Вы всерьёз верите, что люди, тратящие тысячи рублей и сотни часов на времяпрепровождение в различных Online-игрушках (а это основной контингент приходящих сюда, пользуясь Вашей терминологией, «начинающих не-гуру»), пришлют хотя бы по сотне рублей на оплату подобного адского труда? Не верю.

P.S. Если есть желание развить эту тему — милости просим сюда: Script-Coding.com community.

19 (изменено: vezderegit@bk.ru, 2012-03-22 06:59:58)

Re: AHK: Привязать PixelSearch к курсору мыши

Grey пишет:
vezderegit@bk.ru пишет:

Только не надо справку опять цитировать, в ней все равно ничего не понятно.

Русская справка переведена грамотно, за что людям проделавшим сей труд большое спасибо и уважение!

Я говорил про английскую справку, русскую я читал. Там нет всего что нужно. Например ссылки ссылки на переведенный PixelSearch.

Первая часть малореальна, а вторая, не обижайтесь, и вовсе из области сказок. Вы всерьёз верите, что люди, тратящие тысячи рублей и сотни часов на времяпрепровождение в различных Online-игрушках (а это основной контингент приходящих сюда, пользуясь Вашей терминологией, «начинающих не-гуру»), пришлют хотя бы по сотне рублей на оплату подобного адского труда? Не верю.

А если делать например для себя?

20

Re: AHK: Привязать PixelSearch к курсору мыши

Повторюсь:

P.S. Если есть желание развить эту тему — милости просим сюда: Script-Coding.com community.

21 (изменено: vezderegit@bk.ru, 2012-03-22 16:26:50)

Re: AHK: Привязать PixelSearch к курсору мыши

Тут кстати заметил одну вещь интересную. На форуме есть такой тег. (code=AHK)(/code) Дак вот, он показывает что этот код может быть использован AHK, но теперь есть еще и AHK_L и не во всех скриптах один и тот же код может подходить на обе версии. Последний код пост 13 подходит для обычной версии, а я все утро пытался понять где пропущена там скобочка. В будующем может будет как то реализовано, чтобы было 2 версии тегов? Или дполнительно к скриптам прописывать версию. Я не экстрасенс и с утра мало что еще соображается, спасибо.

Кстати

f11::
Loop
{
   MouseGetPos, X, Y
   PixelSearch,,, X-25, Y-25, X+25, Y+25, 0xffffff,, Fast RGB ; определяем цвет
   if !ErrorLevel       ; если нашёл
   {
      msgbox 1
      Loop
      {
         sleep 100
         MouseGetPos, X, Y
         PixelSearch,,, X-25, Y-25, X+25, Y+25, 0x000000,, Fast RGB ; определяем цвет
         if !ErrorLevel       ; если нашёл
         {         
            msgbox 2
            break
         }
      }
   }
}
return

этот скрипт то, что надо, но только он не повторяет бесконечно его вторую часть. Тоесть он сделал дело и прекратил работу. Получается так: Первая часть - загорается зеленый - дает газу, газует пока не, начинается вторая часть, появляется новый цвет. Новый цвет появился, переключил коробку и поехал на второй скорости всю оставшуюся дистанцию, и спалил к чертям двигатель.

Все наконец то доделал его, поставив дополнительно, по примеру 13 поста, еще один цвет. И увеличив число прошлых.

22 (изменено: Malcev, 2012-03-22 16:31:01)

Re: AHK: Привязать PixelSearch к курсору мыши

Последний код пост 13 подходит для обычной версии,

Он должен подходить для AHK_L

23

Re: AHK: Привязать PixelSearch к курсору мыши

---------------------------
13йпост.ahk
---------------------------
Error:  Missing "{"

Line#
011: MouseGetPos,X,Y
012: PixelSearch,,,X-25,Y-25,X+25,Y+25,0x000000,,Fast RGB
013: if !ErrorLevel 
014: MsgBox,2
015: Break
016: }
017: }
---> 018: }
019: }
020: Return
021: Exit

The program will exit.
---------------------------
ОК   
---------------------------

Вот что он мне выдает при запуске в AHK_L

24

Re: AHK: Привязать PixelSearch к курсору мыши

Значит не всё скопировал - открывающих скобок должно быть такое же количество сколько и закрывающих.

25

Re: AHK: Привязать PixelSearch к курсору мыши

Скопировал все. На AHK_L идет только в таком случае

f11::
Loop
{
   MouseGetPos, X, Y
   PixelSearch,,, X-25, Y-25, X+25, Y+25, 0xffffff,, Fast RGB ; определяем цвет
   if !ErrorLevel       ; если нашёл
   {
      msgbox 1
      Loop
      {
         sleep 100
         MouseGetPos, X, Y
         PixelSearch,,, X-25, Y-25, X+25, Y+25, 0x000000,, Fast RGB ; определяем цвет
         if !ErrorLevel       ; если нашёл
         {         
            msgbox 2
            break
         }{
      }{
   }
}
return

26

Re: AHK: Привязать PixelSearch к курсору мыши

Значит ты привёл не весь свой скрипт.
Потому что так он вообще запускаться не должен.

27

Re: AHK: Привязать PixelSearch к курсору мыши

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

}{
      }{

Так у меня работает на AHK_L (F11 - пуск/стоп) :

pause
Loop
{
   MouseGetPos, X, Y
   PixelSearch,,, X-25, Y-25, X+25, Y+25, 0xffffff,, Fast RGB ; определяем цвет
   if !ErrorLevel       ; если нашёл
   {
      msgbox 1
      Loop
      {
         sleep 100
         MouseGetPos, X, Y
         PixelSearch,,, X-25, Y-25, X+25, Y+25, 0x000000,, Fast RGB ; определяем цвет
         if !ErrorLevel       ; если нашёл
         {         
            msgbox 2
            break
         }
      }
   }
}
return
F11:: pause