Author Topic: не могу понять что не так и гото тож не знаю правельно ли :-\  (Read 1959 times)

0 Members and 1 Guest are viewing this topic.

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
именно в таком виде делает один проход все делает идеально и быстро как нада воопшем но на другой круг не идет просто где то застывает и все  :-[ я уже логов везде натыкал ни один ничего не показывает просто лог последний не нашло и все больше пусто
Code: (clickermann) [Select]
go:
GETSCREEN
colormode(7)
IF_PICTURE_IN (256,77, 1252,724, "hod.bmp", -1, 80)
   LOGWRITE ("наш ход2")
   goto(boy)
ELSE
   LOGWRITE ("не нашло")
   
   
END_IF
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




GETSCREEN
colormode(7)
IF_PICTURE_IN (256,77, 1252,724, "arena.bmp", -1, 100)
   LOGWRITE ("заходим на арену")
   
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF



WAITMS(500)
$time = $_time_y + 30
WHILE($time > $_time_y)
   GETSCREEN
   colormode(7)
   IF_PICTURE_IN (256,77, 1252,724, "galochka.bmp", -1, 90)
      $time_y = 0
     
     
     
      LOGWRITE ("все гут")
      IF_PICTURE_IN (256,77, 1252,724, "boy.bmp", -1, 100)
         LOGWRITE ("в бой")
         m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
         
         lclick($_xmouse,$_ymouse)
         
         WAITMS(500)
         $time = $_time_t + 30
         WHILE($time > $_time_t)
            GETSCREEN
            colormode(7)
            IF_PICTURE_IN (256,77, 1252,724, "hod.bmp", -1, 80)
               $time_t = 0
               goto(boy)
            ELSE
               LOGWRITE ("не гут")
               WAITMS(50)
            END_IF
         END_CYC
         
      END_IF
      WAITMS(50)
   END_IF
   
ELSE
   LOGWRITE ("ждем ход")
   WAITMS(50)
END_IF
END_CYC



goto(go)

boy:
LOGWRITE ("бой")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "plevok.bmp", -1, 100)
LOGWRITE ("закл")

m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
lclick($_xmouse,$_ymouse)
WAITMS(500)
END_IF
LOGWRITE ("бой2")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg1.bmp", -1, 100)
LOGWRITE ("зак21")

m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
lclick($_xmouse,$_ymouse)
WAITMS(500)
END_IF
LOGWRITE ("бой3")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg2.bmp", -1, 100)
LOGWRITE ("зак3")

m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
lclick($_xmouse,$_ymouse)
WAITMS(500)
END_IF
LOGWRITE ("бой4")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg3.bmp", -1, 100)
LOGWRITE ("зак4")

m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
lclick($_xmouse,$_ymouse)
WAITMS(500)
END_IF
LOGWRITE ("бой5")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg4.bmp", -1, 100)
LOGWRITE ( "зак 5")

m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
lclick($_xmouse,$_ymouse)
WAITMS(500)
END_IF
LOGWRITE ("бой6")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg5.bmp", -1, 100)
LOGWRITE ("зак6")

m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
lclick($_xmouse,$_ymouse)
WAITMS(500)
END_IF


goto(go)


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Неверная конструкция условий, выпрыгивание из цикла goto(boy), оно там не нужно!
что еще за $_time_y $time_y = 0 $time_t = 0 ? Ты вообще въезжаешь что пишешь?

Смысл таймера такой
$time = $_time_t + 30 // Здесь мы к текущему времени Unix $_time_t в секундах прибавляем 30 и записываем это в $time
WHILE($time > $_time_t) // в результате цикл сравнивая переменную $time и текущее время $_time_t работает если значение переменной больше.

Если в цикле написать $time = 0 то при следующей проверке условия цикла переменная $time будет меньше $_time_t и цикл пропускается, выполнение пойдет после цикла.

Исправленный скрипт
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


GETSCREEN
colormode(7)
IF_PICTURE_IN (256,77, 1252,724, "hod.bmp", -1, 80)
   LOGWRITE ("наш ход2")
