Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ Сломан findimage?

Автор: MAXXIMUM 21.5.2018, 23:44

Суть проблемы такова.

Был у меня один рабочий скрипт и в нем была следующая строчка:

Код

set #j1 findimage (200 500 320 650 (D:\picture.bmp) %crds #handle)

И работал он замечательно. Но тут прошло пол года и решил я опять запустить этот скрипт.
Я задумался, может в игре изменили картинку слегка и сделал новый скриншот картинки (bmp 24 бита), но чуда не произошло.

После этого я решил изменить параметры строчки на следующие:
Код

set #j1 findimage (200 500 320 650 (D:\picture.bmp) %crds 2 60 1 20 #handle)

И о чудо! Картинка находится, только с точностью 60%. Такой результат меня не устроил, с учетом того, что раньше она находилась с меньшей погрешностью.

Я решил попробовать сделать скриншот самим пилотом и для теста написал следующий скрипт:

Код

set %a GetImage  (226 552 286 576)       // сохранить в памяти часть экранной области
set $bmp SaveImage (%a [1 1] d:\picture.bmp)        // сохранить в файл на диск C:\
set $b DeleteImage  (%a [1 1])             // удалить из памяти часть экранной области
set #j1 findimage (200 500 320 650 (D:\picture.bmp) %crds 2 60 1 20)
msg #j1
End_script


Точность совпадения 60%. Подумал, может все дело в фоне? и поставил первый пиксель совершенно другого цвета, но точность по прежнему 60%

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

Автор: cirus 22.5.2018, 1:44

Цитата
2 60 1 20 #handle

4 параметра должно быть.
Тип поиска, точность, количество, погрешность_цвета.
5 параметром может быть только abs, признак абсолютных координат.

Уберите или уменьшите погрешность в цвете в 20%.






Автор: DarkMaster 22.5.2018, 3:37

#handle вместо '2'

Автор: MAXXIMUM 22.5.2018, 13:53

Цитата(DarkMaster @ 22.5.2018, 3:37) *

#handle вместо '2'



В версии 2.39 или 2.40 это изменили? Поставил 2.38 и все работает идеально в моем варианте написания, и точность поиска стала 100%

Автор: DarkMaster 22.5.2018, 17:59

Цитата
В версии 2.39 или 2.40 это изменили?

Это всегда так было.

Автор: AbsorbeR 30.6.2018, 3:53

Код
set #result findimage (0 0 #userX #userY (store.bmp) %dummyArr 2 abs)

Ошибка -4. Хотя в Вики есть такой вариант указания на файл.

Автор: DarkMaster 30.6.2018, 12:27

Цитата
Ошибка -4. Хотя в Вики есть такой вариант указания на файл.

Значит файл лежит не там, где должен. Помоему вполне логично, что сообщение об ошибке наличия файла указывает на отсутсвтие файла...

Автор: AbsorbeR 30.6.2018, 16:21

Файл лежит рядом с запускаемым скриптом. До этого был в подпапке.

Автор: cirus 30.6.2018, 16:30

Картинка или папка с картинкой должны быть рядом с exe пилота. Или указывайте весь путь.

Автор: AbsorbeR 30.6.2018, 17:48

Цитата(cirus @ 30.6.2018, 16:30) *

Картинка или папка с картинкой должны быть рядом с exe пилота. Или указывайте весь путь.

Вот это в Вики должно быть. И так для каждой команды, работающей с путями и файлами.

Автор: Cockney 30.6.2018, 17:53

Цитата(AbsorbeR @ 30.6.2018, 17:48) *

Вот это в Вики должно быть. И так для каждой команды, работающей с путями и файлами.



Если все-таки собрать волю в кулак и почитать вики, то можно увидеть

Цитата
<($filename)> - путь к сохранённому изображению (только файл формата bmp). Путь к изображению может быть указан как абсолютный - (C:\programms\pilot\images\), так и относительный - (images\). Указывается в круглых скобках. При использовании пробелов в адресе используйте кавычки либо строковую переменную(например $myPatch), предварительно присвоив ей(переменной) необходимый адрес.

Автор: AbsorbeR 30.6.2018, 20:40

Цитата(Cockney @ 30.6.2018, 17:53) *

Если все-таки собрать волю в кулак и почитать вики, то можно увидеть

Я не вижу, чтобы там было написано "относительно uopilot'а".

Автор: Cockney 30.6.2018, 22:40

А я не вижу, чтобы была хоть какая-то логика в постах типа

Цитата
Я не вижу, чтобы там было написано "относительно uopilot'а".
.


Если опять же, осилить https://ru.wikipedia.org/wiki/%D0%9F%D1%83%D1%82%D1%8C_%D0%BA_%D1%84%D0%B0%D0%B9%D0%BB%D1%83

Можно понять, что

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


и если уж uopilot требует указать относительный путь, то он будет относительно uopilot. И только его, т.к. является активным (хотя тут уж вам виднее) приложением.


Более того, я даже не могу представить относительный путь до, скажем ворда, в том случае если uopilot не лежит в папке с вордом.

Автор: AbsorbeR 30.6.2018, 23:54

Cockney, причем тут Wikipedia? Речь о документации UOPilot. Когда человек чем-то пользуется, то читает документацию по этому продукту. Куда пойдет человек с вопросом по UOPilot? Люди, которые скачали UOPilot, скачали его, чтобы использоваться, писать скрипты, а не в укагадайку играть "как написать путь тут, как написать там".

И да, предвещая это, я не написал, что DirCreate создает папки относительно скрипта. Написано ли это? Нет.

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

Автор: DarkMaster 1.7.2018, 10:51

Цитата

И да, предвещая это, я не написал, что DirCreate создает папки относительно скрипта. Написано ли это? Нет.

Код для воспроизведения?
dircreate (strangepath)
Вполне ожидаемо создало папку рядом с exe пилота.

Автор: AbsorbeR 1.7.2018, 17:25

DarkMaster, именно так, если скрипт пишется с ноля и не сохранён. А вот если скрипт уже существующий, отправь его в какие-нибудь подпапки, открой его и напиши в нём dirCreate (myfolder\folder). В моём случае скрипт лежит в подпапки папки скриптов. Папки были созданы в ней.

Меня такое поведение устроило. Вполне логично, что я также попытался запилить findimage.

Автор: DarkMaster 1.7.2018, 18:49

Баг. Кнайту на фикс.

Автор: AbsorbeR 1.7.2018, 21:52

Как по мне, так отличный баг.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)