Здравствуйте, гость ( Вход | Регистрация )

13 страниц V « < 11 12 13  
Ответить в эту темуОткрыть новую тему
> Поиск числа с помощью Findimage, Готовый скрипт
DarkMaster
сообщение 2.2.2025, 16:07
Сообщение #241


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29617
Пользователь №: 11.279



Код
if cell then
   local h = tonumber(table.concat(cell[1]))
end


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 2.2.2025, 17:25
Сообщение #242


****

Apprentice
Сообщений: 285
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



Цитата(DarkMaster @ 2.2.2025, 16:07) *

Код
if cell then
   local h = tonumber(table.concat(cell[1]))
end


да, так работает, спс
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 2.2.2025, 17:47
Сообщение #243


****

Apprentice
Сообщений: 285
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.395



картинка

Подскажите еще, пытаюсь встроить в этот код hint из этой темы: LuaPosh

но после этого пилот начинает поиск изображений в своём окне, т.е. рабочим окно пилота становится и соответственно ничего не находит.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.2.2025, 0:57
Сообщение #244


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29617
Пользователь №: 11.279



с этой поделкой не работал. могу предложить чисто луашное решение:
https://forum.uokit.com/index.php?showtopic=71517
оно в бете, могут быть приколы.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 31.3.2025, 8:20
Сообщение #245


****

Apprentice
Сообщений: 195
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



можно как то этот скрипт *Поиск числа с помощью Findimage 4.0 (на языке пилота)* под картинки сделать , если найдена картинка 1 , то искать картинку a ... если 2 , то картинку b и так далее
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 31.3.2025, 20:24
Сообщение #246


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29617
Пользователь №: 11.279



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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 31.3.2025, 20:47
Сообщение #247


****

Apprentice
Сообщений: 195
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(DarkMaster @ 31.3.2025, 18:24) *

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


какую переменную надо вставлять в имя картнки
set $a findimage (409, 200 831, 438 (D:\uopilot\00\?.bmp) %crds 2)
если вставить $str , то показывает в hint 2-3 цифры , если %result [1 1] то не всегда , точно картинку выбирает ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 31.3.2025, 21:47
Сообщение #248


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29617
Пользователь №: 11.279



Цитата
какую переменную надо вставлять в имя картнки

Поясните подробно. Я правда пытался понять, что вы написали. Не получилось =)


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 31.3.2025, 21:58
Сообщение #249


****

Apprentice
Сообщений: 195
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(DarkMaster @ 31.3.2025, 19:47) *

Поясните подробно. Я правда пытался понять, что вы написали. Не получилось =)

скрипт показывает в hint два или три результата , как сделать , что бы он давал только один результат ?
вот картинки , иногда даёт правильный результат , а иногда на не правильную кликает
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 31.3.2025, 22:47
Сообщение #250


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29617
Пользователь №: 11.279



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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
portos
сообщение 31.3.2025, 23:01
Сообщение #251


****

Apprentice
Сообщений: 195
Регистрация: 6.12.2014
Группа: Пользователи
Наличность: 0
Пользователь №: 17.157



Цитата(DarkMaster @ 31.3.2025, 20:47) *

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

скрипт

// Поиск числа с помощью FindImage
init_arr %GetImage (1) 588, 148 806, 266 // координаты для поиска, StartX StartY EndX EndY

set linedelay 0
init_arr %picture 1 2 3 4 5 6 // имена картинок (0.bmp, 1.bmp и т. д.)
init_arr %symbol 1 2 3 4 5 6 // символ соответствующий имени, т. е. картинка 0.bmp соответствует 0
set $path "D:\uopilot\00" // папка с картинками
set $bmp "*.bmp*" // формат картинок
set #deltaY 8 // расстояние между строками (можно указать высоту картинок)
set #deltaspace 12 // допустимое расстояние между цифрами, иначе будет считаться что это не одно число
set #accuracy 90 // точность поиска для Findimage
set #deviation 3 // погрешность оттенка для Findimage
set #wait 2 // пауза между поиском картинок, если указать меньше искать будет быстрее, но нагрузит процессор
set #timeproc 2000 // время (в мсек) для поиска картинок, если 0 не выйдет из процедуры пока не найдётся хотя бы 1 картинка
set #repeatimage 2 // допустимое смещение координат, если используется несколько видов одной картинки

