Author Topic: Вопрос В помощи освоения условий Else, WHILE,  (Read 13047 times)

0 Members and 1 Guest are viewing this topic.

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
ребят  опять  мудрую как   быть ...... вот   что у меня  щяс  получается  вроди работает но  строка 20
ето первый поиск если  находит  нужно чтобы  искал 23   и 25  по  очереди ...... а  мне кажится  он  зависает  при  таком  написании   может чтото подправить ?
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub

//Ждем картинку  ===========================================================
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (112,211, 553,1037, "кат.bmp") //  ее ищем  сразу   если  она  есть  ищем  ниже 23  25 строки
     $x =  $_return1
      $y =  $_return2
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "11.bmp")  //  если нету  ищем  ниже
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "33.bmp")
           
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
         END_IF
      END_IF
   END_IF
END_CYC



//Если картинка найдена то ищем пиксели итд.
Find_pix(496, 945, 498, 950, 213)  //  Есть
Find_pix(369, 819, 433, 835, 4342338) // Жду


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

он вообще  Зависает  и   комп  виснет  чтото   не  то  делаю......

 но  вот  ето исполнение   скрипта   не  тормозит комп  вродибы что  скажите
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub

//Ждем картинку  ===========================================================
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (112,211, 553,1037, "кат.bmp")
      $x =  $_return1
      $y =  $_return2
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "11.bmp")
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
      ELSE
         IF_PICTURE_IN (112,211, 553,1037, "кат.bmp")
            $x =  $_return1
            $y =  $_return2
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "33.bmp")
               $check = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
            END_IF
         END_IF
      END_IF
   END_IF
END_CYC



//Если картинка найдена то ищем пиксели итд.
Find_pix(496, 945, 498, 950, 213)  //  Есть
Find_pix(369, 819, 433, 835, 4342338) // Жду


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
и  если  такая  картинка   то  ничего не  произходит  хотя  должно  кликнуть  по  нижней    голова  не  понимает как    подкооректировать
« Last Edit: July 21, 2020, 05:40:22 PM by JacsoN »
если  есть  возможность  объясни  по  скайпу  что  да  как

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
 ребята  может ето все както в цикл?
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub



$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (112,211, 552,406, "кат.bmp")   //  ищем  если есть   ищем 42 строку
      $check = 1
      $x =  $_return1
      $y =  $_return2
      WAITMS(100)
   ELSE
      IF_PICTURE_IN (112,211, 552,406, "кат.bmp")  //  ищем  если есть   ищем 42 строку
         $check = 1
         $x =  $_return1
         $y =  $_return2
         WAITMS(100)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
END_CYC





IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")    //  ищем  если есть  клик если нету 
   
   LOGWRITE ("0")
   LCLICK($_return1, $_return2)
   WAITMS(100)
ELSE
   IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")     //  ищем  если есть  клик если нету
     
      LOGWRITE ("1")
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")    //  ищем  если есть  клик если нету               переходим к 18 строке  и  в ето все  в  цикл
         
         LOGWRITE ("2")
         
         LCLICK($_return1, $_return2)
         WAITMS(100)
         
         
         WAITMS(50)
      END_IF
   END_IF
END_IF




//Если картинка найдена то ищем пиксели итд.
Find_pix(496, 945, 498, 950, 213)  //  Есть
Find_pix(369, 819, 433, 835, 4342338) // Жду


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
   не научился  понимать как добавлять циклы ))))
если  есть  возможность  объясни  по  скайпу  что  да  как

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
ребята  может ето все както в цикл?
Циклы в цикл? А потом и этот цик в принципе можно в цикл закатать.
Я не ду... Потому и не бу...

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
ребята  может ето все както в цикл?
Циклы в цикл? А потом и этот цик в принципе можно в цикл закатать.
да   дядя  имено  вот  набросил визуально задание  так  мне   легче   понять  и  другим  обьяснить  вот  пока  что сложил но  оно  не  работает ........
картинкаhttps://drive.google.com/file/d/1ehIv7cCw0oKmuy_IdnhPLOwJc4mW3KfK/view?usp=sharing



.
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub



