1 (изменено: YrukZ, 2021-06-06 16:20:49)

Тема: AHK: Цвет пикселя.

Объединю две темы в одну.
Суть скрипта:
Есть один процесс в игре выглядит примерно так , один неподвижный зеленый круг с каждым разом он разного размера , другой круг белого цвета и после каждого раза он сужается.
В чем суть нужно нажать на пробел когда белый круг во время сужения поподает в зеленый.
Вопрос в том можно ли как то автоматизировать этот процесс?
//imgur.com/rWQnKCi
Вроде ответом "Если проверять цвет пикселя - то выйдет без проблем.
Находим зелёный круг, в цикле ждём изменение пикселя на белый.
" все решено, но...
Есть зеленая область, в нее сужается белое кольцо.
Как сделать так, чтобы когда кольцо входило в зеленую область, нажимался пробел.
У меня что-то такое корявое вышло.

Loop {
ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%i3.png
x1 = x + 1
y1 = y + 2
PixelSearch, OutputVarX, OutputVarY, x, y, x1, y1, *75 0xffffff
if ErrorLevel = 0
{
Send {space}
}
}


Loop {
ImageSearch, x, y, 171, 413, 1176, 792, *75 %A_ScriptDir%i3.png
if ErrorLevel
MsgBox,
else
MsgBox,
if ErrorLevel = 0
{
mouseGetPos, x, y
Send {space}
}
}

Ну или так.

Вот фото i3: //imgur.com/a/PWomSEs

Post's attachments

i3.jpg
i3.jpg 470 b, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

2

Re: AHK: Цвет пикселя.

YrukZ, ознакомьтесь, пожалуйста, с правилами форума, отредактируйте свой пост.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Цвет пикселя.

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

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: AHK: Цвет пикселя.

teadrinker
Готово

5

Re: AHK: Цвет пикселя.

Вижу явную ошибку в синтаксисе:

x1 = x + 1

Здесь для присвоения значения должен использоваться знак :=

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Цвет пикселя.

teadrinker
Исправил, все равно не помогло.

	Loop {
ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%i3.jpg
x1 := x + 1
y1 := y + 2
PixelSearch, OutputVarX, OutputVarY, x, y, x1, y1, *75 0xffffff
if !ErrorLevel
{
Send {space}
}
}

Так же дополню скриншоты, первый как изначально выглядит, второй когда должен нажиматься пробел.
//imgur.com/a/s2Wvco6

7

Re: AHK: Цвет пикселя.

YrukZ, я не думаю, что можно помочь, не имея сабжа.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Цвет пикселя.

teadrinker
Ну я же в кратце описал что должно произойти.

9

Re: AHK: Цвет пикселя.

Без изображения нет полного понимания того, что происходит.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Цвет пикселя.

YrukZ пишет:
%A_ScriptDir%i3.png

Это тоже явная ошибка. Предположим, папка скрипта у вас D:\MyScript. Тогда ваша конструкция разрешится в D:\MyScripti3.png.
Вообще, нужно учиться тестировать свои скрипты построчно. После строчки

ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%i3.jpg

нужно проверить переменную ErroLevel, как описано в справке:

ErrorLevel is set to 0 if the image was found in the specified region, 1 if it was not found, or 2 if there was a problem that prevented the command from conducting the search (such as failure to open the image file or a badly formatted option).

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Цвет пикселя.

teadrinker
Научится бы тестировать скрипты построчно, я максимальный новичок в этом деле.

12

Re: AHK: Цвет пикселя.

Самый простой способ — выводить только что полученные значения в MsgBox, например:

ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%i3.jpg
MsgBox % "ErrorLevel: " . ErrorLevel . "`nx: " . x . "`ny: " . y

Понятно, что если картинка не найдена, дальше продолжать не имеет смысла. Если всё ок, то можно строчку с MsgBox убрать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Цвет пикселя.

teadrinker
Получается файл будет выглядеть так:

