Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: vjronin on June 15, 2016, 04:35:36 PM
-
и так друзья хочу создать независимого бота для 2d игры 100 ренген помогитне плиз
-
нач нем стого что надо обнавлять страницу
-
Прекрасно.
Ты думаешь все знают каким действием она обновляется? ХЗ что там за значки-пиктограммы.
-
добавим простинький код на обновление страницы а все что не понятно буду спрашевать и расписывать в красках
[spoiler]$check = 0
KEYPRESS(#f5) -установим авто кнопку по умолчанию в фоксе (f5)
WAITMS(5670) - далее ждем 5.6 десятых секунд это надо чтоб не сполили админы
WHILE($check = 0) - начать цыкл с начало[/spoiler]
-
теперь значи пришла нам смс от когото - вопрос как сделать мониторинг на предмет картинки
http://www.ok.100rentgen.mobi/css/new/icons/pda_active.png -вариант активный
http://www.ok.100rentgen.mobi/css/new/icons/pda.png -вариант обычный после повесим суда скрипт если ничего не происходит то (f5)
-
координаты свои
WHILE(1)
GETSCREEN(610, 0, 650, 100)
IF_PICTURE_IN(610, 0, 650, 100, "sms.bmp")
LOGWRITE("пришло сообщение")
// обрабатываем
WAITMS(100)
ELSE
KEYPRESS(#F5)
WAITMS(5670)
END_IF
END_CYC
-
чтото не так
[spoiler] WHILE(1)
GETSCREEN(569, 155, 694, 181)
IF_PICTURE_IN(569, 155, 694, 181, "pda_active.png")
LCLICK(631,168) // 46985
WAITMS(100)
ELSE
KEYPRESS(#F5)
WAITMS(5670)
END_IF
END_CYC[/spoiler]
-
Давай ты сначала в справку посмотришь немного. Просто азы здесь дублировать не имеет смысла. Это не решение задачи получается.
Кликер понимает образцы только в bmp
-
сохранил картинку в формате .bmp -ошибка перестала выподать но теперь он кликает по картинке без разбора
pda.bmp или pda_active.bmp получил то что хотел но не через картинку а через пиксель[spoiler] $check = 0
WHILE($check = 0)
GETSCREEN(569, 155, 694, 181)
IF_PICxel_IN(638,166,46985)
$pda = Pxl (631,168)
IF ( $pda = 46985)
$check = 1
LCLICK(630,166) // 46985
WAITMS(2000)
LCLICK(432,297) // 0
WAITMS(2000)
LCLICK(472,258) // 1249806
WAITMS(2000)
LCLICK(415,883) // 723465
WAITMS(2000)
ELSE
KEYPRESS(#F5)
WAITMS(5670)
END_IF
END_CYC
[/spoiler]
-
Давай ты сначала в справку посмотришь немного. Просто азы здесь дублировать не имеет смысла. Это не решение задачи получается.
Кликер понимает образцы только в bmp
тиория и опыт вещи тесно связаные отдно без другого работать не будет
-
1 вопрос как заставить бота кликать по картинке( pda.png)если ана изменилась на (pda_active.png)
2 тем временем буду учить бота использовать аптеки и шпроты (жизни и голод) автоматически
-
$check = 0
WHILE($check = 0)
GETSCREEN(569, 155, 694, 181)
IF_PICxel_IN(638,166,46985)
$pda = Pxl (631,168)
IF ( $pda = 46985)
$check = 1
LCLICK(630,166) // 46985
WAITMS(2000)
LCLICK(432,297) // 0
WAITMS(2000)
LCLICK(472,258) // 1249806
WAITMS(2000)
LCLICK(415,883) // 723465
WAITMS(2000)
ELSE
KEYPRESS(#F5)
WAITMS(5670)
END_IF
END_CYC
ошибка в названии IF_PICxel_IN
из справки:
IF_PIXEL_IN (x, y, x2, y2, color1, ...) - производит поиск пикселя заданного цвета в прямоугольной области буфера анализа
Параметры :
x, y - числовые координаты левого верхнего угла области поиска
x2, y2 - числовые координаты правого нижнего угла области поиска
color1, ... - цвета, поиск которых будет осуществляться
у тебя же (638,166,46985), координаты одной точки и искомый цвет.
IF_PIXEL_IN должен завершаться END_IF , у тебя отсутствует.
в чем смысл искать цвет в области, и после этого проверять пиксель на этот же цвет?!
скорее всего вот так должен выглядеть твой код:
GETSCREEN(569, 155, 694, 181)
WHILE(Pxl(631,168)!46985)
KEYPRESS(#F5)
WAITMS(5670)
GETSCREEN(569, 155, 694, 181)
END_CYC
LCLICK(630,166)
WAITMS(2000)
LCLICK(432,297)
WAITMS(2000)
LCLICK(472,258)
WAITMS(2000)
LCLICK(415,883)
WAITMS(2000)
-
1 вопрос как заставить бота кликать по картинке( pda.png)если ана изменилась на (pda_active.png)
както глупо звучит, как ты можеш кликать по картинке pda.png, если она изменилась на другую картинку pda_active.png? тоесть, как можно кликать по картинке, которой уже нет?
скорее всего тебе требуется ожидание, пока не появится картинка pda_active.png
это есть в шаблонах, и не забывай, что с пнг кликер не работает
-
скорее всего тебе требуется ожидание, пока не появится картинка pda_active.png
это есть в шаблонах, и не забывай, что с пнг кликер не работает
[/quote]каже быть они все png а с пикселем не получится 1 в конце слишком большой код получится 2 и будет много совпадений если увеличить квадрат поиска( кстати dramster код работает на ура теперь надо научить распознавать текст для команд (вроде шахта.торговать.атака.ну и конечно отвечать вводом текста типо да.нет.привет ) еще я столкнулся с проблемой кликер не ставит пробел между словами
-
SCREENSHOTEX(x1, y1, x2, y2, ["pref"], [format]) - сохраняет часть графического буфера анализа на диск
x1, y1, x2, y2 - четыре координаты, описывающие сохраняемую область буфера
pref - необязательный параметр; префикс названия
format - необязательный параметр; тип файла (сжатие): 0 - bmp; 1 - jpeg
просто создай новые искомые картинки в бмп.
ну или printscreen и вырезай нужное вручную в паинте, и сохраняй заготовки в бмп 24бит
насчет пробела, небыло ни у кого проблем
(http://i.imgur.com/cpqdL56.png)
-
ачто нужно чтобы сканировать текст[spoiler] GETSCREEN(569, 155, 694, 181)
WHILE(Pxl(631,168)!46985)
KEYPRESS(#F5)
WAITMS(5670)
GETSCREEN(569, 155, 694, 181)
END_CYC
LCLICK(630,166)
WAITMS(2000)
LCLICK(432,297)
WAITMS(2000)
LCLICK(472,258)
WAITMS(2000)
GETSCREEN (361, 323, 702, 361)
если написано привет то
если написано неизвестное слово то пишет мне некогда потом поговарим
если написано слово из списка команд то
ответ да мой хер маер
LCLICK(384,248)
WAITMS(2000)
KEYSTRING("привет")
WAITMS(2000)
LCLICK(415,883)
WAITMS(2000)
[/spoiler]
-
ачто нужно чтобы сканировать текст
Нужно научится искать картинки. Текст в игре это почти всегда картинки (в итоге).
Ещё нужно соблюдать синтаксис, а не доказывать, что всё и так работает.
-
что то у меня с .bmp туго буду с пикселями работать можт что получится
[spoiler] GETSCREEN(569, 155, 694, 181)
WHILE(Pxl(631,168)!46985)
LCLICK(447,210)
WAITMS(5670)
GETSCREEN(569, 155, 694, 181)
END_CYC
LCLICK(630,166)
WAITMS(2000)
LCLICK(432,297)
WAITMS(2000)
LCLICK(472,258)
WAITMS(2000)
GETSCREEN(395, 341, 554, 359)
IF_PICTURE_IN (398,345,440,345,"sms.bmp")
WAIT(1)
LCLICK(384,248)
WAIT(2)
KEYSTRING(привет)
WAITMS(2000)
LCLICK(615,302) // 2131122
WAITMS(2000)
LCLICK(631,172) // 4473924
WAITMS(2000)
LCLICK(420,537) // 789258
WAITMS(2000)
IF_PICTURE_IN (401,347,502,362,"sms1.bmp")
KEYSTRING(что )
KEYSTRING(как дела)
END_IF
END_CYC
[/spoiler]
-
что то у меня с .bmp туго буду с пикселями работать можт что получится
GETSCREEN
WHILE(Pxl(631,168)!46985)
LCLICK(447,210)
WAITMS(5670)
GETSCREEN
END_CYC
LCLICK(630,166)
WAITMS(2000)
LCLICK(432,297)
WAITMS(2000)
LCLICK(472,258)
WAITMS(2000)
GETSCREEN
IF_PICTURE_IN (398,345,440,345,"sms.bmp") // зона поиска должна быть равна или больше картинки sms.bmp!
WAIT(1)
LCLICK(384,248)
WAIT(2)
KEYSTRING("привет")
WAITMS(2000)
LCLICK(615,302)
WAITMS(2000)
LCLICK(631,172)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
GETSCREEN
IF_PICTURE_IN (401,347,502,362,"sms1.bmp")
KEYSTRING("что ")
KEYSTRING("как дела")
END_IF
END_IF
-
GETSCREEN
WHILE(Pxl(631,168)!46985)
LCLICK(447,210)
WAITMS(5670)
GETSCREEN
END_CYC
LCLICK(630,166)
WAITMS(2000)
LCLICK(432,297)
WAITMS(2000)
LCLICK(472,258)
WAITMS(2000)
GETSCREEN
IF_PICTURE_IN (398,345,440,345,"sms.bmp") // зона поиска должна быть равна или больше картинки sms.bmp!
WAIT(1)
LCLICK(384,248)
WAIT(2)
KEYSTRING("привет")
WAITMS(2000)
LCLICK(615,302)
WAITMS(2000)
LCLICK(631,172)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
GETSCREEN
IF_PICTURE_IN (401,347,502,362,"sms1.bmp")
KEYSTRING("что ")
KEYSTRING("как дела")
END_IF
END_CYC
Чуть поправлю. В последней строке не END_CYC, а END_IF
-
он должен отвечать на 1 из 3 вопросов на гдето допустил ошибку посчемуто пичатоет всегда первый if
[spoiler]chech:
GETSCREEN
WHILE(Pxl(631,168)!46985)
LCLICK(388,207)
WAITMS(5670)
GETSCREEN
END_CYC
LCLICK(630,166)
WAITMS(2000)
LCLICK(432,297)
WAITMS(2000)
LCLICK(472,258)
WAITMS(2000)
LCLICK(838,260)
GETSCREEN
WAIT(2)
IF_PICTURE_IN (354,320,583,360) если ничего нет или неизвестно то (falt)
WAIT(5)
goto(FALT)
end_if
WAIT(2)
IF_PICTURE_IN (354,320,583,360,"sms.bmp") если обнаружил привет то пишет привет
WAIT(5)
goto(hellou)
end_if
IF_PICTURE_IN (354,320,583,360,"sms1.bmp") подтверждает выполнение действий
goto(shahta)
end_if
END_CYC
hellou:
WAIT(10)
KEYSTRING(привет)
WAIT(7)
LCLICK(615,302)
WAITMS(2000)
LCLICK(639,166)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
end_if
shahta:
WAIT(10)
LCLICK(384,248)
KEYSTRING(так)
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING(точно)
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING(мой)
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING(ХЕРМАЕР)
WAITMS(2000)
LCLICK(615,302)
WAITMS(2000)
LCLICK(639,166)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
end_if
FALT:
WAIT(10)
KEYSTRING(мне)
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING(некогда)
WAIT(7)
LCLICK(615,302)
WAITMS(2000)
LCLICK(639,166)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
end_if
goto(chech) [/spoiler]
-
Удручает как ты небрежно пишешь скрипты....
Строки надо заключать в кавычки.
Не нужно писать окончания условий и циклов там где они не нужны.
Комменты помечаются двумя косыми
Гото здесь также не нужны.
GETSCREEN
WHILE(Pxl(631,168)!46985)
LCLICK(388,207)
WAITMS(5670)
GETSCREEN
END_CYC
LCLICK(630,166)
WAITMS(2000)
LCLICK(432,297)
WAITMS(2000)
LCLICK(472,258)
WAITMS(2000)
LCLICK(838,260)
WAIT(2)
GETSCREEN
IF_PICTURE_IN (354,320,583,360,"sms.bmp") // если обнаружил привет то пишет привет
WAIT(10)
KEYSTRING("привет")
WAIT(7)
LCLICK(615,302)
WAITMS(2000)
LCLICK(639,166)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
ELSE
IF_PICTURE_IN (354,320,583,360,"sms1.bmp") // подтверждает выполнение действий
WAIT(10)
LCLICK(384,248)
WAIT(1)
KEYSTRING("так")
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING("точно")
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING("мой")
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING("ХЕРМАЕР")
WAITMS(2000)
LCLICK(615,302)
WAITMS(2000)
LCLICK(639,166)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
ELSE // если нет ни sms.bmp ни sms1.bmp то
WAIT(10)
KEYSTRING("мне")
WAIT(1)
KEYPRESS(#SPACE)
WAIT(1)
KEYSTRING("некогда")
WAIT(7)
LCLICK(615,302)
WAITMS(2000)
LCLICK(639,166)
WAITMS(2000)
LCLICK(420,537)
WAITMS(2000)
end_if
end_if
-
ну я же начинающий писака и может в скором времени я напишу полноценный ии для любой игры
-
что делать если картинка кирка оказывается в другом диапазоне и как заставить кликер кликнуть в нужное место если координаты ссылки каждый переход меняются
-
что делать если картинка кирка оказывается в другом диапазоне и как заставить кликер кликнуть в нужное место если координаты ссылки каждый переход меняются
сделать скрин слова Кирка, искать картинку и кликать по возвращенным координатам. Просто вложи функцию IF_PICTURE_IN в то место где нужно найти и кликнуть эту кирку и не забудь про GETSCREEN
Также можно сделать коррекцию клика относительно найденных координат
LCLICK($_return1+20, $_return2+5) // клик правее и ниже