$gc = 0         // произвольная переменная  только  не  могу  ее пременить правельно
While($gc ! 1)
   
   // ================================1111111================
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (112,208, 557,408, "кат.bmp")   // первый красный  квадрат
         $x =  $_return1  //  переменная  кординаты квадрата
         $y =  $_return2
         $check = 1
         WAITMS(100)
      ELSE
         WAITMS(50)
      END_IF
   END_IF
   
   
   
   
   $check = 0
   WHILE($check = 0)
     
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")    // используем  переменную с верху
         $check = 1
         LOGWRITE ("0")
         LCLICK($_return1, $_return2)
         WAITMS(100)
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")     // // используем  переменную с верху
            $check = 1
            LOGWRITE ("1")
            LCLICK($_return1, $_return2)
            WAITMS(100)
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")   // используем  переменную с верху
               $check = 1
               
               LOGWRITE ("2")
               
               LCLICK($_return1, $_return2)
               WAITMS(100)
               
               
               WAITMS(50)
            END_IF
         END_IF       //==================== Не  нашло   переходим  к  поиску во втором  квадрате       как ето реализовать?
      END_IF
   END_CYC
   
   //===========================================2222222222222222==============================
   
                           
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (111,407, 552,629, "кат.bmp")  //  второй  красный  квадрат
         $x =  $_return1               
         $y =  $_return2              //  переменная  кординаты квадрата
         $check = 1
         WAITMS(100)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $check = 0
   WHILE($check = 0)
     
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")    //  ищем  если есть  клик если нету
         $check = 1
         LOGWRITE ("0")
         LCLICK($_return1, $_return2)
         WAITMS(100)
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")     //  ищем  если есть  клик если нету
            $check = 1
            LOGWRITE ("1")
            LCLICK($_return1, $_return2)
            WAITMS(100)
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")    //  ищем  если есть  клик если нету               переходим к 21 строке  и  в ето все  в  цикл
               $check = 1
               
               LOGWRITE ("2")
               
               LCLICK($_return1, $_return2)
               WAITMS(100)
               
               
               WAITMS(50)
            END_IF
         END_IF
      END_IF
   END_CYC
END_CYC
HALT

//Если картинка найдена то ищем пиксели итд.
Find_pix(496, 945, 498, 950, 213)  //  Есть
Find_pix(369, 819, 433, 835, 4342338) // Жду


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
« Last Edit: July 22, 2020, 09:36:01 PM by JacsoN »
если  есть  возможность  объясни  по  скайпу  что  да  как

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
во  проснулся  ночью...... и   на  свежую голову  попробывал  свои  силы в  переменных... но чтото    пока  не  работает  не понимаю как  циклу сказать что я от него  хочу описание  в картинке https://drive.google.com/file/d/1ehIv7cCw0oKmuy_IdnhPLOwJc4mW3KfK/view?usp=sharing

Code: (clickermann) [Select]
$gc = 0          // основная  переменная всего  скрипта которая возвращяет цикл   если не нащлось $gc3 $gc5
While($gc ! 1)
   
   
   $gc2 = 0 //переменная 1 квадрата
   While($gc2 ! 1) //условие  если $gc2= 1 ищем @gc3
     
     
     
      // ================================1111111================
     
      LOGWRITE ("начало GC2")
     
      GETSCREEN
      IF_PICTURE_IN (112,208, 557,408, "кат.bmp")   // первый красный  квадрат
         $x =  $_return1  //  переменная  кординаты квадрата
         $y =  $_return2
         WAITMS(100)
      ELSE
         $check = 1
      END_IF
     
     
      LOGWRITE ("вышли  и  погнали  дальше")
     
     
      $gc3 = 0 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
      While($gc3 ! 1) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
         
         
         GETSCREEN($x,$y)
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")    // используем  переменную с верху
            LOGWRITE ("0")
            LCLICK($_return1, $_return2)
            WAITMS(100)
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")     // // используем  переменную с верху
               LOGWRITE ("1")
               LCLICK($_return1, $_return2)
               WAITMS(100)
            ELSE
               IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")   // используем  переменную с верху
                 
                  LOGWRITE ("2")
                 
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                 
                 
                  WAITMS(50)
                 
               ELSE //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                  $check = 1 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                 
               END_IF
            END_IF       //==================== Не  нашло   переходим  к  поиску во втором  квадрате       как ето реализовать?
         END_IF
      END_CYC
   END_CYC
                    LOGWRITE ("начало GC3")
   
   //===========================================2222222222222222==============================
   $gc3 = 0 //переменная 2 квадрата
   While($gc3 ! 1) //условие  если $gc3= 1 ищем @gc4
     
      GETSCREEN
      IF_PICTURE_IN (111,407, 552,629, "кат.bmp")  //  второй  красный  квадрат
         $x =  $_return1
         $y =  $_return2              //  переменная  кординаты квадрата
         
         WAITMS(100)
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
   
   $gc4 = 0 //переменная  синего  квадратика  если есть  нажал погнали дальше
   While($gc4 ! 1) //условие  если $gc2= 1 ищем @gc3
     
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")    //  ищем  если есть  клик если нету
         
         LOGWRITE ("0")
         LCLICK($_return1, $_return2)
         WAITMS(100)
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")     //  ищем  если есть  клик если нету
           
            LOGWRITE ("1")
            LCLICK($_return1, $_return2)
            WAITMS(100)
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")    //  ищем  если есть  клик если нету               переходим к 21 строке  и  в ето все  в  цикл
               
               
               LOGWRITE ("2")
               
               LCLICK($_return1, $_return2)
               WAITMS(100)
               
            ELSE //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               $check = 1 //@@@@@@@@@@@@
            END_IF
         END_IF
      END_IF
   END_CYC
