Author Topic: 1 раз в зацыкленом скрыпте)  (Read 2220 times)

0 Members and 1 Guest are viewing this topic.

дед иван

  • Освоившийся
  • **
  • Posts: 53
    • View Profile
1 раз в зацыкленом скрыпте)
« on: October 25, 2015, 08:02:36 PM »
ещо один вопрос как написать чтобы при нахождении картинки в зацыкленом скрипте действия выполнялось только 1 первый раз когда нашло дальше игнорило так как картинка появляетса нужно сделать действия и все но после этого картинка остаетса  то исть когда оно идет по кругу токажен раз делает действия то которое нужно только раз)!

допишыте то что нужно!
 
Code: (clickermann) [Select]
GETSCREEN
   IF_PICTURE_IN (284,335, 371,374, "odat.bmp", -1, 90)
     
      SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
         $MOVE_Start_X = $_xmouse
         $MOVE_Start_Y = $_ymouse
         $MOVE_X = $MOVE_Start_X
         $MOVE_Y = $MOVE_Start_Y
         
         $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
         $MOVE_step = ($dist-1)/INT(SQRT($dist))
         $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
         $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
         
         FOR($MOVE_i=0, $MOVE_i < INT($MOVE_step))
            $MOVE_X = $MOVE_X + $MOVE_X_step
            $MOVE_Y = $MOVE_Y + $MOVE_Y_step
            MOVE(INT($MOVE_X) + RND(-2,2), INT($MOVE_Y) + RND(-2,2))
            WAITMS($rnwait)
         END_CYC
      END_SUB
     
      SUB(m_move,$M_X,$M_Y)
         $rnwait = RND(6,15)
         $MOVE_MID_X = INT(($_xmouse+$M_X)/2)
         $MOVE_MID_Y = INT(($_ymouse+$M_Y)/2)
         $otx = INT(ABS($_xmouse - $M_X) * 0.12)
         $oty = INT(ABS($_ymouse - $M_Y) * 0.12)
         mouse_move($MOVE_MID_X+RND(-$otx,$otx), $MOVE_MID_Y+RND(-$oty,$oty))
         mouse_move($M_X,$M_Y)
         MOVE($M_X,$M_Y)
      END_SUB
      LOGCLEAR
     
      m_move($_return1+RND(-2,2),$_return2+RND(-2,2))
      DBLCLICK($_xmouse,$_ymouse)
   end_if
« Last Edit: October 25, 2015, 08:13:03 PM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: 1 раз в зацыкленом скрыпте)
« Reply #1 on: October 25, 2015, 08:12:31 PM »
Code: (clickermann) [Select]
// Подпрограммы вкладывать кудабы то нибыло нельзя!
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
   $MOVE_Start_X = $_xmouse
   $MOVE_Start_Y = $_ymouse
   $MOVE_X = $MOVE_Start_X
   $MOVE_Y = $MOVE_Start_Y
   
   $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
   $MOVE_step = ($dist-1)/INT(SQRT($dist))
   $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
   $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
   
   FOR($MOVE_i=0, $MOVE_i < INT($MOVE_step))
      $MOVE_X = $MOVE_X + $MOVE_X_step
      $MOVE_Y = $MOVE_Y + $MOVE_Y_step
      MOVE(INT($MOVE_X) + RND(-2,2), INT($MOVE_Y) + RND(-2,2))
      WAITMS($rnwait)
   END_CYC
END_SUB

SUB(m_move,$M_X,$M_Y)
   $rnwait = RND(6,15)
   $MOVE_MID_X = INT(($_xmouse+$M_X)/2)
   $MOVE_MID_Y = INT(($_ymouse+$M_Y)/2)
   $otx = INT(ABS($_xmouse - $M_X) * 0.12)
   $oty = INT(ABS($_ymouse - $M_Y) * 0.12)
   mouse_move($MOVE_MID_X+RND(-$otx,$otx), $MOVE_MID_Y+RND(-$oty,$oty))
   mouse_move($M_X,$M_Y)
   MOVE($M_X,$M_Y)
END_SUB


IF($action = 0)
   GETSCREEN
   IF_PICTURE_IN (284,335, 371,374, "odat.bmp", -1, 90)
      $action = 1 // отключаем условие
      m_move($_return1+RND(-2,2),$_return2+RND(-2,2))
      DBLCLICK($_xmouse,$_ymouse)
   end_if
END_IF

дед иван

  • Освоившийся
  • **
  • Posts: 53
    • View Profile
Re: 1 раз в зацыкленом скрыпте)
« Reply #2 on: October 25, 2015, 08:14:48 PM »
спасибо а почему нельзя вкладывать у меня так скрипт на 1500 строк работает и ниче или если пределать будет лучше работать??7

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: 1 раз в зацыкленом скрыпте)
« Reply #3 on: October 25, 2015, 08:24:10 PM »
спасибо а почему нельзя вкладывать у меня так скрипт на 1500 строк работает и ниче или если пределать будет лучше работать??7

Между "работает" и "ты думаешь что работает" есть разница...

дед иван

  • Освоившийся
  • **
  • Posts: 53
    • View Profile
Re: 1 раз в зацыкленом скрыпте)
« Reply #4 on: October 25, 2015, 08:25:43 PM »
и как проверить если я точно вижу что мышка передвигаетса реалистично и только когда картинка найдена

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: 1 раз в зацыкленом скрыпте)
« Reply #5 on: October 26, 2015, 09:48:54 AM »
спасибо а почему нельзя вкладывать у меня так скрипт на 1500 строк работает и ниче или если пределать будет лучше работать??7

Будет лучше, если не заниматься самодеятельностью.
Ты можешь делать всё что душе угодно. Но только в определённое время после добавления маленького функционала в виде невинного кода, часть может перестать работать. И ты будешь тут создавать сотню параллельных тем "АААА... не работает. Ошибка в программе...".
Это не шутка, так происходит постоянно. Хоть здесь хоть в группе ВК.
Сначало это проявляется: "а чё, оно же вроде работает, зачем мне комментарии помечать комментариями". Или "откуда хочу оттуда и выпрыгиваю по GOTO хоть из 100 вложенных циклов, подпрограмм и впрыгиваю в другой поток. А потом "работает вроде но всё неправильно... у вас, помогите, исправьте саму программу".  ;D
« Last Edit: October 26, 2015, 09:51:29 AM by Vint »