Author Topic: Чайнику в помощь  (Read 4061 times)

0 Members and 3 Guests are viewing this topic.

MP99

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Чайнику в помощь
« on: July 21, 2015, 02:45:40 PM »
Доброе время суток всем
Ребята помогите чайнику (ну не шарю я как это сделать) можете даже моськой ткнуть где подробно почитать можно
хотелось бы получить вот на такую задачку скрипт для кликера
******************************************
игровое поле (навсякий случай) на мониторе с координатами:
нижний левый угол 300, 779
верхний левый угол 300, 140
верхний правый угол 1096, 140
нижний правый угол 1096, 779
жмем на координаты (нажатие левой клавиши мыши) 915, 270 жмем (держим) 1 сек.
ждем появление красного цвета 2370797
в квадрате с координатами:
нижний левый угол 693, 265
верхний левый угол 693, 231
верхний правый угол 714, 231
нижний правый угол 714, 265
как появился красный цвет 2370797 в заданном квадрате
жмем левую кнопку мыши в координатах 950, 428
и держим пока в этих координатах 950, 428 пиксел не станет белого цвета 1568734
как появился заданный цвет в заданных координатах
жмем левую кнопку мыши в координатах 898, 637
и далее продолжаем с начала
жмем - ждем - жмем и держим - жмем и т.д.
********************************************************
может я что то лишнее написал, а может что то нужное упустил  :-[, не обессудьте
заранее спасибо  :)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Чайнику в помощь
« Reply #1 on: July 21, 2015, 02:57:55 PM »
Code: (clickermann) [Select]
LDOWN(915, 270)
WAITMS(1000)
LUP(915, 270)
WAITMS(100)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(693,231, 714,265, 2370797)
      $check = 1
      LDOWN(950,428)
      GETSCREEN
      WHILE(PXL (950, 428) ! 1568734)
         WAITMS (50)
         GETSCREEN
      END_CYC
      WAITMS (50)
      LUP(950,428)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

LCLICK(898, 637)
WAITMS(500)

MP99

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Чайнику в помощь
« Reply #2 on: July 21, 2015, 03:38:46 PM »
ой, ой, маленькая ошибка вылазит
между строками
- жмем на координаты (нажатие левой клавиши мыши) 915, 270 жмем (держим) 1 сек.
- ждем появление красного цвета 2370797
надо добавить
- не производить ни какие действия 2 сек

MP99

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Чайнику в помощь
« Reply #3 on: July 21, 2015, 03:59:50 PM »
можно еще добавить
не может найти красный цвет, хотя он точно там появляется изредка и именно с этим кодом

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Чайнику в помощь
« Reply #4 on: July 21, 2015, 06:01:11 PM »
ой, ой, маленькая ошибка вылазит
между строками
- жмем на координаты (нажатие левой клавиши мыши) 915, 270 жмем (держим) 1 сек.
- ждем появление красного цвета 2370797
надо добавить
- не производить ни какие действия 2 сек

строка 4
Code: (clickermann) [Select]
WAITMS(100)меняй на
Code: (clickermann) [Select]
WAITMS(2000)
не может найти красный цвет, хотя он точно там появляется изредка и именно с этим кодом
Как цвет определял? И откуда знаешь что появляется?
Код правильный, цвет - нет. Скорее всего при наведении мыши идёт подсветка/изменение цвета из-за чего взял не тот цвет. Бери со скриншота.
Или покажи пример этого участка в png или bmb


MP99

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Чайнику в помощь
« Reply #5 on: July 21, 2015, 06:50:49 PM »
да, да, спасибо большое, я стал чуть вникать - перечитал много постов и разобрался
единственное что хотелось бы еще уточнить (ни где не нашел, или не встретилось пока)
в 9 строке
IF_PIXEL_IN(693,231, 714,265, 2370797)
как сделать, чтобы искал не цвет 2370797, а если изменится на любой другой, отличный от 2370797
и что означает команда GETSCREEN

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Чайнику в помощь
« Reply #6 on: July 21, 2015, 08:43:18 PM »
Все команды описаны в справке!