END_CYC
если  есть  возможность  объясни  по  скайпу  что  да  как

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Народ кто шарит может кинуть правильно смысл

(strpos($Масив в котором ищем, "Фраза1", "Фраза2"))

Выдает ошибку, что не так ?

Мне нужно чтобы он любую из двух фраз искал, а не обе сразу

Clickermann -> Справка -> Язык сценариев -> Строки и строковые файлы -> strpos
strpos вроде только одну подстроку ищет...

А если два условия поставить это будет бред ?

Допустим:

(strpos($Масив в котором ищем, "Фраза1"))
(strpos($Масив в котором ищем, "Фраза2"))
Code: (clickermann) [Select]
// Так ищем обе подстроки
IF(strpos($stroka, "Фраза1"))
   IF(strpos($stroka, "Фраза2"))
      LOGWRITE ("Обе подстроки найдены")
   END_IF
END_IF
// А так ищем любую из подстрок
$flag = 0
IF(strpos($stroka, "Фраза1"))
   $flag = 1
else
   IF(strpos($stroka, "Фраза2"))
      $flag = 1
   END_IF
END_IF

IF($flag)
   LOGWRITE ("Одна из подстрок, или обе присутствуют.")
END_IF
чтото вроди етого нудно в моем скрипте но непонимаю.....
если  есть  возможность  объясни  по  скайпу  что  да  как

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Что ж тебе проще-то не живется...?
Code: (clickermann) [Select]
SUB(клик, $x, $y)
   IF($click_time < $_ms)
      LCLICK($x, $y)
      $click_time = $_ms+1000
   END_IF
END_SUB

GETSCREEN

$var = 0
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Ищем зеленую строку в первом красном квадрате
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Ищем синюю картинку
      $var = 1
      клик ($_return1, $_return2)
   END_IF
END_IF

IF($var = 0)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Ищем зеленую строку во втором красном квадрате
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Ищем синюю картинку
         клик ($_return1, $_return2)
      END_IF
   END_IF
END_IF

WAITMS(50)
Я не ду... Потому и не бу...

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
ух ты какой   я тут  два  дня  ломаю голову  как   сказать скрипту чтобы он  искал  по  очереди  два квадрата   и  проверял   если  есть строка  ищем   если нету  пропускаем .....
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)   //  саб   делает  2  функции строка 130
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub

//Ждем картинку  ===========================================================
$all = 0
IF($all = 0 )
   
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (112,211, 553,1037, "кат.bmp")   // картинка  в первом  квадрате   зеленая
         LOGWRITE ("ЕСТЬ КАТ")
         //============================ОБЯЗАТЕЛЬНО ЧИТАТЬ НИЖЕ========================
         // а  вот  тут  надо  както сказать кликеру  чтобы  он  если нету  первой  зеленой картинки в  первом квадрате  чтобы искал во втором  квадрате   так  сказать какоето проверочное  условие ......
         
         
         $x =  $_return1
         $y =  $_return2
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")  // синяя
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=0")
         ELSE
            LOGWRITE ("нету КМ")
           
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")  // синяя
               $check = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               LOGWRITE ("нашел=1")
            ELSE
               LOGWRITE ("нету КМ")
               IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")   // синяя
                  $check = 1
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                  LOGWRITE ("нашел=2")
               ELSE
                  LOGWRITE ("нету КМ")
                  IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "3.bmp")// синяя
                     $check = 1
                     LCLICK($_return1, $_return2)
                     WAITMS(100)
                     LOGWRITE ("нашел=3")
                  ELSE
                     LOGWRITE ("нету  ищю снова ")
                     $all = 0
                     
                     
                  END_IF
               END_IF
            END_IF
         END_IF
      END_IF
   END_CYC
