Author Topic: Однократный "проход" картинок.  (Read 4407 times)

0 Members and 1 Guest are viewing this topic.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Однократный "проход" картинок.
« Reply #15 on: November 19, 2020, 03:31:45 PM »
Quote
//картинка3 появилась-нажалась однократно-не пропала-ждем картинка4
Давай так назовём: ждём картинку - это конкретно ждём появления именно этой картинки. Ничего в это время другое не делаем и не ищем! И дальше продолжаем только после того как нашлась.
Ждать можно и появления одной из N картинок
Или ждать пока не появятся все из N картинок.

Есть просто ищем картинку. Поиск происходит здесь и сейчас в момент выполнения этого куска кода. В не зависимости нашли или нет, код после этого продолжается дальше.

Вот твоё описание
Quote
//картинка1 появилась-нажимается пока не пропадет-пропала-ждем картинка2
//картинка2 появилась-нажимается пока не пропадет-пропала- ждем картинка3
//картинка3 появилась-нажалась однократно-не пропала-ждем картинка4
//картинка4 появилась-нажалась однократно-не пропала-ждем картинка5
//картинка5 появилась-нажимается пока не пропадет-пропала-ждем картинка1

Здесь есть непонятки. "картинка1 появилась" мы её ждём или просто ищем? Так же и со всеми остальными.

Как я понял
// ждём картинку 1. Как появилась - ждём пока не пропадёт нажимая каждый раз. (Пропала - идём дальше.)
// ждём картинку 2. Как появилась - ждём пока не пропадёт нажимая каждый раз. (Пропала - идём дальше.)
// ждём картинку 3. Как появилась - нажали (идём дальше)
// ждём картинку 4. Как появилась - нажали (идём дальше)
// ждём картинку 5. Как появилась - ждём пока не пропадёт нажимая каждый раз. (Пропала - идём дальше.)

Это правильно?
В начале ты писал, что картинки 1 и 2 независимы. Если независимы мы не можем ждать одну иначе она заблокирует поиск второй.
Или ждём или ждём одну из двух или ищем мгновенно.
« Last Edit: November 19, 2020, 03:36:02 PM by Vint »


lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Однократный "проход" картинок.
« Reply #16 on: November 19, 2020, 04:08:50 PM »
Я конечно дико извиняюсь! Можно я в видео покажу в чем проблема))А то своими туманными объяснениями я просто трачу ваше время))
Вот сам код
Code: [Select]
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (850,560,880,590, "палемун.bmp", -1, 100) //открыть браузер
WAIT(1)
DBLCLICK($_return1 + 1, $_return2 + 1)
WAITMS(500)
END_IF
IF_PICTURE_IN (960,420,990,450, "выборпрофиля.bmp", -1, 100)  //выбор профиля
WAITMS(300)
KEYPRESS(#DOWN)
WAITMS(500)
KEYPRESS(#ENTER)
END_IF
IF($fuck1 < 1)
IF_PICTURE_IN (250,90,280,120, "новаявкладка.bmp", -1, 100) //закрыть текущую вкладку  и создать новую
WAITMS(150)
LCLICK($_return1 + 1, $_return2 + 1)
WAITMS(250)
LCLICK(237,99)
WAITMS(50)
INC($fuck1,1)
END_IF
END_IF
IF_PICTURE_IN (690,270,720,300, "привязкамыла.bmp", -1, 100)  //убрать окно с почтой(если выскочит)
LCLICK(1844,249)
END_IF   
IF_PICTURE_IN (20,90,110,120, "новаявкладка2.bmp", -1, 100)  //ввод адреса в новую вкладку
WAITMS(500)
LCLICK(811,43)
TOCLIP("https://vk.com/id569503422")  //ввод страницы1 вк
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
WAITMS (50)
KEYUP (#CTRL)
KEYPRESS(#ENTER)
END_IF
IF_PICTURE_IN (680,440,720,480, "подписаться.bmp", -1, 100) //добавить в друзья
WAITMS (1500)
LCLICK($_return1 + 1, $_return2 + 1)
WAITMS (1500)
LCLICK(468,42)
TOCLIP("https://vk.com/id620194329") ////ввод страницы2 вк
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
WAITMS (50)
KEYUP (#CTRL)
KEYPRESS(#ENTER)
END_IF
IF_PICTURE_IN (670,440,720,480, "добавитьдрузья.bmp", -1, 100)//добавить в друзья
WAITMS (1500)
LCLICK($_return1 + 1, $_return2 + 1)
WAITMS (1500)
LCLICK(1893,6)
END_IF
Я прекрасно понимаю что данный метод просто ужасен своей примитивностью, но мне хотелось бы разобрать решение именно на нем. ЧТобы, в случае необходимости, можно было идти в своих познаниях дальше))и
« Last Edit: November 19, 2020, 04:13:01 PM by lahesis333 »

lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Однократный "проход" картинок.
« Reply #17 on: November 19, 2020, 04:16:00 PM »
Вот видео работы кода.https://yadi.sk/i/WF6HWoZuPDUJEw
То есть проблема возникает при повторном запуске браузера когда не выполняется условие закрытия вкладки.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Однократный "проход" картинок.
« Reply #18 on: November 19, 2020, 05:29:13 PM »
Так ты сам завернул закрытие вкладки в
Code: (clickermann) [Select]
IF($fuck1 < 1)
    ...
    INC($fuck1,1)
END_IF
что делает её выполнение 1 раз при старте скрипта.

Я понимаю почему ты это сделал. Потому, что закрывало не вовремя.
А всё это потому, что ты не контролируешь скрипт. Ты не знаешь в любой момент на какой строке сейчас идёт выполнение.
Ты так построил скрипт. У тебя он гоняет по кругу как бешенный конь. На видео до второй загрузки скрипт прошёл по кругу минимум 5 раз. Скорее всего не 5, а 50 или больше.
Все поиски у тебя мгновенные. Ты ничего не ждёшь. Не ждёшь реакции на твои действия. Нет задержек. Нет гетскринов, он вообще один в начале!

Каждый проход ищутся все эти 7 картинок и обрабатывается одна из семи ситуаций какая подвернулась под руку. Всё, на этом круге ничего уже не будет, только на новой итерации.

Нужно всё поменять.
IF($fuck1 < 1) убираешь вместе с окончанием.
Убираешь все задержки идущие после строк с IF_PICTURE_IN
1,2, и 3 поиск делаешь по шаблону Графика ==>> Ожидание картинки
После открытия новой вкладки и закрытия старой ждёшь примерно 1 сек.
4 поиск делаешь по шаблону Графика ==>> Ожидание картинки с таймером. Таймер ставишь на время в течении которого может выскочить окно с почтой.
5 поиск - сам поиск убираешь и оставляешь только действия
Делаешь поиск 7  "добавитьдрузья" и если не нашёл поиск 6 подписаться
Делаешь паузу чтобы все запросы ушли нормально.
Закрываешь браузер.

Это если на примере как ты хотел. А по нормальному выкидываешь первые 3 поиска +ввод адреса из пятого и запускаешь браузер с параметрами адреса и нужной учётки. В конце закрываешь браузер горячими клавишами.


lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Однократный "проход" картинок.
« Reply #19 on: November 19, 2020, 07:16:02 PM »
Вот это ответ!! Спасибо большое за разъяснение! Сделал как ты сказал. Вот что получилось по итогу
Code: [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
  COLORMODE(6)
   IF_PICTURE_IN (850,560,880,590, "палемун.bmp", -1, 100)
LOGWRITE ("Сообщение")
   
      $check = 1
  WAITMS(1000)
     
      DBLCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
$check = 0
WHILE($check = 0)
   GETSCREEN
COLORMODE(6)
   IF_PICTURE_IN (960,420,990,450, "выборпрофиля.bmp", -1, 100)
      $check = 1
      KEYPRESS(#DOWN)
WAITMS(500)
KEYPRESS(#ENTER)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
$check = 0
WHILE($check = 0)
   GETSCREEN
  COLORMODE(6)
   IF_PICTURE_IN (250,90,280,120, "новаявкладка.bmp", -1, 100)
      $check = 1
      WAITMS(1000)
      LCLICK($_return1 + 1, $_return2 + 1)
WAITMS(1000)
LCLICK(237,99)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
  WAITMS(1000)
LCLICK(811,43)
TOCLIP("https://vk.com/id569503422")
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
WAITMS (50)
KEYUP (#CTRL)
KEYPRESS(#ENTER)
$check = 0
WHILE($check = 0)
   GETSCREEN
  COLORMODE(6)
   IF_PICTURE_IN (670,440,720,480, "добавитьдрузья.bmp", -1, 100)
      $check = 1
        WAITMS(1000)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
  WAITMS(1000)
LCLICK(468,42)
TOCLIP("https://vk.com/id620194329")
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
WAITMS (50)
KEYUP (#CTRL)
KEYPRESS(#ENTER)
else
$check = 0
WHILE($check = 0)
   GETSCREEN
COLORMODE(6)
   IF_PICTURE_IN (80,440,720,480, "подписаться.bmp", -1, 100)
      $check = 1
        WAITMS(1000)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
  WAITMS(1000)
LCLICK(468,42)
TOCLIP("https://vk.com/id620194329")
WAITMS(100)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
WAITMS (50)
KEYUP (#CTRL)
KEYPRESS(#ENTER)
Но вот только после тогда как произвелся второй ввод адреса после добавления первой станицы в друзья, он уже не находит картинку добавить повторно. Просто иногда может быть при первом открытии страница "подписаться" а может быть "добавить". И так же со второй страницей.
То есть этот цикл выполняется всего один раз. При повторном появлении не выполняется
Code: [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
  COLORMODE(6)
   IF_PICTURE_IN (670,440,720,480, "добавитьдрузья.bmp", -1, 100)
      $check = 1
        WAITMS(1000)
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
« Last Edit: November 19, 2020, 07:22:41 PM by lahesis333 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Однократный "проход" картинок.
« Reply #20 on: November 20, 2020, 05:23:29 PM »
Ну ты накрутил. Вроде я расписал как делать.
Code: (clickermann) [Select]
//открыть браузер
$check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(850,560,880,590, "палемун.bmp")
        $check = 1
        DBLCLICK($_return1, $_return2)
        WAITMS(200)
    ELSE
        WAITMS(50)
    END_IF
END_CYC

//выбор профиля
$check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(960,420,990,450, "выборпрофиля.bmp")
        $check = 1
        KEYPRESS(#DOWN)
        WAITMS(500)
        KEYPRESS(#ENTER)
        WAITMS(100)
    ELSE
        WAITMS(50)
    END_IF
END_CYC

//закрыть текущую вкладку  и создать новую
$check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(250,90,280,120, "новаявкладка.bmp")
        $check = 1
        LCLICK($_return1 + 1, $_return2 + 1)
        WAITMS(1000)
        LCLICK(237,99)
    ELSE
        WAITMS(50)
    END_IF
END_CYC
WAITMS(1000)

//убрать окно с почтой(если выскочит)
$time = $_ms + 1500
WHILE($time > $_ms)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(690,270,720,300, "привязкамыла.bmp")
        $time = 0
        LCLICK($_return1, $_return2)
        WAITMS(700)
    ELSE
        WAITMS(50)
    END_IF
END_CYC

//ввод адреса в новую вкладку
LCLICK(811,43)
TOCLIP("https://vk.com/id569503422")
WAITMS(100)
KEYDOWN(#CTRL)
WAITMS(50)
KEYPRESS(#V)
WAITMS(50)
KEYUP(#CTRL)
WAITMS(50)
KEYPRESS(#ENTER)
WAITMS(200)


//добавить в друзья
$check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(670,440,720,480, "добавитьдрузья.bmp")
        $check = 1
        LCLICK($_return1, $_return2)
        WAITMS(100)
    ELSE
        // или подписаться
        IF_PICTURE_IN (680,440,720,480, "подписаться.bmp")
            $check = 1
            LCLICK($_return1 + 1, $_return2 + 1)
            WAITMS(1500)
            LCLICK(468,42)
            TOCLIP("https://vk.com/id620194329")
            WAITMS(100)
            KEYDOWN(#CTRL)
            WAITMS(50)
            KEYPRESS(#V)
            WAITMS(50)
            KEYUP(#CTRL)
            WAITMS(50)
            KEYPRESS(#ENTER)
            WAITMS(2000)
        ELSE
            WAITMS(50)
        END_IF
    END_IF
END_CYC


anton1993

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Однократный "проход" картинок.
« Reply #21 on: November 27, 2020, 11:34:44 PM »
Ну ты накрутил. Вроде я расписал как делать.
Наконец-то удалось применить ваш код к моей игре))Вроде бы все работает. Но есть одно НО. Делал все по образу и подобию, но с вашим кодом после нахождения последней картинки в коде, когда появляется новая, то кликер стартует с начала(т.е. постоянно работает по кругу от первой картинки к последней). У меня же почему-то выполняется ТОЛЬКО один проход. После выполнения последней картинки когда появляется первая, то ничего не происходит((
Вот само творение
Code: [Select]
$check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(490,200,530,240, "входвк.bmp")
        $check = 1
         WAITMS(200)
        LCLICK(539,49)
        WAITMS(200)
        TOCLIP("https://vk.com/bestmoba?ad_id=group_posting_-.pt-gift.gt-portal_petxp_egg.cq-3_5000_10.-#gift_id=Rn9esfinGL")
            WAITMS(100)
            KEYDOWN(#CTRL)
            WAITMS(50)
            KEYPRESS(#V)
            WAITMS(50)
            KEYUP(#CTRL)
            WAITMS(50)
            KEYPRESS(#ENTER)
            WAITMS(100)
            LCLICK(743,43)
            KEYPRESS(#ENTER)
         WAITMS(50) 
 
 LOGWRITE ("6")
    ELSE
        WAITMS(50)
    END_IF
END_CYC

$check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(470,180,500,210, "вводлогина.bmp")
        $check = 1
WAITMS(100)
LCLICK(530,226)
        WAITMS(1000)
              WAITMS(1000) 
              INC($i,1)
TOCLIP(TFREAD("логины.txt", $i)) //копируем строку в буфер
WAITMS(500)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
KEYUP (#CTRL)
WAITMS(500)
LCLICK(548,286)               
   INC($ii,1)
TOCLIP(TFREAD("пароли.txt", $ii)) //копируем строку в буфер
WAITMS(500)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
KEYUP (#CTRL)   
        WAITMS(100)
 LCLICK(549,336) 
      WAITMS(5000)
 LCLICK(83,49)    
    END_IF   
END_CYC
     $time = $_ms + 35000
WHILE($time > $_ms)
    GETSCREEN
    COLORMODE(6)
   IF_PICTURE_IN(1490,240,1530,280, "чпзакрыть.bmp")
        $time = 0
        LCLICK($_return1, $_return2)
        WAITMS(700)
    ELSE
        WAITMS(50)
    END_IF
END_CYC
$check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
     IF_PICTURE_IN(590,270,630,310, "входпрофиль.bmp")
        $check = 1
         WAITMS(200)
        LCLICK($_return1 + 1, $_return2 + 1)
       WAITMS(200)
         ELSE
       WAITMS(50) 
       END_IF
END_CYC
    $check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(590,270,630,310, "входпрофиль.bmp")
        $check = 1
         WAITMS(200)
        LCLICK($_return1, $_return2)
 ELSE
        WAITMS(50)
    END_IF
END_CYC
     $check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(970,730,1010,770, "сменасерва.bmp")
        $check = 1
         WAITMS(200)
        LCLICK($_return1, $_return2)
         ELSE
        WAITMS(50)
    END_IF
END_CYC

     $check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(790,370,830,400, "74серв.bmp")
        $check = 1
         WAITMS(200)
        LCLICK(1366,700)
        WAITMS(500)
        LCLICK(1366,700)
        WAITMS(500)
        LCLICK(1366,700)
        WAITMS(500)
       LCLICK(1366,700)
        WAITMS(500)
        LCLICK(1002,604)
        WAITMS(500)
        LCLICK(1030,752)
WAIT(2)
LCLICK(539,49)
WAITMS(100)
TOCLIP("https://vk.com/bestmoba?ad_id=group_posting_-.pt-gift.gt-portal_petxp_egg.cq-3_5000_10.-#gift_id=Rn9esfinGL")
            WAITMS(100)
            KEYDOWN(#CTRL)
            WAITMS(50)
            KEYPRESS(#V)
            WAITMS(50)
            KEYUP(#CTRL)
            WAITMS(250)
            KEYPRESS(#ENTER)
             WAIT(25)
LCLICK(1519,137)
WAITMS(2000)
LCLICK(1394,310)            
 ELSE
 IF_PICTURE_IN(790,370,830,400, "51серв.bmp")
        $check = 1
         WAITMS(200)
       LCLICK(1365,452)
        WAITMS(500)
        LCLICK(1365,452)
        WAITMS(500)
     LCLICK(1365,452)
        WAITMS(500)
      LCLICK(1365,452)
        WAITMS(500)
      LCLICK(1026,514)
        WAITMS(500)
        LCLICK(1030,752)
        WAIT(2)
LCLICK(539,49)
WAITMS(100)
TOCLIP("https://vk.com/bestmoba?ad_id=group_posting_-.pt-gift.gt-portal_petxp_egg.cq-3_5000_10.-#gift_id=Rn9esfinGL")
            WAITMS(100)
            KEYDOWN(#CTRL)
            WAITMS(50)
            KEYPRESS(#V)
            WAITMS(50)
            KEYUP(#CTRL)
            WAITMS(250)
            KEYPRESS(#ENTER)
             WAIT(25)
LCLICK(1519,137)
WAITMS(2000)
LCLICK(1394,310)
         ELSE
               WAITMS(50)
    END_IF               
    END_IF
END_CYC

 $check = 0
WHILE($check = 0)
    GETSCREEN
    COLORMODE(6)
    IF_PICTURE_IN(800,370,830,400, "51серв.bmp")
        $check = 1
         WAITMS(200)
      LCLICK(1365,452)
        WAITMS(500)
       LCLICK(1365,452)
        WAITMS(500)
      LCLICK(1365,452)
        WAITMS(500)
       LCLICK(1365,452)
        WAITMS(500)
             LCLICK(1026,514)
        WAITMS(500)
        LCLICK(1030,752)
        WAIT(2)
LCLICK(539,49)
WAITMS(100)
TOCLIP("https://vk.com/bestmoba?ad_id=group_posting_-.pt-gift.gt-portal_petxp_egg.cq-3_5000_10.-#gift_id=Rn9esfinGL")
            WAITMS(100)
            KEYDOWN(#CTRL)
            WAITMS(50)
            KEYPRESS(#V)
            WAITMS(50)
            KEYUP(#CTRL)
            WAITMS(250)
            KEYPRESS(#ENTER)
             WAIT(25)
LCLICK(1519,137)
WAITMS(2000)
LCLICK(1394,310)
 ELSE
 IF_PICTURE_IN(790,370,830,400, "74серв.bmp")
        $check = 1
         WAITMS(200)
        LCLICK(1366,700)
        WAITMS(500)
        LCLICK(1366,700)
        WAITMS(500)
        LCLICK(1366,700)
        WAITMS(500)
       LCLICK(1366,700)
        WAITMS(500)
        LCLICK(1002,604)
        WAITMS(500)
        LCLICK(1030,752)
      WAIT(2)
LCLICK(539,49)
WAITMS(100)
TOCLIP("https://vk.com/bestmoba?ad_id=group_posting_-.pt-gift.gt-portal_petxp_egg.cq-3_5000_10.-#gift_id=Rn9esfinGL")
            WAITMS(100)
            KEYDOWN(#CTRL)
            WAITMS(50)
            KEYPRESS(#V)
            WAITMS(50)
            KEYUP(#CTRL)
            WAITMS(250)
            KEYPRESS(#ENTER)
             LCLICK(1519,137)
WAIT(25)
LCLICK(1519,137)
WAITMS(2000)
LCLICK(1394,310)
         ELSE
               WAITMS(50)
    END_IF               
    END_IF
END_CYC

anton1993

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Однократный "проход" картинок.
« Reply #22 on: November 28, 2020, 01:56:24 PM »
Всем спасибо! Вроде разобрался))