Author Topic: Скрипт-кликер по цвету в пикселе (работает не так где хотелось()  (Read 25055 times)

0 Members and 1 Guest are viewing this topic.

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
так правильно?     

 
 $K_SPEED = 2
  FOR($a,$a<7)
    LCLICK(1062,618)
 END_CYC

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Ну и зачем тут $K_SPEED = 2 ?
Для последней версии нужно указать параметр начального значения. Иначе на втором круге скрипта этот цикл не будет работать. Переменная $a так и останется равна 7
Code: (clickermann) [Select]
FOR($a=0,$a<7)
   LCLICK(1062,618)
   WAITMS(50)
END_CYC
и не забывай про задержки.

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
Спасибо большое Вам

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
есть еще вопрос
как прописать плавное перемещение курсора

move(100,100)
wait(1)
move(1500,800)

спасибо :-)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Для этого написан целый скрипт

Code: (clickermann) [Select]
// подпрограмма обязательно выше вызова
SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
   $MOVE_SPEED = 3  // множитель скорости
   
   $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_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
   
   IF($MOVE_SPEEDVAR < 1)
      $MOVE_SPEEDVAR = 1
   END_IF
   
   $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
   $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(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
      WAITMS(1)
   END_CYC
   
   MOVE($MOVE_END_X, $MOVE_END_Y) //Передвинуть окончательно в заданную точку
END_SUB




// образец строки MOVE
mouse_move(215,224) // двигаем мышь сюда
WAITMS(500)

mouse_move(1205,294)  // туда
WAITMS(500)

mouse_move(1347,1016) // и еще раз
WAITMS(500)

HALT // стоп

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
Спасибо Вам)) у меня еще вопрос чайника  :) на каком языке идет программирование или где можно почитать букварь ?))

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
На языке кликермана, и справка идет в комплекте.

andrei

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

Oraven

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

http://crapware.aidf.org/forum/index.php?topic=1031.0

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
и у меня еще вопрос, идет поиск картинки по такому сценарию
        GETSCREEN
    IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 100) // ищем 3
       LCLICK($_return1, $_return2)
       WAIT(2)
    ELSE // если нет
       IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100) // то ищем 2
          LCLICK($_return1, $_return2)
          WAIT(2)
       ELSE // если нет
          IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100) // то ищем 1
             LCLICK($_return1, $_return2)
             WAIT(3)
          END_IF
       END_IF
    END_IF
    WAITMS(50)



как сделать что бы исполнение скрипта дальше переходило к одному из трех сценариев
скажем так если нашло картинку №1 что бы перешло к строке 100
если №2 то к 200
если номер 3 то к 300
   и еще если перешло к стоке 100 оно далжно выполняться до 200, а дальше пропустить второй и третий сценарий и продолжить с 400 строки
спасибо
 

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Зачем прыгать на какие то строки? Вставь код непосредственно в условия.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "3.bmp", -1, 100) // ищем 3
   LCLICK($_return1, $_return2)
   WAIT(2)
   // здесь сценарий 3
ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "2.bmp", -1, 100) // то ищем 2
      LCLICK($_return1, $_return2)
      WAIT(2)
      // здесь сценарий 2
   ELSE
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100) // то ищем 1
         LCLICK($_return1, $_return2)
         WAIT(3)
         // здесь сценарий 1
      END_IF
   END_IF
END_IF
WAITMS(50)

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
Еще раз  спасибо))

andrei

  • Освоившийся
  • **
  • Posts: 49
    • View Profile
Доброй ночи..  У меня возник  еще вопрос.  Скажем есть  сценарий в котором  на 20 строке происходит  перезагрузка  браузерара , на 50 начинается  цикл  по поиску  пикселя.  Вопрос как сделать  так,  Что бы если за 50 циклов  пиксель  не был найден, цикл  остановился и выполнение скрипта  перешло  На 20 строку, то есть к перезагрузке браузера.  Это нужно  если в игре пошел сбой или вылезла  реклама,  то там и за 1000 проходов не будет найден пиксель.
Спасибо.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
reload: // перезагрузка


// поиск пикселя
$time = $_time_t + 60 // таймер на 60 секунд
WHILE($time > $_time_t)
   GETSCREEN
   IF_PIXEL_IN(100,100, 500,500, 255)
      $time = 0
   ELSE
      WAITMS(50)
   END_IF
END_CYC
IF($time ! 0)
   GOTO(reload) // если не найдено за 60 секунд возвращаемся к метке
END_IF