END_IF
//======================тут вроди как  поиск  второго квадрата  все так
//Ждем картинку  ===========================================================
$all = 0
IF($all = 0 )
   
   
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PICTURE_IN (111,411, 555,605, "кат.bmp")   // картинка  в первом  квадрате   зеленая
         LOGWRITE ("ЕСТЬ КАТ")
         //============================ОБЯЗАТЕЛЬНО ЧИТАТЬ НИЖЕ========================
         // а  вот  тут  надо  както сказать кликеру  чтобы  он  если нету  первой  зеленой картинки в  первом квадрате  чтобы искал во втором  квадрате   так  сказать какоето проверочное  условие ......
         
         
         $x =  $_return1
         $y =  $_return2
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")  // синяя
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=0")
         ELSE
            LOGWRITE ("нету КМ")
           
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")  // синяя
               $check = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               LOGWRITE ("нашел=1")
            ELSE
               LOGWRITE ("нету КМ")
               IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")   // синяя
                  $check = 1
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                  LOGWRITE ("нашел=2")
               ELSE
                  LOGWRITE ("нету КМ")
                  IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "3.bmp")// синяя
                     $check = 1
                     LCLICK($_return1, $_return2)
                     WAITMS(100)
                     LOGWRITE ("нашел=3")
                  ELSE
                     LOGWRITE ("нету  ищю снова ")
                     $all = 0
                     
                     
                  END_IF
               END_IF
            END_IF
         END_IF
      END_IF
   END_CYC
END_IF

//Если картинка найдена то ищем пиксели итд.
Find_pix(496, 945, 498, 950, 213)  //  Есть
Find_pix(369, 819, 433, 835, 4342338) // Жду


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
шах и  мат......... как  тебе  такое ??  как   теперь  твой  саб  с моим склеить?  или  можна  мой както  подправить ?
если  есть  возможность  объясни  по  скайпу  что  да  как

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
кароче  раз оно  так  плохо  идет  то  легче  запустить  два  кликера   раз не могу  понять ....... и все  будет  работать
если  есть  возможность  объясни  по  скайпу  что  да  как

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
как   сказать скрипту чтобы он  искал  по  очереди  два квадрата   и  проверял   если  есть строка  ищем   если нету  пропускаем .....
Так что тебе не понравилось в том, что я дал?
Я не ду... Потому и не бу...

JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
Реебята   надоело работать с  двумя и более  окнами кликермана ...... хочу в один скрипт  помнеститься... вот мозг не  срабатывает  где правельно поставить End_IF

Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub

//Ждем картинку ===============ПЕРВАЯ ЧСТЬ============================================


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (112,211, 553,405, "кат.bmp")
      LOGWRITE ("ЕСТЬ КАТ")
      $x =  $_return1
      $y =  $_return2
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("нашел=0")
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=1")
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")
               $check = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               LOGWRITE ("нашел=2")
            ELSE
               IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "3.bmp")
                  $check = 1
                  LCLICK($_return1, $_return2)
                  WAITMS(100)
                  LOGWRITE ("нашел=3")
               ELSE
                  LOGWRITE ("нету  ищю снова ")
               END_IF
            END_IF
         END_IF
      END_IF
   END_IF
END_IF
//==========================================ВТОРАЯ ЧАСТЬ ПРИСОЕДИНИЛ   КАК ЧТОБЫ ОДНИМ ГЕТ СКРИНОМ ВСЕ РАБОТАЛО ????????
IF_PICTURE_IN (112,411, 553,605, "катерина низ.bmp")
   LOGWRITE ("ЕСТЬ КАТ")
   $x =  $_return1
   $y =  $_return2
   IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0низ.bmp")
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
      LOGWRITE ("нашел=0")
   ELSE
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("нашел=1")
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=2")
           
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "3.bmp")
               $check = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               LOGWRITE ("нашел=3")
            END_IF
         END_IF
      END_IF
   END_IF   
END_CYC