Изменение переменой $check приведет к прерыванию цикла.
Code: (clickermann) [Select]
$check = 0 // присваиваем переменной 0
WHILE($check = 0) // цикл проверяет условие, если $check равна 0 то выполняется
   GETSCREEN
   IF_PIXEL_IN(693,231, 714,265, 2370797)
   // здесь код выполнится если пиксел найден
   ELSE
   // здесь код выполнится если пиксел не найден
   END_IF
END_CYC

Поменяем код местами, и в результате если пиксел 2370797 найден то ничего не будет кроме 50 мс задержки, но если не найден тогда выполнится код с кликами и цикл WHILE($check = 0) будет прерван.
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(693,231, 714,265, 2370797)
      WAITMS(50)
   ELSE
      $check = 1 // прерываем цикл
      LDOWN(950,428)
      GETSCREEN
      WHILE(PXL (950, 428) ! 1568734)
         WAITMS (50)
         GETSCREEN
      END_CYC
      WAITMS (50)
      LUP(950,428)
      WAITMS(100)
   END_IF
END_CYC
« Last Edit: July 21, 2015, 08:53:09 PM by Oraven »

MP99

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Чайнику в помощь
« Reply #7 on: July 22, 2015, 11:04:08 AM »
Oraven, Vint огромное спасибо, за помощь
вопросов больше нет

MP99

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Чайнику в помощь
« Reply #8 on: July 23, 2015, 12:54:00 PM »
Доброе время суток, всем.
И все таки возник вопрос, который самому не получается решить
Code: (clickermann) [Select]
LDOWN(809, 277)
WAITMS(1000)
LUP(809, 277)
WAITMS(1000)
 
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(1154,21, 1155,21, 65280) //находим цвет 65280 по координатам
      $check = 1
      LDOWN(950,428)
//***********************************************************
// вот отсюда по моему наступает ступор
// хотел чтобы после нахождения цвета 65280 было кратковременное нажатие левой кнопки мыши
// далее если цвет 2432274 находится по координатам 1047,570
// то левая кнопка мыши жмет до тех пор пока не будет найден цвет 15658734
// в строке, которая далее. WHILE(PXL (926, 440) ! 15658734)
// если цвет 2432274 пропал из координат 1047,570 то переходим в режим ожидания
// поиска цвета 65280 т.е. на строку № 9
// вставлял сюда вот это, но не получается
                 WAITMS (50)
                   IF_PIXEL_IN(1047,570, 1047,570, 2432274) // находим цвет 2432274
                           LDOWN(950,428)  // жмем левую кнопку мыши
                           GETSCREEN
                   ELSE
                           WHILE(PXL (926, 440) ! 15658734)
                           WAITMS(50)
                   END_IF
//*************************************************
      GETSCREEN
      WHILE(PXL (926, 440) ! 15658734)
         WAITMS (50)
         GETSCREEN
      END_CYC
      WAITMS (50)
      LUP(950,428)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
 
LCLICK(898, 637)
WAITMS(500)
помогите пожалуйста, что то я совсем запутался
на всякий случай, это изначальный скрипт, который работает
Code: (clickermann) [Select]
LDOWN(809, 277)
WAITMS(1000)
LUP(809, 277)
WAITMS(1000)
 
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PIXEL_IN(1154,21, 1155,21, 65280) //находим цвет 65280 по координатам
      $check = 1
      LDOWN(950,428)
      GETSCREEN
      WHILE(PXL (926, 440) ! 15658734)
         WAITMS (50)
         GETSCREEN
      END_CYC
      WAITMS (50)
      LUP(950,428)
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC
 
LCLICK(898, 637)
WAITMS(500)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Чайнику в помощь
« Reply #9 on: July 23, 2015, 01:33:59 PM »
Code: (clickermann) [Select]
LDOWN(809, 277)
WAITMS(1000)
LUP(809, 277)
WAITMS(1000)

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF(PXL(1154,21) = 65280) //находим цвет 65280 по координатам
      $check = 1
      LCLICK(950,428)
      WAITMS (50)
      GETSCREEN
      IF(PXL(1047,570) = 2432274) // находим цвет 2432274
         LDOWN(950,428)  // жмем левую кнопку мыши
         GETSCREEN
         WHILE((PXL(926,440) ! 15658734)&(PXL(1047,570) = 2432274))
            WAITMS (50)
            GETSCREEN
         END_CYC
         IF(PXL(1047,570) ! 2432274)
            $check = 0
         END_IF
         WAITMS (50)
         LUP(950,428)
         WAITMS(100)
      END_IF
   ELSE
      WAITMS(50)
   END_IF
