IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(5,315))
END_IF
GETSCREEN
IF((PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
END_IF
ELSE
IF((PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
END_IF
ELSE
GETSCREEN
IF((PXL(635,404) = 0)
HALT
END_IF
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
END_IF
WAIT(2)
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
ELSE
GETSCREEN
IF((PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "Слива.bmp")
HALT
END_IF
WAIT(RND(2,10))
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(5,315))
END_IF
GETSCREEN
IF(PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
END_IF
//ELSE
IF(PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
END_IF
//ELSE
GETSCREEN
IF(PXL(635,404) = 0)
HALT
END_IF
//ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
END_IF
WAIT(2)
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
//ELSE
GETSCREEN
IF(PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
//ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "Слива.bmp")
HALT
END_IF
WAIT(RND(2,10))
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(27,35))
END_IF
GETSCREEN
IF((PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
END_IF
ELSE
IF((PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
END_IF
ELSE
GETSCREEN
IF((PXL(635,404) = 0)
HALT
END_IF
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
ELSE
GETSCREEN
IF((PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp")
HALT
END_IF
WAIT(RND(2,10))
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(27,35))
END_IF
GETSCREEN
IF((PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
END_IF
IF((PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
END_IF
GETSCREEN
IF((PXL(635,404) = 0)
HALT
END_IF
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
END_IF
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
GETSCREEN
IF((PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp")
HALT
END_IF
WAIT(RND(2,10))
IF( )
// Если верно
ELSE
// Если не верно
END_IF
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(27,35))
GETSCREEN
IF((PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
ELSE
IF(PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
ELSE
GETSCREEN
IF(PXL(635,404) = 0)
HALT
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF(PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp")
HALT
END_IF
WAIT(RND(2,10))
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(27,35))
GETSCREEN
IF((PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
ELSE
IF(PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
ELSE
GETSCREEN
IF(PXL(635,404) = 0)
HALT
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
ELSE
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(2)
ELSE
GETSCREEN
IF(PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp")
HALT
END_IF
WAIT(RND(2,10))
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(27,35))
GETSCREEN
IF((PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
ELSE
IF(PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
ELSE
GETSCREEN
IF(PXL(635,404) = 0)
HALT
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF(PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp")
HALT
END_IF
WAIT(RND(2,10))
нравится мне когда пишут " Поняла" и "работает" , а выложен явно дефектный код, без окончания условий. О каких понимании и работоспособности может вообще идти речь? :(поняла, то что напортачила с ELSE и это исправила, включила скрипт, и он работает, я же не утверждаю что всё верно и я всё понимаю, поэтому тут и спрашиваю что ни так со скриптом.
нравится мне когда пишут " Поняла" и "работает" , а выложен явно дефектный код, без окончания условий. О каких понимании и работоспособности может вообще идти речь? :(поняла, то что напортачила с ELSE и это исправила, включила скрипт, и он работает, я же не утверждаю что всё верно и я всё понимаю, поэтому тут и спрашиваю что ни так со скриптом.
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(27,35))
GETSCREEN
IF(PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
ELSE
IF(PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
ELSE
GETSCREEN
IF(PXL(635,404) = 0)
HALT
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
ELSE
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF(PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp")
HALT
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
WAIT(RND(2,10))
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
LCLICK($_return1+RND(-10,10), $_return2+RND(-10,10))
рандомное смещение координат клика до 10-ти пикселей в каждом направлении, от найденного при поиске. LCLICK($_return1+RND(0,10), $_return2+RND(0,10))
это работает, так как вы задумывали?первый скрипт работает как я задумала, последний - через раз
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188)) // если пиксел найден кликаем
WAIT(RND(27,35)) // ждем 27-35 секунд
GETSCREEN // делаем снимок
IF(PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185)) // если пиксел найден кликаем и переходим в конец скрипта
ELSE // если не найден
IF(PXL(581,181) = 200070) // то смотрим здесь
LCLICK(RND(582,615),RND(181,187)) // если пиксел найден кликаем и переходим в конец скрипта
ELSE // если не найден
GETSCREEN // снимок здесь лишний так как не было задержки после последнего снимка
IF(PXL(635,404) = 0)
HALT
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
ELSE
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF(PXL(453,184) = 1118481)
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
LCLICK(RND(550,590),RND(250,325))
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp")
HALT
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
WAIT(RND(2,10))
Да это я знаю, я сама составляла последовательность, и то что делает кликер, но я вот запуталась в середине...и в правильном составление алгоритма
Я знаю что хочу что бы он делал, но правильно составить алгоритм не могу
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188)) // если пиксел найден кликаем
WAIT(RND(27,35)) // ждем 27-35 секунд
GETSCREEN // делаем снимок
IF(PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185)) // если пиксел найден кликаем и переходим в конец скрипта
ELSE // если не найден
IF(PXL(581,181) = 200070) // то смотрим здесь
LCLICK(RND(582,615),RND(181,187)) // если пиксел найден кликаем и переходим в конец скрипта
ELSE // если не найден
GETSCREEN // снимок здесь лишний так как не было задержки после последнего снимка
IF(PXL(635,404) = 0)
HALT
ELSE
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp") // если найдено Яблоко (даже если перед этим найдены пиксели выше)
WAIT(2)
LCLICK(RND(440,475),RND(110,125)) // кликаем
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp") // находим картинку Дыня
LCLICK($_return1, $_return2) // кликаем по картинке
WAIT(2)
LCLICK(RND(715,730),RND(165,180))// кликаем
WAIT(2)
LCLICK(RND(665,700),RND(100,110))// кликаем
WAIT(1)
ELSE
GETSCREEN
IF(PXL(453,184) = 1118481) // если находим этот пиксель
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp") // находим картинку Дыня
LCLICK($_return1, $_return2) // кликаем по картинке
WAIT(2)
LCLICK(RND(715,730),RND(165,180))// кликаем
WAIT(2)
LCLICK(RND(665,700),RND(100,110))// кликаем
WAIT(1)
ELSE
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "слива.bmp") // если находим слива
HALT // останавливаем
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
END_IF
WAIT(RND(2,10))
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188)) // если пиксел найден кликаем
WAIT(RND(27,35)) // ждем 27-35 секунд
GETSCREEN // делаем снимок
IF(PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185)) // если пиксел найден кликаем и переходим в конец скрипта
WAITMS(500)
ELSE // если не найден
IF(PXL(581,181) = 200070) // то смотрим здесь
LCLICK(RND(582,615),RND(181,187)) // если пиксел найден кликаем и переходим в конец скрипта
WAITMS(500)
ELSE // если не найден
IF(PXL(635,404) = 0)
HALT
END_IF
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp") // если найдено Яблоко (даже если перед этим найдены пиксели выше)
WAIT(2)
LCLICK(RND(440,475),RND(110,125)) // кликаем
WAITMS(500)
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp") // находим картинку Дыня
LCLICK($_return1, $_return2) // кликаем по картинке
WAIT(2)
LCLICK(RND(715,730),RND(165,180))// кликаем
WAIT(2)
LCLICK(RND(665,700),RND(100,110))// кликаем
WAIT(1)
ELSE
IF(PXL(453,184) = 1118481) // если находим этот пиксель
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp") // находим картинку Дыня
LCLICK($_return1, $_return2) // кликаем по картинке
WAIT(2)
LCLICK(RND(715,730),RND(165,180))// кликаем
WAIT(2)
LCLICK(RND(665,700),RND(100,110))// кликаем
WAIT(1)
ELSE
IF_PICTURE_IN (239,681, 319,688, "слива.bmp") // если находим слива
HALT // останавливаем
END_IF
END_IF
END_IF
END_IF
END_IF
WAIT(RND(2,10))
END_IF
WAITMS(50)
Если при разных условиях нужно сделать одинаковые действия, как это объединить?почему вы не пишите, что и в какой последовательночти должен делать ваш скрипт? и зачем вам что-то менять если и на корявом скрипте у вас всё работало как нужно?
Находим пиксель и находим картинку нужно остановить
:-\ коряво был написан скрипт работал... находил яблоко, сливу, останавливался, добавила дыню всё накрылось
Выше написала что должен делать, потому что написали что так не правильно и это приведет кЕсли при разных условиях нужно сделать одинаковые действия, как это объединить?почему вы не пишите, что и в какой последовательночти должен делать ваш скрипт? и зачем вам что-то менять если и на корявом скрипте у вас всё работало как нужно?
Находим пиксель и находим картинку нужно остановить
:-\ коряво был написан скрипт работал... находил яблоко, сливу, останавливался, добавила дыню всё накрылось
В кликере нет проверки на некритические ошибки такие как неверные конструкции условий. Он конечно пытается выполнять но со временем это приведет к жору оперативной памяти и всяким глюкам. Так что надо писать правильно.
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188)) // если пиксел найден кликаем
WAIT(RND(27,35)) // ждем 27-35 секунд
GETSCREEN // делаем снимок
IF(PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185)) // если пиксел найден кликаем и переходим в конец скрипта
ELSE // если не найден
IF(PXL(581,181) = 200070) // то смотрим здесь
LCLICK(RND(582,615),RND(181,187)) // если пиксел найден кликаем и переходим в конец скрипта
ELSE // если не найден
GETSCREEN // снимок здесь лишний так как не было задержки после последнего снимка
IF(PXL(635,404) = 0)
HALT
END_IF
END_IF
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp") // если найдено Яблоко (даже если перед этим найдены пиксели выше)
WAIT(2)
LCLICK(RND(440,475),RND(110,125)) // кликаем
ELSE
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp") //
IF_PICTURE_IN (298,680, 352,688, "Яблоко.bmp") // если найдено Яблоко , то находим картинку Дыня (даже если перед этим найдены пиксели выше)
LCLICK($_return1, $_return2) // кликаем по картинке
WAIT(2)
LCLICK(RND(715,730),RND(165,180))// кликаем
WAIT(2)
LCLICK(RND(665,700),RND(100,110))// кликаем
WAIT(1)
END_IF
END_IF
GETSCREEN
IF(PXL(453,184) = 1118481) // если находим этот пиксель
LCLICK(RND(440,475),RND(110,125))
WAIT(2)
GETSCREEN
IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp") // находим картинку Дыня
LCLICK($_return1, $_return2) // кликаем по картинке
WAIT(2)
LCLICK(RND(715,730),RND(165,180))// кликаем
WAIT(2)
LCLICK(RND(665,700),RND(100,110))// кликаем
WAIT(1)
ELSE
IF_PICTURE_IN (239,681, 319,688, "слива.bmp") // если находим слива
HALT // останавливаем
END_IF
END_IF
END_IF
WAIT(RND(2,10))
// если найдено Яблоко (даже если перед этим найдены пиксели выше) это невыполнимое условие, яблоко у вас будет искаться только если ничего выше не найдено.В последнем моем варианте вполне выполнимо.
вас рандом клика по картинкам видимо не заинтересовал?Заинтересовал, я запомнила, спасибо, исправлю, когда найду решение что бы работал с этой картинкой "Дыня"
LCLICK($_return1, $_return2) // кликаем по картинке
в вашем варианте дыню можно найти при двух условиях;вас рандом клика по картинкам видимо не заинтересовал?Заинтересовал, я запомнила, спасибо, исправлю, когда найду решение что бы работал с этой картинкой "Дыня"
LCLICK($_return1, $_return2) // кликаем по картинке
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(21,25))
GETSCREEN
IF(PXL(508,181) = 200070)
LCLICK(RND(503,542),RND(183,185))
WAITMS(500)
ELSE
IF(PXL(581,181) = 200070)
LCLICK(RND(582,615),RND(181,187))
WAITMS(500)
ELSE
IF(PXL(635,404) = 0)
HALT
ELSE
IF_PICTURE_IN (239,681, 319,688, "1.bmp")
HALT
END_IF
END_IF
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "2.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
IF(PXL(453,184) = 1118481)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1, $_return2)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
END_IF
END_IF
END_IF
WAIT(RND(2,10))
END_IF
WAITMS(500)
Не могу только понять...как идет смещение, что бы кликал рандомно по картинке, ($_return1+RND(0,10), $_return2+RND(0,10) какая цифра отвечает за какое направлениеCode: (clickermann) [Select]IF_PICTURE_IN (474,238, 681,257, "Дыня.bmp")
рандомное смещение координат клика до 10-ти пикселей в каждом направлении, от найденного при поиске.
LCLICK($_return1+RND(-10,10), $_return2+RND(-10,10))
Ессли картинка мала или найден её левый верхний угол, то лучше смещаться только вправо и внизCode: (clickermann) [Select]LCLICK($_return1+RND(0,10), $_return2+RND(0,10))
1. LCLICK($_return1+RND(0,10), $_return2+RND(0,10))Спасибо
$_return1- координата Х, найденной картинки
+RND(0,10), к найденной координате будет прибавлено от 0 до 10 пикселей
LCLICK($_return1+RND(0,10), в результате клик будет сделан на это число пикселей правее
если минусовать от найденных значений, то клик будет делаться по Х -левее, а по У - выше
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(28,39))
GETSCREEN
IF((PXL(504,181) = 4870559)|(PXL(504,181) = 200070))
LCLICK(RND(503,542),RND(183,185))
WAITMS(500)
ELSE
IF((PXL(579,181) = 200070)|(PXL(579,181) = 1778830))
LCLICK(RND(582,615),RND(181,187))
WAITMS(500)
ELSE
IF(PXL(635,404) = 0)
HALT
ELSE
IF_PICTURE_IN (239,681, 319,688, "1.bmp")
WAIT(2)
LCLICK(RND(274,394),RND(216,224))
WAIT(2)
LCLICK(RND(270,391),RND(367,370))
WAIT(2)
LCLICK(RND(393,404),RND(237,248))
HALT
END_IF
END_IF
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "2.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1+RND(-20,5), $_return2+RND(0,30)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
ELSE
IF(PXL(453,184) = 1118481) // с этого момента не работает, не находит пискель (что может быть не так или ка можно по другому составить условия?)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1+RND(-20,5), $_return2+RND(0,30)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
END_IF
END_IF
END_IF
WAIT(RND(4,10))
END_IF
WAITMS(500)
спасибо за помощь :)
ваш пиксель бужет искаться только после;А если этих условий нет?
нахождения PXL(475,181) = 200070
нахождения IF_PICTURE_IN (298,680, 352,688, "2.bmp")
и ненахождения IF_PICTURE_IN (505,237, 684,260, "3.bmp")
PXL(453,184) = 1118481) после соблюдения всех вышеизложенных условий
это совпадает, есть только этот PXL(453,184) = 1118481), выше перечисленного нет когда есть этот пиксель
должны ещё совпасть координаты и цвет пикселя
в тот момент когда есть?появляется) этот пиксель , остального нетестественно, что этот пиксель даже искаться не будет.
тогда это тупик(небывает тупиков, вы просто неправильно понимаете или описываете логику работы вашего скрипта. ваше условие ведь можно и десять раз в разных местах вписать и отдельно от всего искать.
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(28,39))
GETSCREEN
IF((PXL(504,181) = 4870559)|(PXL(504,181) = 200070))
LCLICK(RND(503,542),RND(183,185))
WAITMS(500)
ELSE
IF((PXL(579,181) = 200070)|(PXL(579,181) = 1778830))
LCLICK(RND(582,615),RND(181,187))
WAITMS(500)
ELSE
IF(PXL(635,404) = 0)
HALT
ELSE
IF_PICTURE_IN (239,681, 319,688, "1.bmp")
WAIT(2)
LCLICK(RND(274,394),RND(216,224))
WAIT(2)
LCLICK(RND(270,391),RND(367,370))
WAIT(2)
LCLICK(RND(393,404),RND(237,248))
HALT
END_IF
END_IF
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "2.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1+RND(-20,5), $_return2+RND(0,30)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
END_IF
END_IF
END_IF
WAIT(RND(4,10))
END_IF
WAITMS(500)
А при нахождение этого условия , выполнялось оно и это как то совместитьGETSCREEN
IF(PXL(453,184) = 1118481)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1+RND(-20,5), $_return2+RND(0,30)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
бывает, если не хватает знаний и это мой случай(тогда это тупик(небывает тупиков, вы просто неправильно понимаете или описываете логику работы вашего скрипта. ваше условие ведь можно и десять раз в разных местах вписать и отдельно от всего искать.
Проверяться совершенно независимо
GETSCREEN
IF(PXL(475,181) = 200070)
LCLICK(RND(475,560),RND(183,188))
WAIT(RND(28,39))
GETSCREEN
IF((PXL(504,181) = 4870559)|(PXL(504,181) = 200070))
LCLICK(RND(503,542),RND(183,185))
WAITMS(500)
ELSE
IF((PXL(579,181) = 200070)|(PXL(579,181) = 1778830))
LCLICK(RND(582,615),RND(181,187))
WAITMS(500)
ELSE
IF(PXL(635,404) = 0)
HALT
ELSE
IF_PICTURE_IN (239,681, 319,688, "1.bmp")
WAIT(2)
LCLICK(RND(274,394),RND(216,224))
WAIT(2)
LCLICK(RND(270,391),RND(367,370))
WAIT(2)
LCLICK(RND(393,404),RND(237,248))
HALT
END_IF
END_IF
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN (298,680, 352,688, "2.bmp")
WAIT(2)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1+RND(-20,5), $_return2+RND(0,30)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
END_IF
END_IF
WAIT(RND(4,10))
WAITMS(500)
GETSCREEN
IF(PXL(453,184) = 1118481)
LCLICK(RND(440,475),RND(110,125))
WAIT(5)
GETSCREEN
IF_PICTURE_IN (505,237, 684,260, "3.bmp")
LCLICK($_return1+RND(-20,5), $_return2+RND(0,30)
WAIT(2)
LCLICK(RND(715,730),RND(165,180))
WAIT(2)
LCLICK(RND(665,700),RND(100,110))
WAIT(1)
END_IF
END_IF
GETSCREEN // находимся в точке А
IF(PXL(495,181) = 200070) // находим пиксель
LCLICK(RND(491,537),RND(182,187)) // нажимаем, ждем ( тут время рандомно очень отличается, не выставить когда нажимать, поставила по картинке что бы нажимал
IF_PICTURE_IN (330,611, 385,690, "2.bmp") // находим картинку
WAIT(RND(1,3)) // ждем
END_IF
END_IF
WAIT(RND(2,5))
GETSCREEN
IF(PXL(453,184) = 1118481) // находимся пиксель в точке А
LCLICK(RND(566,579),RND(372,379)) // нажимаем
WAIT(RND(16,18)) // идем в точку В
IF(PXL(495,180) = 200070) // тут все повторяется что в точке А
LCLICK(RND(491,537),RND(182,187))
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
END_IF
WAIT(RND(2,5))
GETSCREEN
IF(PXL(453,184) = 1118481) // находимся в точке В, находим пиксель
LCLICK(RND(506,522),RND(317,320)) // жмем
WAIT(RND(16,18)) // идем в точку А
IF(PXL(495,181) = 200070) // тут опять всё повторяется
LCLICK(RND(491,537),RND(182,187)) //нажимаем, ждём
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
END_IF
WAIT(RND(2,5))
GETSCREEN
IF_PICTURE_IN (239,681, 319,688, "1.bmp")
WAIT(2)
LCLICK(RND(274,394),RND(216,224))
WAIT(2)
LCLICK(RND(275,350),RND(267,271))
WAIT(2)
LCLICK(RND(393,404),RND(237,248))
HALT
END_IF
Перенесите тему в "Общие вопросы". Спасибо.Считаете, что здесь как-то затрагиваются Вопросы по интерфейсу, языку сценариев, алгоритмике?Скорее ваша тема должна улететь в раздел использование.
GETSCREEN
IF(PXL(495,181) = 200070)
LCLICK(RND(491,537),RND(182,187))
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
WAIT(RND(2,5))
Потом через какое время выполнил вот это условие:GETSCREEN
IF(PXL(453,184) = 1118481)
LCLICK(RND(566,579),RND(372,379))
WAIT(RND(16,18))
END_IF
Потом опять начал выполнять вот это условие:GETSCREEN
IF(PXL(495,181) = 200070)
LCLICK(RND(491,537),RND(182,187))
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
WAIT(RND(2,5))
через какое время выполнил это GETSCREEN
IF(PXL(453,184) = 1118481)
LCLICK(RND(506,522),RND(317,320))
WAIT(RND(16,18))
END_IF
WAIT(RND(2,5))
и опять начал выполнять эти условияGETSCREEN
IF(PXL(495,181) = 200070)
LCLICK(RND(491,537),RND(182,187))
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
WAIT(RND(2,5))
//можно сделать так в полном соответствии с вашим описанием
GETSCREEN
IF(PXL(495,181) = 200070) //Что бы он выполнял вот это условие:
LCLICK(RND(491,537),RND(182,187))
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
WAIT(RND(2,5))//Потом через какое время
GETSCREEN
IF(PXL(453,184) = 1118481) // время выполнил вот это условие:
LCLICK(RND(566,579),RND(372,379))
WAIT(RND(16,18))
END_IF
GETSCREEN
IF(PXL(495,181) = 200070) //Потом опять начал выполнять вот это условие:
LCLICK(RND(491,537),RND(182,187))
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
WAIT(RND(2,5)) //через какое время
GETSCREEN
IF(PXL(453,184) = 1118481) //выполнил это
LCLICK(RND(506,522),RND(317,320))
WAIT(RND(16,18))
END_IF
WAIT(RND(2,5)) //через какое время
GETSCREEN
IF(PXL(495,181) = 200070) //и опять начал выполнять эти условия
LCLICK(RND(491,537),RND(182,187))
IF_PICTURE_IN (330,611, 385,690, "2.bmp")
WAIT(RND(1,3))
END_IF
END_IF
WAIT(RND(2,5)) //через какое время
Прям заклюют...Не, ну это метафора такая, просто мне и самому действительно интересно для ся разобраться: почему б и не использовать эти потоки? А вот Золотой любит и потроллить вопрошающих, ему наверно кажется, что они всё соображают в своих скриптах, а спрашивают так, от нечего делать или чтоб пуще раздосадовать его Величество :) Хотя не спорю, советы у Золотого бывают очень толковые, когда он снисходит до них)
Зачем разбивать на потоки то, что должно выполняться последовательно?Ну не то чтоб прям "должно", скорее сказал бы что это всё-таки отдельные поиски (не последовательные), но здесь допустимо их последовательное использование ввиду больших делеев между поиска, а если бы дело б обстояло, как у меня с клавиатурой, где нажатие занимает 30 мс и при этом велика нагрузка на проц, то!.. Ну так и хочется туда потоки влепить! :D
Потоки предназначены для распараллеливания действий, не нужно их пихать везде где не попадя. Это не панацея.Ну так вот я и распараллеливаю различные по субъекту поиски, ведь они должны имхо выполняться независимо друг от друга.
В других темах дошло уже до того, что человек не может нормально картинку найти и сразу "эврика!" - "Если я разобью на потоки, будет искать?" :o :o :oЗдесь я не спорю, логика в каждом из потоков должна быть построена правильно, введение потоков никак не отменяет требования к логичности скрипта, как и наоборот, введение потоков не сможет исправить ошибок в логике. Но просто.. для чего-то ж эти потоки нужны! Или что иначе ими распараллеливать? Вот можно пару рабочих, жизненных примеров, где без потоков не обойтись? Или без них всегда можно и нужно обходиться?
И потоки не достаточно изолированы, чтобы с ними было легко и приятно. Десяток потоков с поисками и каждый со своим GETSCREEN или завесит всё на свете на 100%, или как минимум будет не всегда находить (естественно, 10 художников одновременно перерисовывают одно полотно ещё и действуя вразнобой), или не туда потом кликать/не от тех мест отталкиваться - $_return1/2.А вот это уже действительно аргумент против потоков, о котором я кстати не подумал! И оч существенный аргумент надо сказать! И здесь самая проблема имхо не с лишними гетскринами, лишним гетскрином кашу особо не испортишь, только чуть ударит по загруженности (хотя не знаю, как может повести себя кликер при одновременном вызове сразу нескольких гетскринов), а вот одинаковые имена переменных $_return1/2 во всех поиска могут действительно стать проблемой и выдать неверные, "не те" координаты в перемежающихся вызовах гетскрина. Я об этих совпадающих $_return1/2 тож иногда задумываюсь, когда в скриптах они встречаются). Так что наверно беру свои слова обратно про необходимость делать скрипт этот на тредах. Единственно, что можно попытаться выйти из этой ситуации путём присвоения полученных значений $_return1/2 сразу же на другие переменные, уникальные для каждого треда, но опять же нет гарантии, что гетскрин одного цикла не станет предыдущим тактом вычисления процессора для присвоения значений гетскрина из другого треда, и тогда ошибки наверно не избежать, хотя может и здесь можно было б сделать какую хитрую проверку. И хоть вероятность такого события очень мала, но раз скрипт будет выполняться множество раз (причём возможно в автоматическом режиме, без присутствия юзера), то и такая вероятность может рано/ поздно наступить. Т. ч. лучше действительно не страдать ерундой и не пытаться "обмануть судьбу" и сделать все поиски линейно, тем более если события случаются не часто, и навряд ли подвесят проц.
Ну не то чтоб прям "должно", скорее сказал бы что это всё-таки отдельные поиски (не последовательные)
...
Ну так вот я и распараллеливаю различные по субъекту поиски, ведь они должны имхо выполняться независимо друг от друга.
Что бы он выполнял вот это...
Потом через какое время выполнил вот это...
Потом опять начал выполнять вот это...
через какое время выполнил это...
и опять начал выполнять эти условия...
Вот можно пару рабочих, жизненных примеров, где без потоков не обойтись?
Опять же всякие клики:Есть основное действие? Сразу хочется спросить: а что же тогда, все эти F1/F3/F5 -- не основные?))
F1 - раз в 3 секунды
F3 - раз в 5 секунд
F5 - раз в 10 секунд...
При этом есть основное действие скрипта. Удобней всего это реализовать потоками.
Не нравится пример с игрой?Не то чтоб не нравится пример, просто игрухи немного не моя тема, ну профан я в них. Я фанат всяких расширений и фишек.
Тогда вот в браузере работа, не дай бог ещё во флеше. Нужно постоянно следить не упал ли флеш и не упал ли браузер. Всё это не отходя от конвейера.
Сразу хочется спросить: а что же тогда, все эти F1/F3/F5 -- не основные?))Это самые частые задачи.