Author Topic: параметр "goto"  (Read 4819 times)

0 Members and 3 Guests are viewing this topic.

stingray

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
параметр "goto"
« on: January 25, 2014, 03:28:51 AM »
Здравствуйте! мне нужно что бы только при выполнении цикла if_picrute_in(0,0,1300,700,"2.bmp",16777215) срабатывал лейбл goto, в то время как он выполняется не зависимо от того выполнился ли мой цикл или нет, почему так? можно ли как нибудь по другому прописать?


Code: (clickermann) [Select]
$var=0
GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
lclick($_return1,$_return2)
end_if
move(1130,235)
getscreen
wait(1)
if_picrute_in(0,0,1300,700,"2.bmp",16777215)
goto(a)
end_if
for($var,$var < 20)
keypress(#space)
inc($var)
END_CYC
getscreen                 
wait(2)
if_PIXEL_IN (300,140,1120,670,15128777)
LCLICK($_return1,$_return2)
end_if
wait(1)
a:
if_pixel_in(60,80,1340,680,5263559)
lclick($_return1,$_return2)
end_if

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: параметр "goto"
« Reply #1 on: January 25, 2014, 05:49:29 AM »
Здравствуйте! мне нужно что бы только при выполнении цикла if_picrute_in(0,0,1300,700,"2.bmp",16777215) срабатывал лейбл goto, в то время как он выполняется не зависимо от того выполнился ли мой цикл или нет, почему так? можно ли как нибудь по другому прописать?


Code: (clickermann) [Select]
$var=0
GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
lclick($_return1,$_return2)
end_if
move(1130,235)
getscreen
wait(1)
if_picrute_in(0,0,1300,700,"2.bmp",16777215)
goto(a)
end_if
for($var,$var < 20)
keypress(#space)
inc($var)
END_CYC
getscreen                 
wait(2)
if_PIXEL_IN (300,140,1120,670,15128777)
LCLICK($_return1,$_return2)
end_if
wait(1)
a:
if_pixel_in(60,80,1340,680,5263559)
lclick($_return1,$_return2)
end_if
if... - это не цикл, это условие. Так для уточнения.
Главное, не путай буквы в командах,
не if_picRuTe_in,
а if_picture_in
и всё заработает.
И судя он тому, что переписывал сам с if_pixel_in, точно цвет 16777215 нужен прозрачный?

Еще одно. Не критично, но...
Зачем задержки стоят сразу за getscreen? Если им стоять, то перед ним или после кликов-перемещения.

Зачем внутри цикла for($var,$var < 20) стоит inc($var) ? Этот цикл и так увеличивает сам переменную. А ты делаешь это ещё раз.
Название темы непонятное и неправильное. Параметр в GOTO(метка) это то, что в скобках. В теме про это не слова.
« Last Edit: January 25, 2014, 06:01:34 AM by Vint »


stingray

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: параметр "goto"
« Reply #2 on: January 25, 2014, 12:10:28 PM »
Здравствуйте! мне нужно что бы только при выполнении цикла if_picrute_in(0,0,1300,700,"2.bmp",16777215) срабатывал лейбл goto, в то время как он выполняется не зависимо от того выполнился ли мой цикл или нет, почему так? можно ли как нибудь по другому прописать?


Code: (clickermann) [Select]
$var=0
GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
lclick($_return1,$_return2)
end_if
move(1130,235)
getscreen
wait(1)
if_picrute_in(0,0,1300,700,"2.bmp",16777215)
goto(a)
end_if
for($var,$var < 20)
keypress(#space)
inc($var)
END_CYC
getscreen                 
wait(2)
if_PIXEL_IN (300,140,1120,670,15128777)
LCLICK($_return1,$_return2)
end_if
wait(1)
a:
if_pixel_in(60,80,1340,680,5263559)
lclick($_return1,$_return2)
end_if
if... - это не цикл, это условие. Так для уточнения.
Главное, не путай буквы в командах,
не if_picRuTe_in,
а if_picture_in
и всё заработает.
И судя он тому, что переписывал сам с if_pixel_in, точно цвет 16777215 нужен прозрачный?

Еще одно. Не критично, но...
Зачем задержки стоят сразу за getscreen? Если им стоять, то перед ним или после кликов-перемещения.

Зачем внутри цикла for($var,$var < 20) стоит inc($var) ? Этот цикл и так увеличивает сам переменную. А ты делаешь это ещё раз.
Название темы непонятное и неправильное. Параметр в GOTO(метка) это то, что в скобках. В теме про это не слова.

все, разобрался! спасибо большое, просто писал глубокой ночью и голова уже плохо работала поэтому и тему криво назвал, да еще не в том разделе небось) да и внутри цикла и такую фигню написал), а задержки стоят потому что выполняется загрузка страницы браузера с интернета, для того чтобы не терять нажатия пробелов поставил задержку, вторая задержка для того чтобы выполненное действие успело обработаться браузером, пробовал без задержки, не успевало. Так же с картинкой, если не обезцвечивать указанный цвет, прога не видит картинку, с обесцвечиванием, все работает!)
« Last Edit: January 25, 2014, 12:13:34 PM by stingray »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: параметр "goto"
« Reply #3 on: January 25, 2014, 12:18:38 PM »
Здравствуйте! мне нужно что бы только при выполнении цикла if_picrute_in(0,0,1300,700,"2.bmp",16777215) срабатывал лейбл goto, в то время как он выполняется не зависимо от того выполнился ли мой цикл или нет, почему так? можно ли как нибудь по другому прописать?

Можно и без гото в данном случае. И задержки нужно писать в адекваных местах и также после кликов и нажатий.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
   lclick($_return1,$_return2)
   WAITMS(100)