ImageSearch, x, y, 634, 632, 1500, 932, *75 D:\MyScripti2png.png

При том условии что картинка называется
i2png.png

14

Re: AHK: Цвет пикселя.

YrukZ пишет:

MyScripti2png.png

А разве это правильно?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15

Re: AHK: Цвет пикселя.

teadrinker
Или поставить строчку перед этим

%A_ScriptDir%

16

Re: AHK: Цвет пикселя.

Во что разрешается строчка с переменными, вы тоже можете сами проверить через MsgBox:

MsgBox %A_ScriptDir%i3.jpg
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: AHK: Цвет пикселя.

teadrinker

Post's attachments

Screenshot_8.png
Screenshot_8.png 1.39 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

18

Re: AHK: Цвет пикселя.

Ну, всё правильно показало, у вас ведь файл недействительный указан.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

19

Re: AHK: Цвет пикселя.

teadrinker
Ну а как если вот по факту картинка она лежит "i3.jpg".

Post's attachments

Screenshot_9.png 43.61 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

20

Re: AHK: Цвет пикселя.

Если картинка в папке скрипта, то можно указать вообще только название файла без папки:

ImageSearch, x, y, 634, 632, 1500, 932, *75 i3.jpg

Если с папкой, то слеш добавить:

ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%\i3.jpg
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK: Цвет пикселя.

teadrinker
Протестил, все равно 0 реакции, может я запишу вам видео в 10 секунд, где покажу как должно быть? Может тогда поймете сабж?

22

Re: AHK: Цвет пикселя.

teadrinker
Должно быть так:
//youtu.be/BwlUm-4hB6o

23

Re: AHK: Цвет пикселя.

В каком смысле 0 реакции? MsgBox после ImageSearch что показывает?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

24

Re: AHK: Цвет пикселя.

teadrinker
Вот, такая реакция на строчки:

ImageSearch, x, y, 634, 632, 1500, 932, *75 MsgBox  %A_ScriptDir%/i3.jpg
MsgBox  %A_ScriptDir%/i3.jpg
Post's attachments

Screenshot_10.png
Screenshot_10.png 1.73 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.

25

Re: AHK: Цвет пикселя.

Вряд ли так у вас что получится. Смотрите, я вам написал

%A_ScriptDir%\i3.jpg

А вы вставили:

%A_ScriptDir%/i3.jpg

Слеш должен быть обратным, как у меня.

teadrinker пишет:

MsgBox после ImageSearch что показывает?

Я имел в виду MsgBox с проверкой ErrorLevel. Чтобы не прерывать цикл, можно вместо MsgBox использовать ToolTip.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

26

Re: AHK: Цвет пикселя.

У меня опустились руки, огромное спасибо в целом. Можно как то закрыть тему?

27

Re: AHK: Цвет пикселя.

Закрывать ни к чему, может, кто-то ещё что-нибудь дельное подскажет.
От себя могу добавить, чтобы проверить работоспособность хотя бы поиска картинки, можете запустить такое:

Loop {
   ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%\i3.jpg
   ToolTip % "ErrorLevel: " . ErrorLevel . "`nx: " . x . "`ny: " . y
   Sleep, 10
}

И смотрите, будет ли ErrorLevel в какие-то моменты равен 0. Если нет, значит скриншот не соответствует реальному изображению.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

28

Re: AHK: Цвет пикселя.

Ох, не заметил, вы туда ещё и MsgBox впаяли, поправил.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

29 (изменено: YrukZ, 2021-06-08 02:17:27)

Re: AHK: Цвет пикселя.

teadrinker
Благодарю, сегодня попробую.

30

Re: AHK: Цвет пикселя.

teadrinker
Могу ли я с вами связаться напрямую?

31

Re: AHK: Цвет пикселя.

Да, конечно, но в личке я консультирую только платно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

32 (изменено: YrukZ, 2021-06-09 19:05:06)

Re: AHK: Цвет пикселя.

