Версия для печати темы
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)