//Если картинка найдена то ищем пиксели итд.
Find_pix(494, 959, 503, 963, 213)  //  Есть

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (246,812, 468,844, "ПРИНЯТЬ ЗАКАЗ.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC



$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
      WAIT(7)
      LCLICK(580,911)  // 1250067
      WAIT(1)
      LCLICK(574,907)  // 1250067
     
     
   ELSE
      WAITMS(50)
   END_IF
END_CYC
WAIT(6)
если  есть  возможность  объясни  по  скайпу  что  да  как

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
В строке 90 почему стоит END_CYC вместо END_IF?
Перед 58 поставь GETSCREEN
Остальное непонятно что не устраивает.

Аааа... там и в 56 END_IF. Что ты хочешь куда затолкать? Вторую часть внутрь цикла первой? Последовательно с существующими условиями или вложено?
« Last Edit: August 20, 2020, 10:20:18 AM by Vint »


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Так что ли?
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
    GETSCREEN
    IF_PICTURE_IN (112,211, 553,405, "кат.bmp")
        LOGWRITE ("ЕСТЬ КАТ")
        $x =  $_return1
        $y =  $_return2
        IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=0")
        ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")
                $check = 1
                LCLICK($_return1, $_return2)
                WAITMS(100)
                LOGWRITE ("нашел=1")
            ELSE
                IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")
                    $check = 1
                    LCLICK($_return1, $_return2)
                    WAITMS(100)
                    LOGWRITE ("нашел=2")
                ELSE
                    IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "3.bmp")
                        $check = 1
                        LCLICK($_return1, $_return2)
                        WAITMS(100)
                        LOGWRITE ("нашел=3")
                    ELSE
                        LOGWRITE ("нету  ищю снова ")
                    END_IF
                END_IF
            END_IF
        END_IF
    END_IF
   
    //==========================================ВТОРАЯ ЧАСТЬ ПРИСОЕДИНИЛ   КАК ЧТОБЫ ОДНИМ ГЕТ СКРИНОМ ВСЕ РАБОТАЛО ????????
    IF_PICTURE_IN (112,411, 553,605, "катерина низ.bmp")
        LOGWRITE ("ЕСТЬ КАТ")
        $x =  $_return1
        $y =  $_return2
        IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0низ.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=0")
        ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")
                $check = 1
                LCLICK($_return1, $_return2)
                WAITMS(100)
                LOGWRITE ("нашел=1")
            ELSE
                IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")
                    $check = 1
                    LCLICK($_return1, $_return2)
                    WAITMS(100)
                    LOGWRITE ("нашел=2")
                   
                ELSE
                    IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "3.bmp")
                        $check = 1
                        LCLICK($_return1, $_return2)
                        WAITMS(100)
                        LOGWRITE ("нашел=3")
                    END_IF
                END_IF
            END_IF
        END_IF
    END_IF
END_CYC

А лучше опиши словами что хочешь. Понять по неправильному коду это невозможно.


JacsoN

  • Активный участник
  • ***
  • Posts: 152
  • извините но мне нужны полнейшие обяснения
    • View Profile
ну так как ты показал я пробывал вроди не работает  щяс  буду тестировать   еще....не мог понять куда ставить END_IF
вот  пример 2 скрипта как их  обьеденить в один
Первый скрипт
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub

//Ждем картинку  ===========================================================

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (112,211, 555,405, "кат.bmp")
      LOGWRITE ("ЕСТЬ КАТ")
      $x =  $_return1
      $y =  $_return2
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0.bmp")
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("нашел=0")
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=1")
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2.bmp")
               $check = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               LOGWRITE ("нашел=2")
            ELSE
               WAITMS(50)
               
               LOGWRITE ("нету  ищю снова ")
            END_IF
         END_IF
      END_IF
   END_IF
END_CYC




//Если картинка найдена то ищем пиксели итд.
Find_pix(494, 959, 503, 963, 213)  //  Есть


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (246,812, 468,844, "ПРИНЯТЬ ЗАКАЗ.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC


$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
      WAIT(5)
      LCLICK(580,911)  // 1250067
      WAIT(1)
      LCLICK(574,907)  // 1250067
     
     
   ELSE
      WAITMS(50)
   END_IF
END_CYC
WAIT(6)

И второй  они одинаковы только  зоны поиска немного разные
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN($x, $y, $x1, $y1, $color)
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("pix fined")
      ELSE
         WAITMS(50)
      END_IF
   END_CYC
end_sub

//Ждем картинку  ===========================================================

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (111,411, 555,605, "катерина низ.bmp")
      LOGWRITE ("ЕСТЬ КАТ")
      $x =  $_return1
      $y =  $_return2
      IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "0низ.bmp")
         $check = 1
         LCLICK($_return1, $_return2)
         WAITMS(100)
         LOGWRITE ("нашел=0")
      ELSE
         IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "1.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("нашел=1")
         ELSE
            IF_PICTURE_IN ($x-116,$y-51, $y+268,$y+690, "2низ.bmp")
               $check = 1
               LCLICK($_return1, $_return2)
               WAITMS(100)
               LOGWRITE ("нашел=2")
            ELSE
               LOGWRITE ("нету  ищю снова ")
            END_IF
         END_IF
      END_IF
   END_IF