teadrinker пишет:
Loop {
   ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%\i3.jpg
   ToolTip % "ErrorLevel: " . ErrorLevel . "`nx: " . x . "`ny: " . y
   Sleep, 10
}

Правильно я понимаю что надо именно этот код отдельно запустить?

33

Re: AHK: Цвет пикселя.

Да, запускаете изображение, потом этот код отдельно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

34 (изменено: YrukZ, 2021-06-09 19:23:08)

Re: AHK: Цвет пикселя.

teadrinker
Смотрите что выходит.
//youtu.be/qy4Vtl-5Ig8
То есть в момент когда белый круг в зеленой зоне, пишет ErrolLevel: 0, как и должно быть я понимаю, тогда в чем проблема.

35

Re: AHK: Цвет пикселя.

Значит работает.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

36 (изменено: YrukZ, 2021-06-09 20:07:18)

Re: AHK: Цвет пикселя.

teadrinker
То есть в момент когда белый круг в зеленой зоне, пишет ErrolLevel: 0, как и должно быть я понимаю, тогда в чем проблема.
Получается что надо решать что то в этом коде.

PixelSearch, OutputVarX, OutputVarY, x, y, x1, y1, *75 0xffffff
if !ErrorLevel
{
Send {space}

37

Re: AHK: Цвет пикселя.

Так а зачем вам что-то дополнительно искать? Я так понял, что вы как раз и ожидаете момента, в который мой код показывает ErrolLevel 0. Или нет?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

38 (изменено: YrukZ, 2021-06-09 20:22:23)

Re: AHK: Цвет пикселя.

teadrinker
Я запутался маленько.
Смотрите, на видео когда ErrorLevel 0 показывает, должен прожиматся пробел, но этого не происходит. Я сделал из этого вывод что проблема во второй части кода.

39

Re: AHK: Цвет пикселя.

А зачем вторая часть кода, если первая уже всё находит? Просто выбросьте её, пропишите нажатие пробела, когда ErrorLevel равно 0.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

40

Re: AHK: Цвет пикселя.

teadrinker
Ну, а что я напишу кроме того что есть, по идее же все должно работать.

x1 := x + 1
y1 := y + 2
PixelSearch, OutputVarX, OutputVarY, x, y, x1, y1, *75 0xffffff
if !ErrorLevel
{
Send {space}
}
}

Должно все работать в таком виде... Или я не прав?

41

Re: AHK: Цвет пикселя.

Я вас не понимаю. Зачем нужно искать пиксель, если пробел нужно нажимать в тот момент, когда найдена картинка моим кодом выше?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

42

Re: AHK: Цвет пикселя.

teadrinker

     	Loop {
ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%\i3.jpg
x1 := x + 1
y1 := y + 2
if !ErrorLevel 0
{
Send {space}
}
}

Получается код должен выглядеть так?

43

Re: AHK: Цвет пикселя.

YrukZ пишет:
x1 := x + 1
y1 := y + 2

А это зачем?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

44

Re: AHK: Цвет пикселя.

teadrinker
Сам не знаю... За основу брал похожий скрипт.

45

Re: AHK: Цвет пикселя.

Вам нужно просто в этом скрипте

Loop {
   ImageSearch, x, y, 634, 632, 1500, 932, *75 %A_ScriptDir%\i3.jpg
   ToolTip % "ErrorLevel: " . ErrorLevel . "`nx: " . x . "`ny: " . y
   Sleep, 10
}

вместо строчки, где отображается ErrorLevel и координаты, прописать условие: если ErrorLevel равен 0, послать пробел. Экспериментируйте.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

46

Re: AHK: Цвет пикселя.

teadrinker
Все вышло, все работает. Огромное спасибо вам за помощь. Это мой первый код, мой первый опыт. И он успешен. Благодарен вам за помощь, можно закрывать тему.

47

Re: AHK: Цвет пикселя.

Поздравляю! У нас темы обычно не закрывают.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder