Author Topic: запоминать куда уже нажимал  (Read 4420 times)

0 Members and 6 Guests are viewing this topic.

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
запоминать куда уже нажимал
« on: May 26, 2017, 05:44:14 PM »
 суть в том что есть одна картинка и в одном окне она 10 раз попадает как сделать так чтоб кликер запоминал куда уже нажимал а потом как все 10 раз сделал добавляеться клик по коринате и то что запомнил удаляеться и так дальше  надеюсь поймете чего хочу :D

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: запоминать куда уже нажимал
« Reply #1 on: May 26, 2017, 08:50:57 PM »
С трудом. Но возможно тебе нужна функция SCANPICTURE которая найдет все картинки на экране.

Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LCLICK($X, $Y)   // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #2 on: May 26, 2017, 08:56:16 PM »
а можно кометраи поставить к каждой строке ? :o
а то там для меня знакомого ничего нет по максимуму расписать что где мне просто нужно по страницы ходить в гости вот нз как сделать чтоб он не просто тыкал по первой в гости картинки и всегда по ней а первый раз тыкнул по ней запомнил следующий уже раз когда ищет в гости то то что уже нажимал игнорит и потом если 10 раз уже выполнил то новая страница а там кнопки в тех же кординатах тоесть нужно сбросить и 10 наращивать и о5 клик новая страница я думал если дадите пример сам росберусь как но не тут то бьло ничего не понял что это за команды  :'(

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: запоминать куда уже нажимал
« Reply #3 on: May 26, 2017, 09:25:37 PM »
В массиве $ARR_SCAN содержатся координаты всех найденных картинок.
например
$ARR_SCAN[0] // 1ая координата X
$ARR_SCAN[1] // Y

$ARR_SCAN[2] // 2ая координата X
$ARR_SCAN[3] // Y

Code: (clickermann) [Select]
$ARR_NUM = 0 // это счетчик индексов
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN)) // цикл работает если счетчик меньше размера массива
   $X = $ARR_SCAN [$ARR_NUM] // присваиваем координату X в переменную
   INC($ARR_NUM,1) // наращиваем индекс
   $Y = $ARR_SCAN [$ARR_NUM] // тоже для Y
   INC($ARR_NUM,1) // наращиваем индекс
   LCLICK($X, $Y)   // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN) // удаляем массив


Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #4 on: May 26, 2017, 10:08:17 PM »
я все равно какой то тупой что  ли  я наверное уже всем надоел но извините но до меня не доходит :'(
подробно опишу что хочу мож кто слепит очень на это надеюсь :)
Code: (clickermann) [Select]
SUB(рейтинг)
   GETSCREEN (634,73, 715,173)
   IF_PICTURE_IN (634,73, 715,173, "рейтинг.bmp", -1, 70)
      LOGWRITE ("не тот лвл или счетчик")
      m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
      LCLICK($_xmouse,$_ymouse)
     
      $hranitili = $_time_t + 6
      WHILE($hranitili > $_time_t)
         GETSCREEN  (396,83, 559,165)
         IF_PICTURE_IN (396,83, 559,165, "хранители.bmp", -1, 80)
            $hranitili = 0
            m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
            LCLICK($_xmouse,$_ymouse)
            WAITMS(rnd(500,999))
            $gosti = $_time_t + 10
            WHILE($gosti > $_time_t)
               GETSCREEN  (396,83, 559,165)
LCLICK(856,544)  // 4141085
               IF_PICTURE_IN (826,132, 971,534, "в гости.bmp", -1, 80)   // вот этот клик запоминать нужно а когда уже 10 сделано то добавить перед тем как искать LCLICK(855,542) и сбросить первых 10 потом когда дошло до 10  с LCLICK(855,542) перед тем как искать в гости то добавлять уже 2 раза LCLICK(855,542)  а когда уже и 2 раза дошло то 3 раза клликать а потом искать и так до 10-ти
                  $gosti = 0
                  m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
                  LCLICK($_xmouse,$_ymouse)
                  WAITMS(rnd(1700,2399))
                 
               ELSE
                  WAITMS(5)
               END_IF
            END_CYC
         END_IF
      ELSE
         WAITMS(5)
      END_IF
   END_CYC
END_IF


END_SUB
« Last Edit: May 26, 2017, 10:27:16 PM by Зануда »

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #5 on: May 27, 2017, 08:03:20 AM »
что нету никого знающего ? :'( :(

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #6 on: May 27, 2017, 01:30:56 PM »
что нету никого знающего ? :'( :(
Одни Незнайки остались, тупеют форумчани прям на глазах, думать сими абленились.
Еслиб парочка Супермодераторов все ответы на себе не вытягивала, то зачах бы энтот форум, как берёзовый лист на холодном осеннем ветру. :P

межт ты в курсе как это сделать ??? :(

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #7 on: May 27, 2017, 05:20:01 PM »
надеюсь добродушные модераторы отпишутся  :) а то все сделал а вот этот момент не могу понять хоть убей  :-\ :'( а без него какой смысл мне сидеть и в руччную делать клик нужно иначе не пашет  :-X

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: запоминать куда уже нажимал
« Reply #8 on: May 28, 2017, 08:26:50 AM »
Может это не весь скрипт но там ошибки в окончаниях.

