Author Topic: Поток функция внутри потока =)  (Read 1731 times)

0 Members and 1 Guest are viewing this topic.

Fazi

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Поток функция внутри потока =)
« on: June 22, 2020, 03:40:04 PM »
Привет всем ;)
Подскажите пожалуйста как мне можно поступить.
У меня в потоке ищет картинку раз в 2 секунды, после того как обнаружил эту картинку, нужно на неё навести перед тем как нажать.
Чтобы навести я использую скрипт от Vint. Но проблема в том что строка с наведением мышки "m_move($_return1, $_return2)" перед тем как нажать игнорируется, и я могу попасть в баню. Я пробовал изваращатся с командой (goto), но строка на которую я ссылался в случае если поток найдёт картинку выполнялась в любом случае, а мне нужно чтобы она выполнялась только если картинка найдётся...

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(RND(13,16)) // çàäåðæêà ïðè äâèæåíèè ïî òî÷êàì ñëó÷àéíàÿ ñêîðîñòü
   END_CYC   
END_SUB
 
SUB(m_move,$M_X,$M_Y)
   $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

THREAD(start)
   GETSCREEN
   COLORMODE(5)
   IF_PICTURE_IN (548,459, 1111,725, "Авто.bmp", -1, 85) //***1
      m_move($_return1, $_return2)
      WAITMS(50)
      lclick($_return1, $_return2)
      waitms(50)
        ELSE
      logwrite("Авто.bmp не найдена.")
   END_IF //
   wait(2)
END_THREAD





4.У.В.@.К

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Поток функция внутри потока =)
« Reply #1 on: June 22, 2020, 04:51:55 PM »
Привет.
Подпрограмма  должна быть описана в том-же потоке, в котором будет вызываться.

Fazi

  • Зашел в гости
  • *
  • Posts: 10
    • View Profile
Re: Поток функция внутри потока =)
« Reply #2 on: June 22, 2020, 05:59:51 PM »
Привет.
Подпрограмма  должна быть описана в том-же потоке, в котором будет вызываться.
Дай Бог тебе всегда быть счастливым)))))