она всегда на одном месте. кстати, если зарядка 100% то кнопка "зарядка" тускнеет.
Не могу спорить, что кнопка "зарядка" всегда находится в одних и тех же координатах на экране, но можно привести множество примеров когда она внезапно может быть закрыта другими окнами или разного рода всплывающими сообщениями. Например, Adobe Flash Player решил уведомить пользователя о релизе новой версии или антивирус вдруг начал требовать обновления. Может разорваться соединение с сервером, тогда кнопки совсем другие будут на экране. Наконец окно игры может быть свёрнуто. В таком случае бот поступит так - "если на экране ничего не видно, значит надо нажать кнопку", и будет прав, потому, что так его запрограммировали. Другими словами, если такому боту показать чистый несомненно Рабочий стол Windows, то он радостно начнет чего то там кликать эмитируя действия игрока в игре. Вот я о чем. Тут реч идет о надежности бота и о его способности реагировать на внештатные ситуации. Кто играет в онлайн игры наверняка видели и не раз, как кто то из игроков, во время боя, в чате начинает писать что то вроде "4b223m5j1h23" причем вперемешку с текстом своего сообщения и повторяет это несколько раз. Это значит, что он забыл выключить свой "глупый" авто-кликер, который тупо нажимает заданную последовательность клавиш и всё (просто циклично перебирает бинды атакующих способностей). Он не может определить, что игрок открыл строку ввода текста, которая и перехватывает нажатия клавиш. Пример конечно не совсем удачный, просто как пример внештатной ситуации. Короче случиться может всякое, и "умный" скрипт должен точно знать куда тыкает, или хотя бы
не тыкать в неизвестность.
Вообще, о какой игре идет реч в этой теме я даже смутно не представляю, поэтому не могу посоветовать что то конкретное, только шаблоны.
а что такого ему и как показать, чтоб он быстрее и точнее работал??
Тут всё просто, объясню на своем примере. Может кто то в этом примере узнает самого себя и вспомнит свой пройденный путь в познании Clickermann'а.
Для своего первого "бота" Бот-1 (для игры WoW) я использовал функцию записи сценария Clickermann'а. Посмотрел на скрипт, узрел логику и отредактировал задержки между кликами вручную. Это было не так уж и просто, все задержки были тщательно выверены с учетом пинга до игрового сервера, так, что каким бы запоздалым не был отклик сервера, бот всеравно бы кликнул по нужным координатам когда нужная кнопка на экране уже прорисовалась! Он предусмотрительно прокликивал все места, в которых могли появляться всплывающие окна, чтобы закрыть их! Например приглашения в группу или гильдию могут прийти в любое время и помешать основной работе скрипта. И мой "умный" бот закрывал все эти окна, даже когда их и в помине небыло.
Координаты для кликов мыши были выставлены вручную, точно в середину кнопок, так, что даже если изображение сместится на несколько пикселей, мой бот все равно попадет по кнопке на экране! Я им гордился!
Тогда мне всё это казалось очень важным и правильным.
А однажды настал день, когда я узнал, что Clickermann может распознавать изображение на экране... И мой бот стал видеть! Это был прорыв! Теперь он не бездействовал отсчитывая время до предполагаемого появления кнопок, теперь он больше не делал поправку в 30 секунд на возможную задержку отклика сервера. Теперь он в цикле отслеживал события в игре и мгновенно нажимал едва появляющуюся кнопку, как только цвета пикселей совпадали. Скорость стала просто космической! Он стал реагировать на события, перестал кликать в неизвестность, он стал "умным". Так появился Бот-2.
Бот-3 уже стал не только видеть, но и научился ориентироваться в пространстве и ходить по маршруту с высокой точностью. Он получил очень быстрый движок, который делит полный оборот персонажа вокруг своей оси в 360° на 108 секторов. Поворот на 1 сектор равен нажатию на кнопку поворота длительностью в 16 миллисекунд. Определяет на бегу куда смотрит персонаж по положению всего лишь одного пикселя на поле 9x12 (это в худшем случае) и сразу коррекция движения, очень быстро. Может бегать и прыгать в игре так, как не бегают боты, не рационально, как игрок, которому охота попрыгать и подурачиться (прописывается любой маршрут). Я его "вынашивал" в голове только несколько месяцев. В планах еще была защита от проверок на бота, тестировал опытные образцы, но так и не собрал все модули в одно целое, сменились интересы, забросил... Очень им горжусь на данном этапе своего развития.
Короче выбирать вам, либо делать Бота-1 или сразу Бота-2, т.е. сразу учить его реагировать на события в игре.
Еще пример навеяло, для тех кто в теме про игру WoW:
Умный бот не будет стараться пробить бабл паладина оружием или магией, он увидит бабл, прекратит атаки и будет ждать пока бабл не спадет. Как ни крути а отслеживать графику придется.
Тут логичнее было бы отслеживать появление чего то, что следует за этим ожиданием и может послужить сигналом для выполнения следующих действий
Да, именно, бот должен отслеживать сигнал, который ему даст команду на выполнение какого то действия. Например, как игрок определяет, что можно атаковать босса? Видимо он попадает на какую то игровую площадку на которой сидит этот самый босс? Наверно там есть какие то характерные изображения, кнопки и т.д. Что то же служит сигналом для атаки? Это надо найти и заложить уникальное изображение в память бота, для сравнения с изображением на экране.
Вот, написал.
Написал много, бестолково. Сорри если кого утомил. Может кому то это всё пригодится.