Author Topic: Помогите новичку  (Read 6984 times)

0 Members and 1 Guest are viewing this topic.

johnix

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Помогите новичку
« on: August 11, 2013, 03:34:59 PM »
 Имеется игра на движке adobe flash. Попытки сделать простою операцию, найти картинку на экране функцией if_picture_in не увенчалась успехом. Видимо я не совсем понимаю суть этой строки. В хелпе сказано: производит поиск изображения в прямоугольной области буфера анализа. Естественно перед этим я делаю getscreen. Картинку я расположил в корневой папке программы(не считается ли ошибкой, если картинку разместить по пути "Clickermann/bmp/1/bmp" и указывать в скрипте путь if_picture_in "bmp\1.bmp" ?).
 Затем я попробовал сделать скрипт на рабочем столе, итог тот же, координаты картинки не находит, вот код
Code: [Select]
getscreen

IF_PICTURE_IN (1,1,$_xmax,$_ymax, "bmp\zhachok.bmp")

LOGWRITE("x: ", $_return1," y: ", $_return2)
LOGWRITE("x2: ", $vX," y2: ", $vY)
END_IF

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Помогите новичку
« Reply #1 on: August 11, 2013, 09:34:20 PM »
может znachok.bmp?
Правильно если у тебя сам скрипт сохранен в корне киллермэна.
Попробуй без папок. Прямо где скрипт там и картинка, может причина в другом.
Подробно опиши как делаешь картинки для поиска?
« Last Edit: August 11, 2013, 09:36:17 PM by Vint »


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку
« Reply #2 on: August 12, 2013, 12:07:52 AM »
У вас вечные проблемы с недочитом инструкций. Там же написано что картинку кликер ищет в той же папке где лежит скрипт.

В твоем случае в папке должны быть два файла
Скрипт.cms
zhachok.bmp

Code: (clickermann) [Select]
getscreen
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "zhachok.bmp")
   LOGWRITE("x: ", $_return1," y: ", $_return2)
   HALT
END_IF

johnix

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помогите новичку
« Reply #3 on: August 12, 2013, 05:49:52 PM »
может znachok.bmp?
Правильно если у тебя сам скрипт сохранен в корне киллермэна.
Попробуй без папок. Прямо где скрипт там и картинка, может причина в другом.
Подробно опиши как делаешь картинки для поиска?
В своем примере, хочу найти ярлык моего компьютера на рабочем столе, делаю PrtScn->paint->CTRL+V-> обрезаю нужный мне ярлык с картинки->save "znachok.bmp"

johnix

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помогите новичку
« Reply #4 on: August 12, 2013, 05:52:51 PM »
У вас вечные проблемы с недочитом инструкций. Там же написано что картинку кликер ищет в той же папке где лежит скрипт.

В твоем случае в папке должны быть два файла
Скрипт.cms
zhachok.bmp

Code: (clickermann) [Select]
getscreen
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "zhachok.bmp")
   LOGWRITE("x: ", $_return1," y: ", $_return2)
   HALT
END_IF

Не находит, в лог вообще никаких сообщений не пишет.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Помогите новичку
« Reply #5 on: August 12, 2013, 07:23:02 PM »
С подготовкой картинки нормально.
Так всё таки что ищешь zhachok.bmp или znachok.bmp? :-)
Винда какая? Открой редактор и включи лупу, как через неё видно рабочий стол?


johnix

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помогите новичку
« Reply #6 on: August 12, 2013, 08:45:27 PM »
С подготовкой картинки нормально.
Так всё таки что ищешь zhachok.bmp или znachok.bmp? :-)
Винда какая? Открой редактор и включи лупу, как через неё видно рабочий стол?

И вправду, невнимательность моя меня погубит.
После смены в скрипте на znachok.bmp в лог вышло
Code: [Select]
21:41:43 x: 21 y: 534Это получается верхний левый угол ярлыка он нашел?
Если да, то как допустим сделать, чтобы он нашел и нижний правый угол, чтобы знать все координаты?
И вопрос про винду не совсемпонял, у меня ХР, через лупу видно увеличенно:)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите новичку
« Reply #7 on: August 12, 2013, 09:26:21 PM »
Функция возвращает координаты верхнего левого угла картинки. Тебе не нужно делать картинку искомого объекта полностью! Наоборот чем меньше картинка тем быстрее поиск даже используя картинку 5х5 можно легко найти то что нужно.

Чтобы кликнуть туда куда тебе нужно, используй смещение

Code: (clickermann) [Select]
getscreen
IF_PICTURE_IN (1,1,$_xmax,$_ymax, "znachok.bmp")
   LCLICK($_return1+5, $_return2+5)
   HALT
END_IF

Здесь клик придется на 5 пикселов ниже и правее относительно найденной картинки, и стоп (HALT).

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Помогите новичку
« Reply #8 on: August 13, 2013, 01:50:39 PM »
... И вопрос про винду не совсем понял, у меня ХР, через лупу видно увеличенно:)
Вопрос о винде и лупе уже отпал. То, что видно увеличенно - это хорошо :) бывает ничего не видно, одно чёрное поле. В вопросе имелось ввиду это.
Просто при проблемах с обнаружением изображений у людей, через лупу кликера видно как видит экран сам кликер. Не блокирует ли его что, если оконный режим: к тому или нет элементу привязывается, и касаемо игр: нет ли защиты в этом направлении.


johnix

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помогите новичку
« Reply #9 on: August 14, 2013, 01:16:14 PM »
Начал немного разбираться, при написании скрипта выявил одну вещь в игрушке, вроде создал небольшой 5-5 пикселей картинку по скрину(взять задание) в том месте, где создал скрин, в том месте скрипт работает, а к примеру в другой локации уже нет, связано это по всей видимости с тем, что картинки (взять задание) в других местах уже имеют различия, "защита от ботов", думаю я. Привязка по пикселю, тоже тредно сделать. Возможно ли обойти эту трудность? Читал где-то про colormode что можно "упростить" графику, тем самым найти тот самый кусочек картинки, как полагаеться