Author Topic: IF_PICTURE_IN не всегда определяет  (Read 2001 times)

0 Members and 1 Guest are viewing this topic.

Fuego47

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
IF_PICTURE_IN не всегда определяет
« on: March 12, 2019, 10:10:04 PM »
Друзья, помогите упростить или найти косяки. скрипт не всегда работает. Особенно первое условие IF_PICTURE_IN бывает просто не находит картинку, хотя она там есть. Полагаю, код слишком большой
Code: [Select]
IF($start = 0)
   $Timer_na_dva_chasa = $_time_t+7200
   $start = 1
END_IF

IF($Timer_na_dva_chasa > $_time_t)
   
   WAIT(RND(1,7))
   GETSCREEN(0, 0, 1365, 767)
   WAITMS(100)
         IF_PICTURE_IN (0, 76, 300, 600, "001.bmp", -1, 80)     //Условие 1
            WAITMS(100)
            KEYPRESS(RNDFROM(#1,#2,#2,#2,#3,#3,#3,#3,#3,#3))
            WAITMS(100)
         ELSE
            IF_PICTURE_IN (994, 318, 1139, 352, "006.bmp")     //Условие 2
               WAITMS(100)
               KEYPRESS(RNDFROM(#6,#5,#5))
            ELSE
               IF_PICTURE_IN (1034, 269, 1084, 331, "005.bmp")     //Условие 3
                  WAITMS(100)
                  LCLICK(71,247)
                  WAITMS(50)
                  HSET(HGET(71,247),1)
                  WAITMS(50)
                  KEYSTRING(TFREAD("Text2.txt", RND(1,TFCOUNT("Text2.txt"))))
                  WAITMS(50)
                  HSET(0,0)
                  WAITMS(200)
                  LCLICK(77,289)
               ELSE
                  IF_PICTURE_IN (0, 76, 192, 410, "002.bmp")     //Условие 4
                     WAITMS(100)
                     LCLICK(71,247)
                     WAITMS(50)
                     HSET(HGET(71,247),1)
                     WAITMS(50)
                     KEYSTRING(TFREAD("Text.txt", RND(1,TFCOUNT("Text.txt")))) /
                     WAITMS(50)
                     HSET(0,0)
                     WAITMS(50)
                     LCLICK(77,289)
                  ELSE
                     WAITMS(100)
                     IF_PICTURE_IN (0, 76, 192, 410, "003.bmp")     //Условие 5
                        WAITMS(100)
                        KEYPRESS(#5)
                     END_IF
                 
            END_IF
         END_IF
      END_IF
   END_IF
   WAITMS(200)
   LCLICK(508,746)
   WAITMS(100)
   LCLICK(3,583)
   
else
   WAIT(RND (600, 1200))
   PRINT("Перерыв")
   $Timer_na_dva_chasa = $_time_t+7200
   PRINT("Перерыв окончен")
END_IF
WAITMS(50)

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: IF_PICTURE_IN не всегда определяет
« Reply #1 on: March 12, 2019, 10:53:02 PM »
Если картинки нет, то её нет. Вот не много переписал код и добавил вывод картинок, которые лежат рядом со скриптом

Code: (clickermann) [Select]
GETFILELIST($arrraylist, "*.bmp") // Поиск картинок по маске

// Вывод найденных картинок
FOR($i = 0, $i < ARRSIZE($arrraylist))
   PRINT($arrraylist[$i])
END_CYC

// Переписанный код
STRSEPARATE("0:76:300:600:001",      ":", $array_data)
STRSEPARATE("900:280:1160:410:004",  ":", $array_data)
STRSEPARATE("1034:269:1084:331:005", ":", $array_data)
STRSEPARATE("0:76:192:410:002",      ":", $array_data)
STRSEPARATE("0:76:192:410:003",      ":", $array_data)
 
$size = ARRSIZE($array_data)
 
$time = $_time_t + 7200
 
WHILE(#TRUE)
   WAIT(RND(1,7))
   GETSCREEN($workArea_left, $workArea_top, $workArea_width, $workArea_height)
   IF_PICTURE_IN($array_data[$count], $array_data[$count+1], $array_data[$count+2], $array_data[$count+3], STRCONCAT($array_data[$count+4], ".bmp"), - 1, 100)
      SWITCH($count)
      CASE(0)
         PRINT("Оценен")
         WAITMS(100)
         KEYPRESS(RNDFROM(#1,#1,#2,#2,#2,#3,#3,#3,#3,#3,#3))
         WAITMS(100)
      CASE(5)
         PRINT("ОП")
         WAITMS(100)
         KEYPRESS(#9)
         WAITMS(100)
      CASE(10)
         PRINT("Арг на пуст")
         WAITMS(100)
         LCLICK(71,247)
         WAITMS(50)
         HSET(HGET(71,247),1)
         WAITMS(50)
         KEYSTRING(TFREAD("Text2.txt", RND(1,TFCOUNT("Text2.txt"))))
         WAITMS(50)
         HSET(0,0)
         WAITMS(200)
         LCLICK(77,289)
      CASE(15)
         PRINT("Арг на полн")
         WAITMS(100)
         LCLICK(71,247)
         WAITMS(50)
         HSET(HGET(71,247),1)
         WAITMS(50)
         KEYSTRING(TFREAD("Text.txt", RND(1,TFCOUNT("Text.txt")))) /
         WAITMS(50)
         HSET(0,0)
         WAITMS(50)
         LCLICK(77,289)
      CASE(20)
         PRINT("Решение по спору")
         WAITMS(100)
         KEYPRESS(RNDFROM(#9,#9,#9,#9,#9,#9,#9))
      END_SWITCH   
      $count = 0
      WAITMS(200)
      LCLICK(105,12)
      WAITMS(100)
      LCLICK(343,583)      
   ELSE
      IF($count != $size - 5)
         INC($count, + $size / 5)
      ELSE
         PRINT("4 нет Решения по спору")
         $count = 0
      END_IF
   END_IF     
   IF( ($_time_t > $time) & ($count = 0) )
      WAIT(RND(600,1200))
      $time = $_time_t + 7200
   END_IF   
END_CYC
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Fuego47

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: IF_PICTURE_IN не всегда определяет
« Reply #2 on: March 12, 2019, 11:16:42 PM »
Большое спасибо за помощь, но к сожалению, теперь нет реакции ни на одну из картинок
Если картинки нет, то её нет. Вот не много переписал код и добавил вывод картинок, которые лежат рядом со скриптом

Code: (clickermann) [Select]
GETFILELIST($arrraylist, "*.bmp") // Поиск картинок по маске

// Вывод найденных картинок
FOR($i = 0, $i < ARRSIZE($arrraylist))
   PRINT($arrraylist[$i])
END_CYC

// Переписанный код
STRSEPARATE("0:76:300:600:001",      ":", $array_data)
STRSEPARATE("900:280:1160:410:004",  ":", $array_data)
STRSEPARATE("1034:269:1084:331:005", ":", $array_data)
STRSEPARATE("0:76:192:410:002",      ":", $array_data)
STRSEPARATE("0:76:192:410:003",      ":", $array_data)
 
$size = ARRSIZE($array_data)
 
$time = $_time_t + 7200
 
WHILE(#TRUE)
   WAIT(RND(1,7))
   GETSCREEN($workArea_left, $workArea_top, $workArea_width, $workArea_height)
   IF_PICTURE_IN($array_data[$count], $array_data[$count+1], $array_data[$count+2], $array_data[$count+3], STRCONCAT($array_data[$count+4], ".bmp"), - 1, 100)
      SWITCH($count)
      CASE(0)
         PRINT("Оценен")
         WAITMS(100)
         KEYPRESS(RNDFROM(#1,#1,#2,#2,#2,#3,#3,#3,#3,#3,#3))
         WAITMS(100)
      CASE(5)
         PRINT("ОП")
         WAITMS(100)
         KEYPRESS(#9)
         WAITMS(100)
      CASE(10)
         PRINT("Арг на пуст")
         WAITMS(100)
         LCLICK(71,247)
         WAITMS(50)
         HSET(HGET(71,247),1)
         WAITMS(50)
         KEYSTRING(TFREAD("Text2.txt", RND(1,TFCOUNT("Text2.txt"))))
         WAITMS(50)
         HSET(0,0)
         WAITMS(200)
         LCLICK(77,289)
      CASE(15)
         PRINT("Арг на полн")
         WAITMS(100)
         LCLICK(71,247)
         WAITMS(50)
         HSET(HGET(71,247),1)
         WAITMS(50)
         KEYSTRING(TFREAD("Text.txt", RND(1,TFCOUNT("Text.txt")))) /
         WAITMS(50)
         HSET(0,0)
         WAITMS(50)
         LCLICK(77,289)
      CASE(20)
         PRINT("Решение по спору")
         WAITMS(100)
         KEYPRESS(RNDFROM(#9,#9,#9,#9,#9,#9,#9))
      END_SWITCH   
      $count = 0
      WAITMS(200)
      LCLICK(105,12)
      WAITMS(100)
      LCLICK(343,583)      
   ELSE
      IF($count != $size - 5)
         INC($count, + $size / 5)
      ELSE
         PRINT("4 нет Решения по спору")
         $count = 0
      END_IF
   END_IF     
   IF( ($_time_t > $time) & ($count = 0) )
      WAIT(RND(600,1200))
      $time = $_time_t + 7200
   END_IF   
END_CYC

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: IF_PICTURE_IN не всегда определяет
« Reply #3 on: March 12, 2019, 11:43:25 PM »
Потому что код старый, я его написал еще для прошлой темы и не всё сохранилось в блокноте  :)

Вот переделал под новый
Code: (clickermann) [Select]
GETFILELIST($arrraylist, "*.bmp") // Поиск картинок по маске
 
// Вывод найденных картинок
FOR($i = 0, $i < ARRSIZE($arrraylist))
   PRINT($arrraylist[$i])
END_CYC
 
// Переписанный код

$workArea_left   = 0
$workArea_top    = 0
$workArea_width  = 1365
$workArea_height = 767

STRSEPARATE("0:76:300:600:001:80",       ":", $array_data)
STRSEPARATE("994:318:1139:352:006:100",  ":", $array_data)
STRSEPARATE("1034:269:1084:331:005:100", ":", $array_data)
STRSEPARATE("0:76:192:410:002:100",      ":", $array_data)
STRSEPARATE("0:76:192:410:003:100",      ":", $array_data)
 
$size = ARRSIZE($array_data)
 
$time = $_time_t + 7200
 
WHILE(#TRUE)
   WAIT(RND(1,7))
   GETSCREEN($workArea_left, $workArea_top, $workArea_width, $workArea_height)
   IF_PICTURE_IN($array_data[$count], $array_data[$count+1], $array_data[$count+2], $array_data[$count+3], STRCONCAT($array_data[$count+4], ".bmp"), - 1, $array_data[$count+5])
      SWITCH($count)
      CASE(0)
         WAITMS(100)
         KEYPRESS(RNDFROM(#1,#2,#2,#2,#3,#3,#3,#3,#3,#3))
         WAITMS(100)
      CASE(6)
         WAITMS(100)
         KEYPRESS(RNDFROM(#6,#5,#5))
      CASE(12)
         WAITMS(100)
         LCLICK(71,247)
         WAITMS(50)
         HSET(HGET(71,247),1)
         WAITMS(50)
         KEYSTRING(TFREAD("Text2.txt", RND(1,TFCOUNT("Text2.txt"))))
         WAITMS(50)
         HSET(0,0)
         WAITMS(200)
         LCLICK(77,289)
      CASE(18)
         WAITMS(100)
         LCLICK(71,247)
         WAITMS(50)
         HSET(HGET(71,247),1)
         WAITMS(50)
         KEYSTRING(TFREAD("Text.txt", RND(1,TFCOUNT("Text.txt")))) /
         WAITMS(50)
         HSET(0,0)
         WAITMS(50)
         LCLICK(77,289)
      CASE(24)
         WAITMS(100)
         KEYPRESS(#5)
      END_SWITCH   
      $count = 0
      WAITMS(200)
      LCLICK(508,746)
      WAITMS(100)
      LCLICK(3,583)      
   ELSE
      IF($count != $size - 6)
         INC($count, + $size / 5)
      ELSE
         $count = 0
      END_IF
   END_IF     
   IF( ($_time_t > $time) & ($count = 0) )
      PRINT("Перерыв")
      WAIT(RND(600,1200))
      $time = $_time_t + 7200
      PRINT("Перерыв окончен")
   END_IF
   WAITMS(50)
END_CYC   
« Last Edit: March 12, 2019, 11:46:58 PM by Космич »
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»