Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: MP99 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
и далее продолжаем с начала
жмем - ждем - жмем и держим - жмем и т.д.
********************************************************
может я что то лишнее написал, а может что то нужное упустил :-[, не обессудьте
заранее спасибо :)
-
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)
-
ой, ой, маленькая ошибка вылазит
между строками
- жмем на координаты (нажатие левой клавиши мыши) 915, 270 жмем (держим) 1 сек.
- ждем появление красного цвета 2370797
надо добавить
- не производить ни какие действия 2 сек
-
можно еще добавить
не может найти красный цвет, хотя он точно там появляется изредка и именно с этим кодом
-
ой, ой, маленькая ошибка вылазит
между строками
- жмем на координаты (нажатие левой клавиши мыши) 915, 270 жмем (держим) 1 сек.
- ждем появление красного цвета 2370797
надо добавить
- не производить ни какие действия 2 сек
строка 4
WAITMS(100)
меняй на
WAITMS(2000)
не может найти красный цвет, хотя он точно там появляется изредка и именно с этим кодом
Как цвет определял? И откуда знаешь что появляется?
Код правильный, цвет - нет. Скорее всего при наведении мыши идёт подсветка/изменение цвета из-за чего взял не тот цвет. Бери со скриншота.
Или покажи пример этого участка в png или bmb
-
да, да, спасибо большое, я стал чуть вникать - перечитал много постов и разобрался
единственное что хотелось бы еще уточнить (ни где не нашел, или не встретилось пока)
в 9 строке
IF_PIXEL_IN(693,231, 714,265, 2370797)
как сделать, чтобы искал не цвет 2370797, а если изменится на любой другой, отличный от 2370797
и что означает команда GETSCREEN
-
Все команды описаны в справке!
Изменение переменой $check приведет к прерыванию цикла.
$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) будет прерван.
$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
-
Oraven, Vint огромное спасибо, за помощь
вопросов больше нет
-
Доброе время суток, всем.
И все таки возник вопрос, который самому не получается решить
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)
помогите пожалуйста, что то я совсем запутался
на всякий случай, это изначальный скрипт, который работает
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)
-
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)
-
Добрый день, всем :)
Уважаемый Oraver, извиняюсь что сразу не ответил, был оффлайн
в Вашем скрипте что то не сходится (не работает, как хотелось бы) и по моему дело не в точности кода цвета
Ваша версия скрипта с моими комментариями
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)
извините меня еще раз, помогите поправить скрипт :'(
-
Все написано так как ты хочешь. Не работает, возможно, из за неадекватной задержки после кратковременного клика.
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)