end_if

move(1130,235)
wait(1)

getscreen
if_picrute_in(0,0,1300,700,"2.bmp",16777215)
   if_pixel_in(60,80,1340,680,5263559)
      lclick($_return1,$_return2)
      WAITMS(100)
   end_if
ELSE
   for($var,$var < 20)
      keypress(#space)
      WAITMS(50)
   END_CYC
   wait(2)
   
   getscreen
   if_PIXEL_IN (300,140,1120,670,15128777)
      LCLICK($_return1,$_return2)
      WAITMS(100)
   end_if
   wait(1)
end_if

Обрати в нимание на это
if_picrute_in(0,0,1300,700,"2.bmp",16777215)
это цвет прозрачности в картинке, действитель но ли ты понял что написал?
Твой код неработает потому что функция не находит "2.bmp"

stingray

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: параметр "goto"
« Reply #4 on: January 25, 2014, 02:48:54 PM »
Здравствуйте! мне нужно что бы только при выполнении цикла if_picrute_in(0,0,1300,700,"2.bmp",16777215) срабатывал лейбл goto, в то время как он выполняется не зависимо от того выполнился ли мой цикл или нет, почему так? можно ли как нибудь по другому прописать?

Можно и без гото в данном случае. И задержки нужно писать в адекваных местах и также после кликов и нажатий.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
   lclick($_return1,$_return2)
   WAITMS(100)
end_if

move(1130,235)
wait(1)

getscreen
if_picrute_in(0,0,1300,700,"2.bmp",16777215)
   if_pixel_in(60,80,1340,680,5263559)
      lclick($_return1,$_return2)
      WAITMS(100)
   end_if
ELSE
   for($var,$var < 20)
      keypress(#space)
      WAITMS(50)
   END_CYC
   wait(2)
   
   getscreen
   if_PIXEL_IN (300,140,1120,670,15128777)
      LCLICK($_return1,$_return2)
      WAITMS(100)
   end_if
   wait(1)
end_if

Обрати в нимание на это
if_picrute_in(0,0,1300,700,"2.bmp",16777215)
это цвет прозрачности в картинке, действитель но ли ты понял что написал?
Твой код неработает потому что функция не находит "2.bmp"

Будет ли это работать вот так? Нужно он искал 2 и\или 3 картинки

Code: (clickermann) [Select]
$var=0

GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
lclick($_return1,$_return2)
end_if
move(1130,235)
wait(1)

getscreen
if_picture_in(0,0,1300,700,"2.bmp") & if_picture_in(130,65,1270,370,"3.bmp")
if_pixel_in(60,80,1340,680,5263559)
lclick($_return1,$_return2)
wait(1)
end_if

else
for($var,$var < 20)
keypress(#space)
END_CYC
wait(2)

getscreen                 
if_PIXEL_IN (300,140,1120,670,15128777)
LCLICK($_return1,$_return2)
wait(1)
end_if
« Last Edit: January 25, 2014, 02:50:55 PM by stingray »

Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: параметр "goto"
« Reply #5 on: January 25, 2014, 03:02:38 PM »
Будет ли это работать вот так? Нужно он искал 2 и\или 3 картинки
Нет. Вот так будет
Code: (clickermann) [Select]
$var=0

GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
   lclick($_return1,$_return2)
end_if
move(1130,235)
wait(1)

$check = 0
$time = $_time_t + 1 // ожидание 1 сек
WHILE(($check = 0) & ($time > $_time_t))
   WAITMS(10)
   GETSCREEN
   if_picture_in(0,0,1300,700,"2.bmp")
      $check = 1
   END_IF
   if_picture_in(0,0,1300,700,"3.bmp")
      $check = 1
   END_IF
END_CYC
IF($check = 1)
   if_pixel_in(60,80,1340,680,5263559)
      lclick($_return1,$_return2)
      wait(1)
   end_if
ELSE
   for($var,$var < 20)
      keypress(#space)
   END_CYC
   wait(2)
END_IF

getscreen
if_PIXEL_IN (300,140,1120,670,15128777)
   LCLICK($_return1,$_return2)
   wait(1)
end_if
« Last Edit: January 25, 2014, 03:04:59 PM by Крис Тинка »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: параметр "goto"
« Reply #6 on: January 25, 2014, 03:17:50 PM »
Будет ли это работать вот так? Нужно он искал 2 и\или 3 картинки

Нет, вот так будет.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, 1300, 700, "1.bmp")
   lclick($_return1,$_return2)
end_if
move(1130,235)
wait(1)

getscreen
if_picture_in(0,0,1300,700,"2.bmp")
   if_pixel_in(60,80,1340,680,5263559)
      lclick($_return1,$_return2)
      wait(1)
   end_if
ELSE
   if_picture_in(130,65,1270,370,"3.bmp")
      if_pixel_in(60,80,1340,680,5263559)
         lclick($_return1,$_return2)
         wait(1)
      end_if
   else
      for($var,$var < 20)
         keypress(#space)
      END_CYC
      wait(2)
     
      getscreen
      if_PIXEL_IN (300,140,1120,670,15128777)
         LCLICK($_return1,$_return2)
         wait(1)
      end_if
   end_if
end_if

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: параметр "goto"
« Reply #7 on: January 25, 2014, 03:18:54 PM »
Нет. Вот так будет

Куда такие сложности?!

Крис Тинка

  • Активный участник
  • ***
  • Posts: 171
    • View Profile
Re: параметр "goto"
« Reply #8 on: January 25, 2014, 03:30:04 PM »
Куда такие сложности?!
Ну мне так проще, чем тройную вложенность условий рассматривать)))