END_CYC

LCLICK(898, 637)
WAITMS(500)

MP99

  • Зашел в гости
  • *
  • Posts: 7
    • View Profile
Re: Чайнику в помощь
« Reply #10 on: July 25, 2015, 03:30:53 PM »
Добрый день, всем  :)
Уважаемый Oraver, извиняюсь что сразу не ответил, был оффлайн
в Вашем скрипте что то не сходится (не работает, как хотелось бы) и по моему дело не в точности кода цвета
Ваша версия скрипта с моими комментариями
Code: (clickermann) [Select]
LDOWN(809, 277)
WAITMS(1000)
LUP(809, 277)
WAITMS(1000)
 
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF(PXL(1154,21) = 65280) //находим цвет 65280 по координатам
      $check = 1
      LCLICK(950,428)
      WAITMS (50)
      GETSCREEN
      IF(PXL(1047,570) = 2432274) // находим цвет 2432274
         LDOWN(950,428)  // жмем левую кнопку мыши
         GETSCREEN
// здесь по моему не точность, скорее всего вы не поняли что я хотел объяснить
// извиняюсь за свое вводящеевзаблуждение объяснение, попробую еще раз поточнее
//********************************************************
           WHILE((PXL(926,440) ! 15658734)&(PXL(1047,570) = 2432274))
//********************************************************
// вместо 20-ой строки хотелось бы:
// хотел чтобы после нахождения цвета 65280, в строке 9, было кратковременное нажатие левой кнопки мыши
// далее если цвет 2432274 находится (присутствует) по координатам 1047,570
// то левая кнопка мыши жмет до тех пор пока не будет найден цвет 15658734,
// как найдется, то отпускаем левую кнопку мыши и выполняем вот это до конца (это работает)
//      GETSCREEN
//      WHILE(PXL (926, 440) ! 15658734)
//         WAITMS (50)
//         GETSCREEN
//      END_CYC
//      WAITMS (50)
//      LUP(950,428)
//      WAITMS(100)
//   ELSE
//      WAITMS(50)
//   END_IF
// END_CYC
//
// LCLICK(898, 637)
// WAITMS(500)
// при это если цвет 2432274 был, но пропал, а цвет 15658734 так и не появился, то переходим на $chek = 0
// т.е. поиска цвета 65280 т.е. на строку № 9

            WAITMS (50)
            GETSCREEN
         END_CYC
         IF(PXL(1047,570) ! 2432274)
            $check = 0
         END_IF
         WAITMS (50)
         LUP(950,428)
         WAITMS(100)
      END_IF
   ELSE
      WAITMS(50)
   END_IF
END_CYC
 
LCLICK(898, 637)
WAITMS(500)
извините меня еще раз, помогите поправить скрипт  :'(

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Чайнику в помощь
« Reply #11 on: July 25, 2015, 07:12:14 PM »
Все написано так как ты хочешь. Не работает, возможно, из за неадекватной задержки после кратковременного клика.

Code: (clickermann) [Select]
LDOWN(809, 277)
WAITMS(1000)
LUP(809, 277)
WAITMS(1000)
 
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF(PXL(1154,21) = 65280)
      $check = 1
      LCLICK(950,428) // Кратковременное нажатие
      WAITMS (500) // задержку после нужно настроить
      GETSCREEN
      IF(PXL(1047,570) = 2432274)
         LDOWN(950,428)
         GETSCREEN
         WHILE((PXL(926,440) ! 15658734)&(PXL(1047,570) = 2432274))
            WAITMS (50)
            GETSCREEN
         END_CYC
         IF(PXL(1047,570) ! 2432274)
            $check = 0
         END_IF
         WAITMS (50)
         LUP(950,428)
         WAITMS(100)
      END_IF
   ELSE
      WAITMS(50)
   END_IF
END_CYC
 
LCLICK(898, 637)
WAITMS(500)