1 (изменено: 590074, 2020-01-27 21:33:36)

Тема: AHK : ImageSearch или как найти картинку в активном окне.

Имеется код, приведенный ниже:

F6::
Loop,
{
ImageSearch, xp, yp, 68, 541, 1911, 1069, 1.png
Sleep 200
If xp > 0
Break
}
MsgBox, Muhaha!
Return

Картинка 1.png обрезана и естественно убран фон, нужен поиск данной картинки в игре, а после нахождение происходило какое либо действие, в данном случае для теста просто всплывающее окно о том что картинка нашлась, но при таком коде она ни в какую не находится, пробывал находить в активном окне самой картинки, код работает, окно выдает, но в игре GTA 5 RP, я не получаю то чего хотелось бы, окно к сожалению не вылазит, хотя проверял все координаты игры через данный код:


^F1::
MouseGetPos, X, Y
Tooltip, %X% %Y%
Clipboard = %X%, %Y%
Sleep 1000
Tooltip
Return

Пробовал так же добавлять "*0-225 1.png" но толком ничего не дало, либо сразу находит картинку (при 225 очевидно) либо вообще не находит, золотой середины к сожалению нет. Может быть нужно показать скрипту что работать нужно в определенном окне, может он работает не в том окне что нужно, я не понимаю. Так же прикреплю картинки которые ищет в игре, и саму базу по которой он ищет ниже:
https://i.ibb.co/4msBbd6/1.png
https://i.ibb.co/2Zj5T9X/1.png

2 (изменено: stealzy, 2020-01-27 22:52:02)

Re: AHK : ImageSearch или как найти картинку в активном окне.

590074 пишет:

и естественно убран фон

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

3

Re: AHK : ImageSearch или как найти картинку в активном окне.

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

4 (изменено: 590074, 2020-01-28 17:10:13)

Re: AHK : ImageSearch или как найти картинку в активном окне.

stealzy
Тэкс, теперь другая проблема, по всей видимости я не могу определить цвет, который нужно взять за "Универсальный", как я понял *TransЦВЕТ, но пока что это не помогает. Безусловно пробовал те, которые указанны как рекомендуемые, оба, и белый и черный, и ргб (*Trans000000) и пробовал добавлять ко всему еще *75 дабы смягчить поиск не определенного цвета, а разных, кстати говоря как только запускаю этот цикл, он становится приоритетнее других функций и остальная часть скрипта работает уже с лагами, но это не сильно помешает, если получится разыскать все же картинку. Как показала проверка через данный код:


CoordMode Pixel;
F6::
CoordMode Pixel;
ImageSearch, xp, yp, 451, 760, 1552, 1070,*TransBlack 1.png
if ErrorLevel = 2
    MsgBox Произвести поиск невозможно.
else if ErrorLevel = 1
    MsgBox Изображение не найдено на экране.
else
    MsgBox Изображение найдено в координатах x=%FoundX%, y=%FoundY%.
Return

Выдает ErrorLevel 1, то есть не может найти картинку на экране, хотя она как бы есть, координаты указанны верно.

5

Re: AHK : ImageSearch или как найти картинку в активном окне.

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