Author Topic: как упростить если при нахождении одной из картинок выполнять одно и то же...  (Read 2709 times)

0 Members and 2 Guests are viewing this topic.

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
как упростить если при нахождении одной из  картинок выполнять одно  и то же действия это вроде как то через подпрограму делается ?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
SUB(имя) // подпрограмма
   // тело выполняется только после вызова
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_SUB


GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
   имя() // вызов подпрограммы (обязательно ниже подпрограммы)
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100)
      имя() // вызов подпрограммы (обязательно ниже подпрограммы)
   END_IF
END_IF

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
а если картинок больше 10 то их все прийдется писать каждую отдельно да?  :-\ 

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Опять всех запутал ;D. Это не подпрограмма, это цикл называется.
Вот пример:
http://crapware.aidf.org/forum/index.php?topic=2875.msg18708#msg18708

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Можно прогнать их через цикл

Code: (clickermann) [Select]
GETSCREEN
FOR($i=1,$i<16) // Имена рартинок от Image_1.bmp до Image_15.bmp
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, STRCONCAT("Image_", $i, ".bmp"), -1, 100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      $i=9999 // выход из цикла
   END_IF
END_CYC

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
тогда выходит нужно картинки подписывать именно по порядку и к этому же нудно чтоб их всегда было столько по порядку для меня не удобно  :-[ я тогда сам запутаюсь что где

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
тогда выходит нужно картинки подписывать именно по порядку и к этому же нудно чтоб их всегда было столько по порядку для меня не удобно  :-[ я тогда сам запутаюсь что где
Если боишься запутаться в своих картинках сделай через массив.
Code: (clickermann) [Select]
STRSEPARATE("Огонь,Воздух,Земля,Вода",",",$picture) //  Впиши названия своих картинок через запятую

FOR($num=0,$num<ARRSIZE($picture))
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,STRCONCAT($picture[$num],".bmp"),-1,100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      $num=ARRSIZE($picture)+999
   ELSE
      WAITMS(50)
   END_IF
END_CYC
« Last Edit: May 25, 2017, 10:38:00 PM by open_78 »

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
тогда выходит нужно картинки подписывать именно по порядку и к этому же нудно чтоб их всегда было столько по порядку для меня не удобно  :-[ я тогда сам запутаюсь что где
Если боишься запутаться в своих картинках сделай через массив.
Code: (clickermann) [Select]
STRSEPARATE("Огонь,Воздух,Земля,Вода",",",$picture) //  Впиши названия своих картинок через запятую

FOR($num=0,$num<ARRSIZE($picture))
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,STRCONCAT($picture[$num],".bmp"),-1,100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      $num=ARRSIZE($picture)+999
   ELSE
      WAITMS(50)
   END_IF
END_CYC


а как добавить если ни одна из этих картинок не нашлась  то делать совсем дугое ? ???

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
а как добавить если ни одна из этих картинок не нашлась  то делать совсем дугое ? ???
Code: (clickermann) [Select]
STRSEPARATE("Огонь,Воздух,Земля,Вода",",",$picture) //  Впиши названия своих картинок через запятую

FOR($num=0,$num<ARRSIZE($picture))
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,STRCONCAT($picture[$num],".bmp"),-1,100)
      LCLICK($_return1, $_return2)
      WAITMS(100)
      $num=9999
   ELSE
      WAITMS(50)
   END_IF
END_CYC

IF($num<9999)
   
   //  Делать совсем другое
   
END_IF

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
а почему эта конструкцыя выполняеться только один раз а дальше не выполняется если уже один раз нашло что то из картинок то потом  если не выключить и включить скрипт рукой оно просто пропускает это ...

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
ой все нашел это я сам натупил извените  :-[