Author Topic: IF_PIXEL_IN не выполняется  (Read 3188 times)

0 Members and 1 Guest are viewing this topic.

seetooday

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
IF_PIXEL_IN не выполняется
« on: November 10, 2016, 10:17:20 AM »
Подскажыте почему скрипт работает но условия  IF_PIXEL_IN (ни 1 ни 2) не выполняется??
менял цвета не изменилось
Code: (clickermann) [Select]

GETSCREEN
DBLCLICK(803,867)
OPEN:
WHILE(1)                           //GOTO
GETSCREEN
IF_PIXEL_IN(129,532,167,556,16777215)
   LCLICK($_return1, $_return2)  //ÎÒÊÐÛÒÜ ÏÐÎÃÐÀÌÌÓ
ELSE                                   //ÅÑËÈ
   GOTO(OPEN)                    //ÈÄÒÈ Ê
   WAITMS(1000)
END_IF
GETSCREEN
DBLCLICK(803,867)
$WAIT(3)
GETSCREEN
DBLCLICK(1526,994)             //ÂÛÄÅËÈÒÜ
GETSCREEN
KEYDOWN (#CTRL)                //ÊÎÏÈÐÎÂÀÒÜ
WAITMS (100)
KEYDOWN (#C)
WAITMS (100)
KEYUP (#C)
KEYUP (#CTRL)
GETSCREEN
LCLICK(1647,1002)               //ÎÏÓÑÒÈÒÜ ÂÍÈÇ
$WAIT(1)
GETSCREEN
IF_PIXEL_IN(398,290,435,300,12434877)
   LCLICK($_return1, $_return2) //ÊËÈÊ Â ÏÐÎÃÐÀÌÌÅ   
   WAITMS(1000)
END_IF
GETSCREEN
KEYDOWN (#CTRL)                //ÂÑÒÀÂÈÒÜ
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
GETSCREEN
DBLCLICK(803,867)
$WAIT(2)
GETSCREEN
DBLCLICK(1694,996)             //ÂÛÄÅËÈÒÜ  1
GETSCREEN
KEYDOWN (#CTRL)                //ÊÎÏÈÐÎÂÀÒÜ 1
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
$WAIT(1)
LCLICK(1900,1003)               //ÎÏÓÑÒÈÒÜ ÂÍÈÇ
GETSCREEN
IF_PIXEL_IN(398,351,575,367,16777215)
   LCLICK($_return1, $_return2) //ÊËÈÊ Â ÏÐÎÃÐÀÌÌÅ
   WAITMS(1000)
END_IF
GETSCREEN
KEYDOWN (#CTRL)                //ÂÑÒÀÂÈÒÜ 1
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
GETSCREEN
KEYPRESS(#TAB)                  //ÍÀÆÀÒÜ ÒÀÂ
GETSCREEN
KEYDOWN (#CTRL)                 //ÂÑÒÀÂÈÒÜ 1
WAITMS (50)                   
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
GETSCREEN
DBLCLICK(803,867)
$WAIT(2)
HALT

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #1 on: November 10, 2016, 11:45:54 AM »
примените предварительную максимальнодопустимую в вашем случае цветокоррекцию возможно цвета у вас меняются динамически.
Или сектора указаны неверно, сделайте скриншоты этих секторов, чтоб убедиться, что они совпадают с тем что вам нужно проверять.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #2 on: November 10, 2016, 12:15:03 PM »
И да, или
WHILE(1) уберите

или GOTO(OPEN) а WHILE сделать нормальным и с окончанием END_CYC


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #3 on: November 10, 2016, 12:30:41 PM »
Меня больше поражает что ты понапихал снимки GETSCREEN через каждый клик. Хоть немного думай что пишешь.

Верный скрипт
Code: (clickermann) [Select]
DBLCLICK(803,867)
WAITMS(500)

$check = 0
WHILE($check = 0) // цикл выполняется пока пиксел не будет найден
   GETSCREEN
   IF_PIXEL_IN(129,532,167,556,16777215)
      $check = 1
      LCLICK($_return1, $_return2)  //ОТКРЫТЬ ПРОГРАММУ
      WAITMS(500)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

DBLCLICK(803,867)
$WAIT(3)

DBLCLICK(1526,994)             //ВЫДЕЛИТЬ
WAITMS(500)

KEYDOWN (#CTRL)                //КОПИРОВАТЬ
WAITMS (100)
KEYDOWN (#C)
WAITMS (100)
KEYUP (#C)
KEYUP (#CTRL)
WAITMS(500)

LCLICK(1647,1002)               //ОПУСТИТЬ ВНИЗ
$WAIT(1)

GETSCREEN
IF_PIXEL_IN(398,290,435,300,12434877)
   LCLICK($_return1, $_return2) //КЛИК В ПРОГРАММЕ
   WAITMS(1000)
END_IF

KEYDOWN (#CTRL)                //ВСТАВИТЬ
WAITMS (100)
KEYDOWN (#V)
WAITMS (100)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(500)

DBLCLICK(803,867)
$WAIT(2)

DBLCLICK(1694,996)             //ВЫДЕЛИТЬ  1
WAITMS(500)

KEYDOWN (#CTRL)                //КОПИРОВАТЬ 1
WAITMS (50)
KEYDOWN (#C)
WAITMS (50)
KEYUP (#C)
KEYUP (#CTRL)
$WAIT(1)

LCLICK(1900,1003)               //ОПУСТИТЬ ВНИЗ
WAIT(1)

GETSCREEN
IF_PIXEL_IN(398,351,575,367,16777215)
   LCLICK($_return1, $_return2) //КЛИК В ПРОГРАММЕ
   WAITMS(1000)
END_IF

KEYDOWN (#CTRL)                //ВСТАВИТЬ 1
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(500)

KEYPRESS(#TAB)                  //НАЖАТЬ ТАВ
WAITMS(500)

KEYDOWN (#CTRL)                 //ВСТАВИТЬ 1
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS(500)

DBLCLICK(803,867)
$WAIT(2)
HALT

seetooday

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #4 on: November 10, 2016, 12:50:18 PM »
Спасибо. Исправили так как нужно.

Золотой

  • Оплот сообщества
  • ****
  • Posts: 312
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #5 on: November 10, 2016, 01:40:57 PM »
Не перестаю удивляться людям. Утверждает, что
... скрипт работает ...
а потом неожиданно
Спасибо. Исправили так как нужно.
у тебяж работало?! :o
И типа после этой правки пиксели стали находиться? :-\
 
« Last Edit: November 10, 2016, 01:43:14 PM by Золотой »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #6 on: November 10, 2016, 02:30:39 PM »
А вдруг они в начале находились... Там же структура нарушена была, хз что могло происходить.
Могло один-два раза найтись, а потом несколько десятков тысяч GOTO выскакивающих из цикла и всё... привет, пошло в разнос.


seetooday

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #7 on: November 10, 2016, 08:23:18 PM »
Да работало, но клик делался вне зависимости от цвета
(GOTO делал для того чтоб возврящалось в определенное место скрипта в случаии ELSE верно?)

Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #8 on: November 23, 2016, 03:50:52 AM »
Там же структура нарушена была, хз что могло происходить.
Могло один-два раза найтись, а потом несколько десятков тысяч GOTO выскакивающих из цикла и всё... привет, пошло в разнос.
Таак, а отсюда по-подробнее!)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #9 on: November 23, 2016, 01:48:18 PM »
Таак, а отсюда по-подробнее!)
Это так, страшилки.
Не нарушай структуру скрипта и всё будет нормально. Циклы без окончания это не хухры-мухры.


Cleoss

  • Активный участник
  • ***
  • Posts: 260
  • Автоматизируй это!
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #10 on: November 23, 2016, 02:07:41 PM »
Это так, страшилки.
Не нарушай структуру скрипта и всё будет нормально. Циклы без окончания это не хухры-мухры.
Фух, перевёл дух, как же легко нас оболванить!)) А вообще я когда пишу структуры, то стараюсь всегда следить за наличием всех элементов конструкции и правильностью вложенности, ну могу конечно пропустить, но лишь по невнимательности.

Единственно, чем я пока что страдаю, так это гоуту в ифпикинах с переходом на начало цикла в случае фейла при поиске картинки, авось когда-нибудь дойдут руки поизучать эту тему тщательнее, как говорил Джонни, чтоб сразу учиться программировать правильным способом. Просто не так часто сажусь писать скрипты, но многие скрипты у меня работают как-то через раз, и это меня смущает, а так бы и не стыдно было выложить сюда для общего пользования, но их нужно допиливать тесаком ещё))

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: IF_PIXEL_IN не выполняется
« Reply #11 on: November 23, 2016, 09:54:13 PM »
насчет "готов" - в первый же день, когда я нашел столь чудесную прогу "кликерман", в программировании я был нубом, это слабо сказать  :D . насчет форума я еще и не знал, и не догадавался. да и скачал прогу гдето на стороне. опереться было неначто. полез смотреть в справку. бегло просмотрел все функции и процедуры, много конечноже не понимал. но самое интересное мне показалось - это GOTO. счастью не было предела, думаю, щяс как запилю мега ботов, на все случаи жизни. естественно, это были только мечты. но гото работал!!!! и делал так, как и задумывалось. через пару дней нашел форум, и не пойми почему, почти сразу наткнулся на тему http://crapware.aidf.org/forum/index.php?topic=49.0 . тут то мне стало както не посебе. а там еще и увлекательная ссылка http://lurkmore.to/GOTO . после прочтения всего этого, я НИРАЗУ не использовал эту обманку.  как этого не хотелось, всегда искал путь обхода, хоть иногда это увеличивало код в размерах.

Такчто данную тему, я думаю, нужно прикрепить в верху ветки. чтоб все новички (или хоть часть их) взглянули туда. на многих я думаю данная тема могла бы както повлиять.