ELSE
   LOGWRITE ("не нашло")
   IF_PICTURE_IN (256,77, 1252,724, "arena.bmp", -1, 100)
      LOGWRITE ("заходим на арену")
     
      m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
      lclick($_xmouse,$_ymouse)
      WAITMS(500)
   END_IF
   
   WAITMS(500)
   $time = $_time_t + 30
   WHILE($time > $_time_t)
      GETSCREEN
      colormode(7)
      IF_PICTURE_IN (256,77, 1252,724, "galochka.bmp", -1, 90)
         $time = 0
         LOGWRITE ("все гут")
         IF_PICTURE_IN (256,77, 1252,724, "boy.bmp", -1, 100)
            LOGWRITE ("в бой")
            m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
            lclick($_xmouse,$_ymouse)
            WAITMS(500)
           
            $time = $_time_t + 30
            WHILE($time > $_time_t)
               GETSCREEN
               colormode(7)
               IF_PICTURE_IN (256,77, 1252,724, "hod.bmp", -1, 80)
                  $time = 0
               ELSE
                  LOGWRITE ("не гут")
                  WAITMS(50)
               END_IF
            END_CYC
           
         END_IF
         WAITMS(50)
      ELSE
         LOGWRITE ("ждем ход")
         WAITMS(50)
      END_IF
   END_CYC
END_IF

LOGWRITE ("бой")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "plevok.bmp", -1, 100)
   LOGWRITE ("закл")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой2")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg1.bmp", -1, 100)
   LOGWRITE ("зак21")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой3")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg2.bmp", -1, 100)
   LOGWRITE ("зак3")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой4")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg3.bmp", -1, 100)
   LOGWRITE ("зак4")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой5")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg4.bmp", -1, 100)
   LOGWRITE ( "зак 5")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой6")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg5.bmp", -1, 100)
   LOGWRITE ("зак6")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

« Last Edit: March 24, 2017, 01:19:31 PM by Oraven »

Зануда

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
да, там же у тебя был возврат. Можно конечно это в еще один цикл завернуть но простой переход к началу через гото тоже сгодится. Заметь я прыгаю не из цикла а из условия. Если цикл выше завершился $time = 0 то выполнение пойдет ниже к LOGWRITE ("бой") но если просто время истекло то в переменной будет не 0 и по условию будет возврат к GO:

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

GO:

GETSCREEN
colormode(7)
IF_PICTURE_IN (256,77, 1252,724, "hod.bmp", -1, 80)
   LOGWRITE ("наш ход2")
ELSE
   LOGWRITE ("не нашло")
   IF_PICTURE_IN (256,77, 1252,724, "arena.bmp", -1, 100)
      LOGWRITE ("заходим на арену")
     
      m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
      lclick($_xmouse,$_ymouse)
      WAITMS(500)
   END_IF
   
   WAITMS(500)
   $time = $_time_t + 30
   WHILE($time > $_time_t)
      GETSCREEN
      colormode(7)
      IF_PICTURE_IN (256,77, 1252,724, "galochka.bmp", -1, 90)
         $time = 0
         LOGWRITE ("все гут")
         IF_PICTURE_IN (256,77, 1252,724, "boy.bmp", -1, 100)
            LOGWRITE ("в бой")
            m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
            lclick($_xmouse,$_ymouse)
            WAITMS(500)
           
            $time = $_time_t + 30
            WHILE($time > $_time_t)
               GETSCREEN
               colormode(7)
               IF_PICTURE_IN (256,77, 1252,724, "hod.bmp", -1, 80)
                  $time = 0
               ELSE
                  LOGWRITE ("не гут")
                  WAITMS(50)
               END_IF
            END_CYC
           
         END_IF
         WAITMS(50)
      ELSE
         LOGWRITE ("ждем ход")
         WAITMS(50)
      END_IF
   END_CYC
   IF($time ! 0)
      GOTO(GO)
   END_IF
END_IF

LOGWRITE ("бой")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "plevok.bmp", -1, 100)
   LOGWRITE ("закл")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой2")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg1.bmp", -1, 100)
   LOGWRITE ("зак21")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой3")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg2.bmp", -1, 100)
   LOGWRITE ("зак3")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой4")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg3.bmp", -1, 100)
   LOGWRITE ("зак4")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой5")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg4.bmp", -1, 100)
   LOGWRITE ( "зак 5")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

LOGWRITE ("бой6")
GETSCREEN
colormode(7)
IF_PICTURE_IN (379,515, 1073,657, "sneg5.bmp", -1, 100)
   LOGWRITE ("зак6")
   m_move($_return1+rnd(-9,9), $_return2+rnd(-9,9))
   lclick($_xmouse,$_ymouse)
   WAITMS(500)
END_IF

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
спасибо за разъяснение  с гото :)