dir (%path $path $bmp)
set delimiter ' '
while 1 = 1
set size(%result) // уничтожить массив с предыдущими результатами
set size(%coord) // уничтожить массив с предыдущими координатами
call test %picture %symbol %GetImage %path #deltaY #deltaspace #accuracy #deviation #wait #timeproc #repeatimage // процедура поиска
// save_array %result C:\Users\abc\Desktop\result111.txt // массив с результатами поиска
// save_array %coord C:\Users\abc\Desktop\coord111.txt // массив с координатами чисел
if size(%result) > 0 // если размер массива больше 0
// ТУТ НУЖНЫЕ ДЕЙСТВИЯ
msg %result
///////////// для примера вывод в hint того что нашлось (можно убрать)
set $str
set %z [1] \n
for #i 1 size(%result)
set $str $str%result[#i]
if #i != size(%result)
set $str $str%z [1]
end_if
end_for
hint (14 clBlue 409, 265 ($str))

set $a 0
while $a < 1
set $a findimage (409, 200 831, 438 (D:\uopilot\00\%result[1 1].bmp) %crds 2) // картинку которую надо найти
end_while
if $a > 0 // если найдена
set #x %crds [1 1]
set #y %crds [1 2]

wait 200 + random (500)
kleft #x #y
wait 100 + random (300)
end_if



/////////////
else
hint Картинки не найдены
end_if
end_while

// процедура поиска и сортировки
proc test %picture %symbol %GetImage %path #deltaY #deltaspace #accuracy #deviation #wait #timeproc #repeatimage
set #GetStartX %GetImage [1 1]
set #GetStartY %GetImage [1 2]
set #GetEndX %GetImage [1 3]
set #GetEndY %GetImage [1 4]
set #current_script current_script
// загрузка картинок в память
if size(%path) > 0 // если картинки найдены
for #i 1 size(%path)
for #j 1 size(%picture)
if %path [#i 3] = %picture [#j]
set #n #n + 1
set %image [#n] LoadImage(%path [#i 1])
set %number [#n] %symbol [#j]
break
end_if
end_for
end_for
else
log Картинки в: $path не найдены
log Скрипт остановлен
stop_script #current_script
end_if
// поиск картинок и их сортировка
set size(%result1)
set size(%coord_tmp)
while size(%result1) = 0 and (#timeproc > timer or #timeproc = 0)
set #z 0
set %get GetImage(#GetStartX #GetStartY #GetEndX #GetEndY) // сохранить часть экрана в память
set #v %get [1 1]
for #i 1 size(%number)
set #a Findimage(0 0 %get [1 2] %get [1 3] (%image[#i 1]) %a #v #accuracy -1 #deviation) // поиск
if #a < 0
log Ошибка поиска картинки. Код ошибки: #a
log Скрипт остановлен
stop_script #current_script
end_if
if #a > 0
for #j 1 size(%a)
set #z #z + 1
init_arr %result1 (1 1 #z) %number[#i] %a[#j 1] %a[#j 2] // запись результатов поиска в массив
end_for
end_if
wait #wait
end_for
if size(%result1) > 0
gosub sortY // сортировка по Y и X
end_if
set $b DeleteImage(%get[1 1]) // удалить изображение, полученное GetImage
end_while
goto end // выйти из процедуры

:sortY
///// удаление повторных координат, если используется несколько видов одной картинки
set #size 0
set %tmp %result1
set size(%result1)
for #i 1 size(%tmp[1])
set #break 0
for #n 1 #size
set #xrepeat %tmp[2 #i] - %result1[2 #n]
set #yrepeat %tmp[3 #i] - %result1[3 #n]
if abs(#xrepeat) <= #repeatimage and abs(#yrepeat) <= #repeatimage
set #break 1
break
end_if
end_for
if #break = 0
set #size #size + 1
init_arr %result1 (1 1 #size) %tmp [1 #i] %tmp [2 #i] %tmp [3 #i]
end_if
end_for
///////

set #z 0
set #z1 0
set #z2 1
set #z4 0
sort_array %result1 -3
while 1 = 1
set #z 0
set size(%tmp)
for #i #z2 eval(size(%result1 [1]) - 1)
set #j #i + 1
set #x %result1 [3 #i] - %result1 [3 #j]
if abs(#x) < #deltaY
set #z #z + 1
init_arr %tmp (1 1 #z) %result1 [1 #i] %result1 [2 #i] %result1 [3 #i]
else
set #z #z + 1
init_arr %tmp (1 1 #z) %result1 [1 #i] %result1 [2 #i] %result1 [3 #i]
break
end_if
end_for
set #z2 #z2 + #z
if #z2 = size(%result1[])
set #x %result1 [3 #i] - %result1 [3 #j]
if abs(#x) > #deltaY
set #jj #j
sort_array %tmp -2
set #z1 #z1 + 1
init_arr %result (#z1) %tmp [1]
set %coord_tmp [#z1] %tmp [2 1], %tmp [3 1]
set %coord.#current_script [#z1] %tmp [2 #z], %tmp [3 #z]
gosub space
set size(%tmp)
set #z #z + 1
init_arr %tmp (1 1 #z) %result1 [1 #jj] %result1 [2 #jj] %result1 [3 #jj]
set #z1 #z1 + 1
set %result.#current_script [#z1] %tmp [1]
set %coord.#current_script [#z1] %tmp [2 #z], %tmp [3 #z]
gosub end
end_if
set #z #z + 1
init_arr %tmp (1 1 #z) %result1 [1 #j] %result1 [2 #j] %result1 [3 #j]
sort_array %tmp -2
set #z1 #z1 + 1
init_arr %result (#z1) %tmp [1]
set %coord_tmp [#z1] %tmp [2 1], %tmp [3 1]
gosub space
break
else
sort_array %tmp -2
set #z1 #z1 + 1
init_arr %result (#z1) %tmp [1]
set %coord_tmp [#z1] %tmp [2 1], %tmp [3 1]
gosub space
end_if
end_while
return

:space
set #z3 0
set size(%space)
set #z4 #z4 + 1
//посчитать где нужны пробелы
for #i 1 eval(size(%tmp[]) - 1)
set #j #i + 1
set #space %tmp [2 #i] - %tmp [2 #j]
if abs(#space) > #deltaspace
set #z3 #z3 + 1
set %space[#z3] #j
set #size_coord 1
while %coord_tmp[#z1 #size_coord] != ""
set #size_coord #size_coord + 1
end_while
set %coord_tmp [#z1 #size_coord] %tmp [2 #j], %tmp [3 #j]
end_if
end_for
// вставить пробелы
for #i 1 size(%space)
set $str %result [#z4]
set $str insert(" " $str %space[#i])
set #j #i + 1
set %space[#j] %space[#j] + #i
set %result [#z4] $str
end_for
// сохранение массива в основном скрипте
for #i 1 size(%result)
set size(%tmp1)
init_arr %tmp1 (1) %result [#i]
for #j 1 size(%tmp1[1])
set %result.#current_script [#i #j] %tmp1 [1 #j]
set %coord.#current_script [#i #j] %coord_tmp [#i #j]
end_for
end_for
return

:end
end_proc


я же спросил сразу про картинки
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 1.4.2025, 0:06
Сообщение #252


***********

Модератор UOPilot
Сообщений: 9.735
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29617
Пользователь №: 11.279



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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

13 страниц V « < 11 12 13
Ответить в эту темуОткрыть новую тему
1095 чел. читают эту тему (гостей: 1095, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.6.2025, 21:52
Designed by Nickostyle
Loading...