Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: GrandBeer on January 26, 2017, 09:55:50 PM
-
Я пытаюсь написать алхимический бот
суть такая, Все действия производятся при зажатой клавише "ALT", но так как я нуб в скриптописях, я делаю это путем зажатия клавиши и переподключаю клавиатуру
Далее, бот должен найти пиксель определенного цвета, нажать на него, и нажать по опр. координатам, далее он ждет 5 секунд (уже на этом пункте появляются проблемы, но об этом после), ну так вот, дальше он должен определить цифру в области экрана и если эта цифра, равна заданной зарание ,то скрипт останавливается, если нет, то возабновляется getscreen
if_pixel_in(0, 0, $_xmax, $_ymax, 15170551)
print("Öâåò îáíàðóæåí â êîîðäèíàòàõ: ", $_return1, ,":", $_return2)
lclick($_return1, $_return2)
WAITMS(50)
LCLICK(228,396)
WAIT(5)
else
-
Нет, там все гораздо проще, цифры появляются в одном и том же месте, нужно всего лишь запустить проверку, что бы по определенным координатам находился пиксель заданного цвета, но я не пойму как сделать Это, при моих попытках это сделать он не останавливает скрипт или останавливается после каждого запуска
-
THREAD(name, 1)
KEYPRESS(#ALT) //всегда зажатый ALT
END_THREAD
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 15170551) // если условие выполняется
LCLICK($_return1, $_return2) //кликаем по нему
WAITMS(300)
LCLICK(228, 396) //кликаем и ждем
WAIT(5)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "cifra.bmp")
HALT
END_IF
END_IF
Я думаю как то так. Сделай скриншот необходимой цифры. Если ее встретит то выйдет, если нет, все начнется заново
-
THREAD(name, 1)
KEYPRESS(#ALT) //всегда зажатый ALT
END_THREAD
Это не "всегда зажатый альт", это бесконечно нажимаемый альт без задержек, что приведет к ненужной нагрузке.
WAIT(1)
KEYDOWN(#ALT) // зажимаем Alt
GO: // далее бесконечно зацикленный скрипт
GETSCREEN
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 15170551) // если условие выполняется
LCLICK($_return1, $_return2) //кликаем по нему
WAITMS(300)
LCLICK(228, 396) //кликаем и ждем
WAIT(5)
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "cifra.bmp")
HALT
END_IF
END_IF
WAITMS(50)
GOTO(GO)
-
MOVE(387,144)// ïåðåâîäèì êóðñîð â äðóãîå ìåñòî äàáû íå ìåøàòü
getscreen // Äåëàåì ñêðèíøîò â ëîã
KEYDOWN(#ALT)
if_pixel_in(0, 0, $_xmax, $_ymax, 15170551) //ïîèñê ïèêñåëÿ îïðåäåëåííîãî öâåòà ïî îáëàñòè ýêðàíà
lclick($_return1, $_return2) // Ëåâûé êëèê ïî íàéäåííûì êîîðäèíàòàì
WAITMS(50) // çàäåðæêà â 50 ÌÑ
LCLICK(228,396) //Ëåâûé êëèê ïî êíîïêå
WAIT(5)//Æäåì 5 ñåê
end_if//Êîíåö óñëîâèÿ
LOGCLEAR//î÷èñòêà ëîã
MOVE(437,111)//íàâîäèì íà îðóæèå
WAIT(1)//æäåì 1 ñåê
GETSCREEN//äåëàåì ñêðèí â ëîã
$clr1 = PXL(491,273)// ïðèñâîåíèå ïåðåìåííîé Clr¹ çíà÷åíèÿ öâåòà ïèêñåëÿ ïî êîîðäèíàòàì
$clr2 = PXL(492,272)
$clr3 = PXL(495,272)
$clr4 = PXL(496,273)
$clr5 = PXL(496,275)
$clr6 = PXL(495,276)
$clr7 = PXL(494,277)
$clr8 = PXL(493,277)
$clr9 = PXL(492,278)
$clr10 = PXL(491,279)
$clr11 = PXL(491,280)
$clr12 = PXL(496,280)// äëÿ 2
IF($clr1 = 16777215) //åñëè Clr¹ = pfljyyjve wdtne
IF($clr2 = 16777215)
IF($clr3 = 16777215)
IF($clr4 = 16777215)
IF($clr5 = 16777215)
IF($clr6 = 16777215)
IF($clr7 = 16777215)
IF($clr8 = 16777215)
IF($clr9 = 16777215)
IF($clr10 = 16777215)
IF($clr11 = 16777215)
IF($clr12 = 16777215) // òî
Halt //îñòàíîâèòü
else//Åñëè íåò òî...
LOGWRITE ("Íå òî") //âûâîäèì â ëîã ñîîáùåíèå "Íå òî"
end_if //Êîíåö óñëîâèÿ
С горем-пополам я написал этот скрипт, и решил привязать к окну и он не работает, не могу понять что именно, толи Зажатый альт толи левый клик
-
Благодарю, хотя если я понимаю можно еще заменить на IF(PXL(494,277) & PXL(123,123) & PXL(123,123) & PXL(123,123) & PXL(123,123) & PXL(123,123) & PXL(123,123) & PXL(123,123)=123456789)
-
MOVE(387,144)
WAIT(1)
getscreen
KEYDOWN(#ALT)
if_pixel_in(0, 0, $_xmax, $_ymax, 15170551)
lclick($_return1, $_return2)
WAITMS(50)
LCLICK(228,396)
WAIT(5)
end_if
LOGCLEAR
MOVE(437,111)
WAIT(1)
GETSCREEN
IF(PXL(491,291) & PXL(492,290) & PXL(495,290) & PXL(496,291) & PXL(496,293) & PXL(495,294) & PXL(494,295) & PXL(493,295) & PXL(492,296) & PXL(491,297) & PXL(491,298) & PXL(496,298) = 16777215)
Halt
else
LOGWRITE ("Íå òî")
END_IF //альт отжимать не надо, но можно, это ни на что не влияет
Вот что у меня получилось
-
Не верная конструкция условия
MOVE(387,144)
WAIT(1)
IF($fiirst = 0)
$fiirst = 1
KEYDOWN(#ALT)
END_IF
getscreen
if_pixel_in(0, 0, $_xmax, $_ymax, 15170551)
lclick($_return1, $_return2)
WAITMS(50)
LCLICK(228,396)
WAIT(5)
end_if
MOVE(437,111)
WAIT(1)
GETSCREEN
IF((PXL(491,291) = 16777215) & (PXL(492,290) = 16777215) & (PXL(495,290) = 16777215) & (PXL(496,291) = 16777215) & (PXL(496,293) = 16777215) & (PXL(495,294) = 16777215) & (PXL(494,295) = 16777215) & (PXL(493,295) = 16777215) & (PXL(492,296) = 16777215) & (PXL(491,297) = 16777215) & (PXL(491,298) = 16777215) & (PXL(496,298) = 16777215))
Halt
else
LOGWRITE ("Не то")
END_IF