END_CYC




//Если картинка найдена то ищем пиксели итд.
Find_pix(494, 959, 503, 963, 213)  //  Есть

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (246,812, 468,844, "ПРИНЯТЬ ЗАКАЗ.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC




$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
      $check = 1
      LCLICK($_return1, $_return2)
        WAIT(5)
      LCLICK(580,911)  // 1250067
      WAIT(1)
      LCLICK(574,907)  // 1250067
     
     
   ELSE
      WAITMS(50)
   END_IF
END_CYC
WAIT(5)
нехватает опыта как ето обьеденить
если  есть  возможность  объясни  по  скайпу  что  да  как

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Code: (clickermann) [Select]
SUB(Find_pix, $x, $y, $x1, $y1, $color)
    $check = 0
    WHILE($check = 0)
        GETSCREEN
        IF_PIXEL_IN($x, $y, $x1, $y1, $color)
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE ("pix fined")
        ELSE
            WAITMS(50)
        END_IF
    END_CYC
end_sub

//Ждем картинку  ===========================================================

$check = 0
WHILE($check = 0)
    GETSCREEN(112,211, 555,405)
    IF_PICTURE_IN(112,211, 555,405, "кат.bmp")
        LOGWRITE("ЕСТЬ КАТ")
        $x = $_return1
        $y = $_return2
        IF_PICTURE_IN($x-116,$y-51, $y+268,$y+690, "0.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE("нашел=0")
        ELSE
            IF_PICTURE_IN($x-116,$y-51, $y+268,$y+690, "1.bmp")
                $check = 1
                LCLICK($_return1, $_return2)
                WAITMS(100)
                LOGWRITE("нашел=1")
            ELSE
                IF_PICTURE_IN($x-116,$y-51, $y+268,$y+690, "2.bmp")
                    $check = 1
                    LCLICK($_return1, $_return2)
                    WAITMS(100)
                    LOGWRITE("нашел=2")
                END_IF
            END_IF
        END_IF
    END_IF

    GETSCREEN(111,411, 555,605)
    IF_PICTURE_IN(111,411, 555,605, "катерина низ.bmp")
        LOGWRITE("ЕСТЬ КАТ низ")
        $x = $_return1
        $y = $_return2
        IF_PICTURE_IN($x-116,$y-51, $y+268,$y+690, "0низ.bmp")
            $check = 1
            LCLICK($_return1, $_return2)
            WAITMS(100)
            LOGWRITE("нашел=0низ")
        ELSE
            IF_PICTURE_IN($x-116,$y-51, $y+268,$y+690, "1.bmp")
                $check = 1
                LCLICK($_return1, $_return2)
                WAITMS(100)
                LOGWRITE("нашел=1")
            ELSE
                IF_PICTURE_IN($x-116,$y-51, $y+268,$y+690, "2низ.bmp")
                    $check = 1
                    LCLICK($_return1, $_return2)
                    WAITMS(100)
                    LOGWRITE("нашел=2низ")
                END_IF
            END_IF
        END_IF
    END_IF
    WAITMS(50)
END_CYC


//Если картинка найдена то ищем пиксели итд.
Find_pix(494, 959, 503, 963, 213)  //  Есть

$check = 0
WHILE($check = 0)
    GETSCREEN
    IF_PICTURE_IN (246,812, 468,844, "ПРИНЯТЬ ЗАКАЗ.bmp", -1, 100)
        $check = 1
        LCLICK($_return1, $_return2)
        WAITMS(100)
    ELSE
        WAITMS(50)
    END_IF
END_CYC

$check = 0
WHILE($check = 0)
    GETSCREEN
    IF_PICTURE_IN (233,65, 407,1034, "Есть.bmp", -1, 100) // ето последнее действие после  САБА
        $check = 1
        LCLICK($_return1, $_return2)
        WAIT(5)
        LCLICK(580,911)  // 1250067
        WAIT(1)
        LCLICK(574,907)  // 1250067
    ELSE
        WAITMS(50)
    END_IF
END_CYC
WAIT(6)