Верно
Code: (clickermann) [Select]
SUB(рейтинг)
   GETSCREEN (634,73, 715,173)
   IF_PICTURE_IN (634,73, 715,173, "рейтинг.bmp", -1, 70)
      LOGWRITE ("не тот лвл или счетчик")
      m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
      LCLICK($_xmouse,$_ymouse)
     
      $hranitili = $_time_t + 6
      WHILE($hranitili > $_time_t)
         GETSCREEN  (396,83, 559,165)
         IF_PICTURE_IN (396,83, 559,165, "хранители.bmp", -1, 80)
            $hranitili = 0
            m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
            LCLICK($_xmouse,$_ymouse)
            WAITMS(rnd(500,999))
            $gosti = $_time_t + 10
            WHILE($gosti > $_time_t)
               GETSCREEN  (396,83, 559,165)     
               IF_PICTURE_IN (826,132, 971,534, "в гости.bmp", -1, 80)
                  $gosti = 0
                  m_move($_return1+RND(-10,10), $_return2+RND(-10,10))
                  LCLICK($_xmouse,$_ymouse)
                  WAITMS(rnd(1700,2399))                 
               ELSE
                  WAITMS(50)
               END_IF
            END_CYC
         ELSE
            WAITMS(50)             
         END_IF
      END_CYC
   END_IF     
END_SUB

Насчет вопроса я ничерта не понял что ты там написал. Не видя как это работает, что за чем написать ничего нельзя.

Вот например ищем "хранители.bmp" а потом "в гости.bmp". Картинка "в гости.bmp" всегда присутствует на экране или появляется после "хранители.bmp"?

Почему 10?

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #9 on: May 28, 2017, 11:10:22 AM »
появляется после хранители 10 это число хранителей на странице тоитьс на одной странице 10 раз можно перейти в разные  и дальше пролистнуть и на следующий о5 10 раз переходить всего страниц 10  :o
суть в том чтоб при вызове подпрограмы он кликнул 1 раз на кнопку в гости и запомнил куда кликнул и какой раз подпрограму вызвали что когда 10 раз будет пролистывать страницу сбивать счетчик 10 перед тем как искать в гости  ну или я слишком глупо все это делаю и можно по проще главное чтоб когда делается вызов рейтинг() он шел в рейтинг хранители и там кнопку в гости искал если уже 10 раз было то пере тем как искать нада на следующую стр нажать и тогда уже искать

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #10 on: May 30, 2017, 09:56:59 AM »
заглянте плиз

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: запоминать куда уже нажимал
« Reply #11 on: May 30, 2017, 10:33:14 AM »
Code: (clickermann) [Select]
               GETSCREEN  (396,83, 559,165)
               ...
               IF_PICTURE_IN (826,132, 971,534, "в гости.bmp", -1, 80)

А что здесь с координатами области?


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: запоминать куда уже нажимал
« Reply #12 on: May 30, 2017, 10:40:46 AM »
Давай чтоб все поняли.
  • "в гости" сразу не видно, Да?.
  • После нажатия "хранители" появляется окно где есть 10 шт. "в гости".
  • После клика по "в гости" мы окно закрываем и выходим из подпрограммы для выполнения других действий?
  • При следующем заходе, "в гости" уже 9, так? Или их по прежнему 10 но 1 неактивный?
    Или их 10, выглядят все одинаково, но мы должны сами "помнить" какой уже нажимали?
Остальные вопросы появятся после ответов на эти.



Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: запоминать куда уже нажимал
« Reply #13 on: May 30, 2017, 10:55:35 AM »
"в гости" сразу не видно, Да?. да
После нажатия "хранители" появляется окно где есть 10 шт. "в гости".да
После клика по "в гости" мы окно закрываем и выходим из подпрограммы для выполнения других действий?после клика в гост оно само закроется
да именно так последний вот так
Или их 10, выглядят все одинаково, но мы должны сами "помнить" какой уже нажимали? да и если мы уже десять раз кликнули то пролистать страницу и сбить счетчик потому что на второй страницы кнопка в гости так же в тех же кординатах

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: запоминать куда уже нажимал
« Reply #14 on: May 30, 2017, 11:11:18 AM »
То есть их всегда 10 и помнить какие нажимали мы должны сами?

Тогда встаёт вопрос с поиском.
Code: (clickermann) [Select]
IF_PICTURE_IN (826,132, 971,534, "в гости.bmp", -1, 80)
Вот в этом поиске задана вся область? Со всеми 10?
Какие между ними расстояния (между одинаковыми точками)
Какой размер заготовки "в гости.bmp" чтоб знать на сколько может сместиться при допуске 80%

1. Есть два варианта. Если 10 шт. "в гости.bmp" расположены в виде таблицы, достаточно помнить последнюю найденную и искать в следующем секторе.
    Переменная-счётчик найденных - она же переменная указывающая в каком секторе искать.
2. Создать массив с координатами уже кликнутых.
    Искать сразу все через SCANPICTURE.
    Перебираем массив найденных, сравнивая с уже "зашкваренными" координатами (с учётом допуска!!!)
    Если есть непрокликанные кликаем и добавляем эти координаты в массив.
    Если все координаты отфильтровались, то некликнутых "в гости.bmp" нет, значит переходим на следующую страницу и стираем массив прокликанных.
    Если нужно сразу искать на новой странице - ищем.
    Для простоты можно считать кол-во кликнутых в отдельной переменной, чтоб лишний цикл не городить и сразу проверять её.

Кидай скрин страницы с этими "в гости"