Author Topic: Поиск строки из скриншота  (Read 9037 times)

0 Members and 5 Guests are viewing this topic.

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #15 on: March 21, 2016, 08:36:06 PM »
за один проход получаем массив  из 2 элементов, координат х, у, твоеи картинки.  и все.   перед   scanpxl очищаи массив через undefine/ никаких случаиных чисел у тебя там быть не может
некритично в данном случае. Прост интересовало наличие картинки в "окне". Спс за ответ, тем не менее

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск строки из скриншота
« Reply #16 on: March 22, 2016, 08:27:27 AM »
некритично в данном случае. Прост интересовало наличие картинки в "окне". Спс за ответ, тем не менее
Если интересовало наличие, зачем тогда SCANPICTURE?
IF_PICTURE_IN и всё.


Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #17 on: March 24, 2016, 10:35:59 PM »
Такое чувство, что сетевой разум против меня и нео - смерть его:( Или же Kirill прав и надо периодически менять картинку. Эххх, задумка проработала 3 дня. Выкладывать тупой клик по кнопкам считаю недостойным сего форума. Всем сорь за отнятое время и спс за помощь

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #18 on: March 25, 2016, 01:54:33 PM »
Такое чувство, что ты не воспринимаешь или не внедряешь  советы.
Судя по твоим высказываниям, процент совпадения картинок, ты не используешь и с очисткой массива не разобрался. Ещё одна из самух распостранённых причин "поломки" работающего скрипта, изменение время отклика сайта, обычно это случается в конце месяца, когда лемит гигабайт превышен и провайдер снижает скорость или игре или игроку и сразу все настроенные задержки котику под хвостик, что загружалось полсекунды, крузипся по 30 и весь скрипт за это время пролетает мимо. Могут быть и другие причины ваших неполадок.  :'(
ни в коем случае не осуждаю, не писАл ни куска "кода" сюда.
Code: (clickermann) [Select]
sub (wcl, $x,$y)
   wait(rnd(2.2,3)
   move($x,$y)
   waitms(Rnd(250,340))
   lclick($x,$y)
end_sub

wait(1)
wcl(106,15)  //открываем первую вкладку
wcl(173,237)
wcl(231,182)  //в харчевню
wcl(416,204)  //на поручения
getscreen
colormode(8)
if_picture_in(268,690,424,716,"AP.bmp",-1,95)
   if_picture_in(267,651,456,690,"QP.bmp",-1,95)
      wcl(156,246)  // город
      wcl(239,288)  // работа
      wcl(822,637)  // встаём на час
      wait(3595)
      wcl(960,176)  // идём за голдой
      wcl(720,661)  // собираем
      wait(RND(3,5))
   end_if
else
//в ходе игры очки поручений расходуются быстрей, чем очки действия, так что одного двойного условия достаточно
   wcl(173,237)
   wcl231,182)   //в харчевню
   wcl(416,204)  //на поручения
   wcl(922,600)  //начинаем
   wait(5)
   wcl(837,652)  // клик на "показать результат"
   wcl(643,515)  //"в харчевню"
   wcl(922,600)  //берём награду
   wait(595)     //ждём окончания отдыха   
   wait(900)
end_if
по поводу wait и waitms в подпрограмме: wait - для ожидания прогрузки картинки(слихвой хватает на моём кабельном канале, на других, не пробовал), waitms - ожидание между перемещением курсора и кликом по элементу окна.
процент делал от 70 до 95. Результат: очки действия(AP.bmp) ищутся, очки поручений(QP.bmp) - нет.
Согласен, повторюсь, на основании предыдущих сообщений можно было предположить, что я мало понимаю и никого не слушаю, просто пытаюсь пробить головой стену.
« Last Edit: March 25, 2016, 02:01:27 PM by Dampil »

Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #19 on: March 25, 2016, 01:58:26 PM »
Согласен, не учтён ещё один игровой момент - пвп. Но там достаточно странная система поиска для невипов, так что не стал мудрить лишний раз. насчёт обнуления массивов: вполне логично поблагодарил за напоминание о необходимости явной инициализации переменных. В итоге, на тот момент старый(без scanpicture) код вполне себе заработал, так что необходимость в работе с массивами как таковыми отпала напрочь
« Last Edit: March 25, 2016, 02:35:02 PM by Dampil »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Поиск строки из скриншота
« Reply #20 on: March 25, 2016, 03:15:49 PM »
В 28 строке не хватает скобок
wcl(231,182)   //в харчевню

Так же не хватает закрывающей скобки во 2 строке
Code: (clickermann) [Select]
wait(rnd(2.2,3)
К тому же функция RND целочисленная
Quote
RND (a, b) - числовая функция; возвращает целое число, выбранное случайно из заданного интервала
В итоге у тебя первый параметр "2.2" воспринимается как строка или логическая 1 и задержка фактически RND(1,3), т.е. 1, 2 или 3 сек.
Вот демонстрация:
Code: (clickermann) [Select]
FOR($i=0, $i < 10)
   print(rnd(8.2,10))
END_CYC
HALT

Указывай в милисекундах
Code: (clickermann) [Select]
WAITMS(rnd(2200, 3000))
« Last Edit: March 25, 2016, 03:22:17 PM by Vint »


Dampil

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
    • @pump_upp - best crypto pumps on telegram !
Re: Поиск строки из скриншота
« Reply #21 on: March 25, 2016, 04:20:05 PM »
спс за совет, попробую.
**********, да в какОм состоянии я логику продумывал?! Всем ещё раз спс, ошибка была не только в командах
« Last Edit: March 25, 2016, 04:43:56 PM by Dampil »

Kedrick

  • Освоившийся
  • **
  • Posts: 70
    • View Profile
Re: Поиск строки из скриншота
« Reply #22 on: April 04, 2016, 03:01:19 PM »
Если цифру в поле игры можно выделить мышкой или даблкликом, то я использую такой изящный способ распознавания:

Code: (clickermann) [Select]
DBLCLICK(738,793)    // выделяем цифру двойным кликом
WAITMS (50)
KEYDOWN (#CTRL)  // копируем в буфер
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
$summ = INT(FROMCLIP())  // назначаем переменной значение из буфера

А дальше уже работаем с назначенной переменной как душе угодно. И никакого распознавания тысяч картинок, которые хитровыделанный админ может менять в день по 3 раза, то керн шрифта, то сам шрифт, то цвет шрифта, то цвет фона, то еще что-то. Меня в определенный момент задрало перефоткивать картинки раз в неделю и сделал вот так. Таким-же способом можно определять и появление нужного текста в нужном месте. Главное чтобы оно было не кликабельно и было выделяемым. Во флешах не проканает.
« Last Edit: April 04, 2016, 03:02:55 PM by Kedrick »

Kedrick

  • Освоившийся
  • **
  • Posts: 70
    • View Profile
Re: Поиск строки из скриншота
« Reply #23 on: April 04, 2016, 03:20:18 PM »
по твоему копирование экрана в буфер гетскрином с последующим поиском там нужной картинки более изящно чем копирование в буфер нужного куска текста?
Ну-ка расскажи нам маэстро, что придумал ты.