Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: NightWanted on May 06, 2016, 05:00:57 PM
-
Всем привет! Подскажите в чем может быть дело... Код прекрасно работает, если воспроизвести скрипт один раз, стоит перевести на неограниченное кол-во повторов, уже на втором круге после удара первого соперника срабатывает подпрограмма, и скрипт, естественно, останавливается. Скажу сразу, что подпрограмма на этом этапе срабатывать не должна... Может быть есть объяснение этому? Заранее спасибо!
WAIT(1)
LCLICK(406,19)//КЛИК НА ОКНО
WAIT(2)
LCLICK(110,324)//РЕЙДЫ
WAIT(2)
LCLICK(719,488)//НАЙТИ ПРОТИВНИКА
WAIT(3)
$count = 0 //ПЕРЕМЕННАЯ
WHILE ($count = 0)//ПОИСК БОТА
GETSCREEN
IF (PXL(821,323) = 8224900)
$count = 1
LCLICK(834,526)//АТАКА
LOGWRITE ("цвет обнаружен")
WAIT(1)
GETSCREEN
IF (PXL(477,346) = 10858672)
LCLICK(662,442)
END_IF
ELSE
LCLICK(746,415)//НАЙТИ ДРУГОГО
WAIT(10)
END_IF
WAIT(1)
END_CYC//КОНЕЦ ПОИСКА
WAIT(2)
SUB(endgame)
GETSCREEN
IF (PXL(559,478) = 7501947)//ПРОВЕРКА ПОБЕДЫ
$end = 1
END_IF
GETSCREEN
IF (PXL(452,99) = 16777215)
$end = 1
END_IF
END_SUB
LCLICK(733,295)//ВЫБИРАЕМ ПЕРВОГО ПРОТИВНИКА
WAITMS(500)
FOR($b=0,$b<3)//ЧТОБЫ ДЕЛАЛИ ТРИ ЗАХОДА НА ПРОТИВНИКА
GETSCREEN
IF (PXL(814,446) = 13948632)//УДАР 1-ОГО ПЕРСА
LCLICK(814,446)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(808,517)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(686,449) = 13487824)//УДАР 2-ОГО ПЕРСА
LCLICK(686,449)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(682,510)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(551,445) = 13685203)//УДАР 3-ОГО ПЕРСА
LCLICK(551,445)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(551,511)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(430,445) = 14079961)//УДАР 4-ОГО ПЕРСА
LCLICK(430,445)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(425,512)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(296,447) = 13817046)//УДАР 5-ОГО ПЕРСА
LCLICK(296,447)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(297,503))//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAIT(13)//ОЖИДАНИЕ АТАКИ СОПЕРНИКА
END_CYC//КОНЕЦ ЦИКЛА
LCLICK(790,310)//ВЫБИРАЕМ ВТОРОГО ПРОТИВНИКА
WAITMS(500)
FOR($d=0,$d<3)//ЧТОБЫ ДЕЛАЛИ ТРИ ЗАХОДА НА ПРОТИВНИКА
GETSCREEN
IF (PXL(814,446) = 13948632)//УДАР 1-ОГО ПЕРСА
LCLICK(814,446)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(808,517)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(686,449) = 13487824)//УДАР 2-ОГО ПЕРСА
LCLICK(686,449)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(682,510)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(551,445) = 13685203)//УДАР 3-ОГО ПЕРСА
LCLICK(551,445)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(551,511)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(430,445) = 14079961)//УДАР 4-ОГО ПЕРСА
LCLICK(430,445)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(425,512)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(296,447) = 13817046)//УДАР 5-ОГО ПЕРСА
LCLICK(296,447)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(297,503))//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAIT(13)//ОЖИДАНИЕ АТАКИ СОПЕРНИКА
END_CYC//КОНЕЦ ЦИКЛА
LCLICK(95,535)//ВКЛЮЧЕНИЕ РЕЖИМА АВТОБОЯ
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAIT(30)
//ПРОДОЛЖИТЕЛЬНОСТЬ БОЯ
skip:
WAIT(2)
GETSCREEN
IF (PXL(559,478) = 7501947)//ПРОВЕРКА ПОБЕДЫ
LCLICK(559,478)//ПРИ ПОБЕДЕ
ELSE
LCLICK(628,476)//ПРИ ПОРАЖЕНИИ
END_IF
WAIT(2)
LCLICK(992,61)//ВЫХОД ИЗ РЕЙДОВ
WAIT(2)
-
Из циклов выпрыгивать не рекомендуется, из за этого со временем могут возникнуть глюки.
Но проблема твоя в том что ты не обнуляешь $end = 1
Вот оптимизированный правильный вариант:
SUB(endgame)
GETSCREEN
IF((PXL(559,478) = 7501947)|(PXL(452,99) = 16777215))//ПРОВЕРКА ПОБЕДЫ
$end = 1
END_IF
END_SUB
SUB(boi)
GETSCREEN
IF (PXL(814,446) = 13948632)//УДАР 1-ОГО ПЕРСА
LCLICK(814,446)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(808,517)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(686,449) = 13487824)//УДАР 2-ОГО ПЕРСА
LCLICK(686,449)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(682,510)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(551,445) = 13685203)//УДАР 3-ОГО ПЕРСА
LCLICK(551,445)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(551,511)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(430,445) = 14079961)//УДАР 4-ОГО ПЕРСА
LCLICK(430,445)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(425,512)//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAITMS(500)
GETSCREEN
IF (PXL(296,447) = 13817046)//УДАР 5-ОГО ПЕРСА
LCLICK(296,447)//ПРИ АДРЕНАЛИНЕ
LOGWRITE ("цвет обнаружен")
WAIT(4)
ELSE
LCLICK(297,503))//БЕЗ АДРЕНАЛИНА
END_IF
WAITMS(500)
endgame()
IF($end = 1)
GOTO(skip)
END_IF
WAIT(13)//ОЖИДАНИЕ АТАКИ СОПЕРНИКА
skip:
END_SUB
IF($end = 1)
GOTO(skip2)
END_IF
WAIT(1)
LCLICK(406,19)//КЛИК НА ОКНО
WAIT(2)
LCLICK(110,324)//РЕЙДЫ
WAIT(2)
LCLICK(719,488)//НАЙТИ ПРОТИВНИКА
WAIT(3)
$count = 0 //ПЕРЕМЕННАЯ
WHILE ($count = 0)//ПОИСК БОТА
GETSCREEN
IF (PXL(821,323) = 8224900)
$count = 1
LCLICK(834,526)//АТАКА
LOGWRITE ("цвет обнаружен")
WAIT(1)
GETSCREEN
IF (PXL(477,346) = 10858672)
LCLICK(662,442)
END_IF
ELSE
LCLICK(746,415)//НАЙТИ ДРУГОГО
WAIT(10)
END_IF
WAIT(1)
END_CYC//КОНЕЦ ПОИСКА
WAIT(2)
LCLICK(733,295)//ВЫБИРАЕМ ПЕРВОГО ПРОТИВНИКА
WAITMS(500)
boi()
boi()
boi()
LCLICK(790,310)//ВЫБИРАЕМ ВТОРОГО ПРОТИВНИКА
WAITMS(500)
boi()
boi()
boi()
LCLICK(95,535)//ВКЛЮЧЕНИЕ РЕЖИМА АВТОБОЯ
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip2)
END_IF
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip2)
END_IF
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip2)
END_IF
WAIT(20)
endgame()
IF($end = 1)
GOTO(skip2)
END_IF
WAIT(30)
//ПРОДОЛЖИТЕЛЬНОСТЬ БОЯ
skip2:
WAIT(2)
GETSCREEN
IF (PXL(559,478) = 7501947)//ПРОВЕРКА ПОБЕДЫ
LCLICK(559,478)//ПРИ ПОБЕДЕ
ELSE
LCLICK(628,476)//ПРИ ПОРАЖЕНИИ
END_IF
WAIT(2)
LCLICK(992,61)//ВЫХОД ИЗ РЕЙДОВ
WAIT(2)
$end = 0
-
Из циклов выпрыгивать не рекомендуется, из за этого со временем могут возникнуть глюки.
Но проблема твоя в том что ты не обнуляешь $end = 1
Огромное спасибо, все работает. Извините, что раньше не поблагодарил...