|
Поиск картинки в игре на MEmu |
|
|
PostByMik |
25.10.2020, 17:09
|
 
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40

|
Пытаюсь понять логику работы команды findimage, пока попытки успехом не увенчались. Знающие люди, подскажите, пожалуйста, как работает, какова логика работы данной команды: 1. Можно ли сделать скрин области в игре на эмуляторе MEmu (естественно в формате .bmp 24 бита) и далее её искать в указанной области или это так не работает? 2. если первый пункт не верный, то как надо? А теперь сама задача, которую я пытаюсь решить. Есть игра, в игре есть карта, на карте с определенным промежутком времени появляется караван, на который надо кликнуть и провести еще пару манипуляций мышью. Пытаюсь пока написать код, что бы он находил караван и кликал на него (после нажатия на него откроется меню ну и дальше уже обычные клики и ожидания, этому, вроде, я научился.) Код --lua local startX, startY, endX, endY = 0, 0, 830, 465 -- координаты поиска local path = [["C:\Caravan.bmp"]] -- путь к картинке, bmp 24 бита local arr, a = findimage (startX, startY, endX, endY, {path}, 2, 70, 1, 25) -- поиск картинки hint (a) -- результат поиска, подсказка в правом нижнем углу if arr then -- если найдена log ("Изображение найдено в координатах X= " .. arr[1][1] .. " Y= " .. arr[1][2]) kleft (arr[1][1], arr[1][2]) -- кликнули end
 Это скрин карты в игре с караваном на ней, пытался на нем потренироваться, не находит (
Caravan.bmp ( 18,36 килобайт )
Кол-во скачиваний: 192 Это скрин самого каравана, который надо найти. Что я делаю не так, подскажите, пожалуйста.
|
|
|
|
|
  |
Ответов
PostByMik |
3.11.2020, 14:49
|
 
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40

|
Простите, но я не очень понял как именно это использовать. Вот повторяющаяся часть кода, к ней нужно обращаться, когда выполнится заданное условие, например через if Код repeat --ДЛЯ PVP! if color(56, 401) == 51541 -- Если зеленый цвет, то кд прошел (НИЖНИЙ ЛЕВЫЙ) ДЛЯ PVP! then -- если в координатах цвет 51541 move_smooth (48, 403, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика ДЛЯ PVP! wait (250) --выжидаем паузу между действиями kleft (48, 403, 5, 5, 5, 5) --нажать левую кнопку в координатах ДЛЯ PVP! wait (650) end if color(109, 318) == 51541 -- Если зеленый цвет, то кд прошел (СНИЗУ ВТОРОЙ РЯД, ЛЕВЫЙ) ДЛЯ PVP! then -- если в координатах цвет 51541 move_smooth (103, 323, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика ДЛЯ PVP! wait (650) --выжидаем паузу между действиями kleft (103, 323, 5, 5, 5, 5) --нажать левую кнопку в координатах ДЛЯ PVP! wait (650) end if color(161, 319) == 51541 -- Если зеленый цвет, то кд прошел (СНИЗУ ВТОРОЙ РЯД, ПРАВЫЙ) ДЛЯ PVP! then -- если в координатах цвет 51541 move_smooth (151, 321, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика ДЛЯ PVP! wait (650) --выжидаем паузу между действиями kleft (151, 321, 5, 5, 5, 5) --нажать левую кнопку в координатах ДЛЯ PVP! wait (650) end if color(161, 234) == 51541 -- Если зеленый цвет, то кд прошел (СНИЗУ ТРЕТИЙ РЯД, ПРАВЫЙ) ДЛЯ PVP! then -- если в координатах цвет 51541 move_smooth (153, 234, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика ДЛЯ PVP! wait (650) --выжидаем паузу между действиями kleft (153, 234, 5, 5, 5, 5) --нажать левую кнопку в координатах ДЛЯ PVP! wait (650) end if color(51, 139) == 51541 -- Если зеленый цвет, то кд прошел (САМЫЙ ВЕРХНИЙ) ДЛЯ PVP! then -- если в координатах цвет 51541 move_smooth (43, 140, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика ДЛЯ PVP! wait (650) --выжидаем паузу между действиями kleft (43, 140, 5, 5, 5, 5) --нажать левую кнопку в координатах ДЛЯ PVP! wait (650) end until color(527, 421) == 51541 and color(364, 431) == 51541 -- Если зеленый цвет, то бой завершился
Подскажите, пожалуйста, на вашем примере, как это сделать. Грубо говоря, я не понимаю куда именно вставить часть кода, к которой надо обращаться время от времени. Цитата Например какие? Например Цитата function MyFunc
|
|
|
|
Сообщений в этой теме
PostByMik Поиск картинки в игре на MEmu 25.10.2020, 17:09 cirus
Для чего? getimage или printscreen.
Часто изображ... 25.10.2020, 17:37 PostByMik Я во всем этом новичек, пытаюсь понять сам, но пре... 25.10.2020, 19:28 PostByMik Дайте, пожалуйста, адекватный пример. Со всеми тре... 25.10.2020, 20:11 cirus getimage неправильно работает при работе с экраном... 25.10.2020, 20:17 PostByMik
Так нашел и сохранил сразу. Спасибо огромное... 25.10.2020, 20:32 cirus RE: Поиск картинки в игре на MEmu 25.10.2020, 20:41 PostByMik
Искренне благодарен, с этим файлом работает, но ... 25.10.2020, 20:54 cirus
Открыть искомую картинку в Paint, выбрать каранда... 25.10.2020, 21:08 PostByMik Спасибо за ответ!
Я понимаю, что Вам с высоты ... 25.10.2020, 21:14 Fors1k
Осталось понять про пиксель. Зачем его красить? И... 26.10.2020, 0:05 cirus
--lua
local ffi = require("ffi"... 25.10.2020, 21:51 PostByMik Спасибо огромное за пояснения!
Код буду перев... 25.10.2020, 21:52 PostByMik Подскажите, пожалуйста, как решить проблему.
l... 26.10.2020, 19:28 DarkMaster Я бы рекомендовал:
1) вырезать правый нижний угол ... 26.10.2020, 19:44 cirus Можно удалить из массива лишние картинки.
--lua
fu... 27.10.2020, 4:00 PostByMik
Ох! Спасибо!
А можно пояснить что тут к ч... 27.10.2020, 8:20 cirus Кстати, искать картинки можно и такого вида:
Левы... 27.10.2020, 11:20 dimas01 На эту же тему вопрос. Надеюсь автор темы не проти... 27.10.2020, 13:23 cirus
Создавайте отдельную.
Нужен пилот версии 2.41, а... 27.10.2020, 13:29 PostByMik Всем спасибо за помощь!
В итоге, для меня лег... 27.10.2020, 17:47 PostByMik Может кто знает как заставить данный код нажимать ... 2.11.2020, 21:30 DarkMaster kleft (arr[1][1] + 10, arr... 2.11.2020, 21:54 cirus
kleft (arr[1][1] + math.floor... 3.11.2020, 1:37 DarkMaster тогда уж:
kleft (math.floor((arr[1... 3.11.2020, 2:21 PostByMik Ох! Спасибо огромное!
Еще хотел пару вопр... 3.11.2020, 9:09 cirus
Например какие?
Не можно, а нужно.
--lua
log ... 3.11.2020, 11:02 DarkMaster Есть у меня комбайн под подобные задачи. Работа ра... 3.11.2020, 17:18 Cockney
Есть у меня комбайн под подобные задачи. Работа р... 4.11.2020, 13:44 PostByMik Апд.
Как я понял, при помощи function можно созда... 3.11.2020, 20:07 PostByMik Апд.
Проверил, работает! ) 3.11.2020, 20:30 DarkMaster
Завтра утром ты не вспомнишь, что это за набор ма... 3.11.2020, 20:52 PostByMik
Да понятное дело, что твой код крутой, но я же до... 3.11.2020, 21:21 PostByMik
вот где почитать про все эти функции, ну кроме кл... 3.11.2020, 21:31 DarkMaster
это не функции. Это имена параметров функции. Ну ... 3.11.2020, 21:50 PostByMik
Да, написал выше, что не углядел сразу)
Спасибо... 3.11.2020, 21:59 PostByMik
Так и не смог понять как у Вас реализован функцио... 4.11.2020, 11:21 DarkMaster
Были еще до этого комбайна - работает. Тут правда... 4.11.2020, 17:52 DarkMaster
В конкретно этом случае - никак. Это просто заглу... 4.11.2020, 20:42 cirus
А что мешает проверить изменения в области №2? 4.11.2020, 20:55 DarkMaster
Необходимость произвести 2 клика прежде чем будет... 4.11.2020, 21:32 PostByMik
Действительно, есть)
Если отойти от вашего комба... 5.11.2020, 11:21 DarkMaster что-то вроде этого. внутри тела цикла клики соотве... 5.11.2020, 18:33 PostByMik
Пытаюсь понять всё описанное в Вашем комбайне.
В... 8.11.2020, 15:45 DarkMaster
В нормальном виде это каждый раз новая функция по... 8.11.2020, 20:02 PostByMik Ни где не смог найти информацию, казалось бы, кото... 9.11.2020, 15:38 Fors1k
что означают фигурные скобки после знака "=... 9.11.2020, 16:45 PostByMik Ох! Спасибо Огромное!
Теперь стало понятно... 9.11.2020, 17:07 PostByMik Всё в туже тему, про работу по таймеру.
Написал к... 9.11.2020, 18:27 DarkMaster
Так делать не стоит - малейший лаг и проскочит.
... 9.11.2020, 20:19 DarkMaster
Да простят меня за дотошность, но в рамках луа эт... 9.11.2020, 20:35 Cockney
Доступ к элементу в связном списке в среднем зани... 9.11.2020, 21:34 PostByMik А если у меня вместо
портянка на 100+ строк, то м... 9.11.2020, 22:20 PostByMik Суть в в следующем.
У меня есть (назовем их частям... 9.11.2020, 22:31 DarkMaster
Тыщ на 100 элементов создай список и сравни с мас... 9.11.2020, 22:48 Cockney
Тыщ на 100 элементов создай список и сравни с мас... 9.11.2020, 23:10 DarkMaster
Опечатался. O(1) конечно же, а не O(N).
Имхо это... 9.11.2020, 23:42 Cockney
Смотря, что делать. Может стать и существенным н... 10.11.2020, 14:48 PostByMik
Если не учитывать, что я написал, что нужно после... 10.11.2020, 13:13 PostByMik
Или раз в неделю ручками менять данные. Но хотело... 10.11.2020, 14:16 cirus
Os.date 10.11.2020, 14:27 DarkMaster
Вставка на си. Едва ли это так плохо. В том же си... 10.11.2020, 15:43 Cockney
Вставка на си. Едва ли это так плохо.
Точно ? ... 10.11.2020, 17:11 DarkMaster
Беспонятия =) Сообщил для информации.
Тут есть и... 10.11.2020, 17:16 Cockney
Тут есть и оборотная сторона. Пишем не на луа - д... 10.11.2020, 17:52
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|