Гайд по созданию автокликера
-
0
-
2014
Название: How to create Autoclicker (Guide)
Тип: Мануал
Описание: Создаем хороший и достаточно умный автокликер своими руками.
Никто из нас не любит использовать расходники руками. Многие уже забыли о прямых пвп, когда дагер выходил без ацп. Пользуемся всякими утилитами по типу ACP, пилота, радара; делаем бинды на клавиши, кнопки, скролы мыши/клавиатуры. Но частенько на серверах запрещены использования пакето-зависимых программ, а кликеры и биндеры отслеживают по логам, донесениям и прочим тривиальным способам. В этом гайде я научу вас созданию более-менее умного кликера. Даже не научу, а задам направление для дальнейшей разработки.
Для создания автокликера можно использовать практически любой язык программирования (Delphi и C++ Builder очень просты в изучении, да и потом они вам пригодятся), можно взять готовые кликеры или исполнители скриптов. Главное, чтобы в вашем скрипте можно было бы совершать следующие операции:
* определение цвета пиксела на экране
* команда создания случайного числа (random)
* команда задержки времени в милисекундах или более мелких единицах (delay)
* отправлять нажатия клавиш
Это самый сложный этап. На нём нужно разработать алгоритм - последовательность команд и действий, благодаря которой наш кликер будет функционировать. Давайте для примера определимся, что использовать мы будем Greater CP Potion. Соответственно цель восстановления - Combat Points (CP). По аналогии сделать под любой другой расходник сможет даже ребенок. Что нам известно?
* Восстанавливает CP (количество восстанавливаемых поинтов нас не интересует)
* Имеет откат 500мс
Каким образом работает программа? Одна часть следит за количеством СР, посылая соответствующие сообщения другой. Вторая часть в зависимости от сообщений хавает или не хавает банки.
Рассмотрим проектирование каждой из частей.
1. Определяем когда включать автоюз банок. Очень не рекомендую начинать хавать банки при любом изменении показателя СР. Это палевно. Задавайте этот уровень на ваше усмотрение. . Также для более реального человеческого фактора можно привязать включение автоюза к горячей клавише, а не к уровню СР. Выключаем автоюз по достижении полного количества шкалы, либо по факту смерти, либо при расходе всех банок. Как это реализуется, рассмотрим потом ниже.
2. Теперь нам нужно придумать как создать кликанье банок максимально приближенное к использованию банок человеком, а также максимально эффективное в этих ограничениях. Первое, что я советую сделать, это поклацать на слот ЦП банок в обычном бою и заметить, сколько раз в секунду вы нажимаете. Идеал робота - 2 раза в секунду (откат полсекунды). Следовательно, нам нужно произвести количество нажатий кратное двум. Я клацаю 3 раза. Думаю спокойно можно клацать и 4 раза. Поэтому остановимся на этой цифре. В идеальных условия, если программа производит 4 клика в секунду, выпивается максимально возможное количество банок, т.е. две штуки. Задержка между кликами получается 1000 / 4 = 250 (мс). Это максимальная эффективность. Естественно, в логах сервера это красиво отображается, и даже самый тупой админ хотя бы начнёт вас подозревать. А дальше доказать применение ПО автоматизации, как два пальца об асфальт. Посему введём человеческий фактор клика. Нам необходимо создавать задержки случайного значения между стандартно-отмеренными кликами с добавлением времени фиксированной задержки. Вы спросите, почему только добавляем время? Почему не отнимаем время, ведь мы можем клацнуть по клавиатуре и быстрее, чем обычно? Отвечаю, отнимание времени очень сильно понижает эффективность программы. Любое отнимание сопутствуется пропуском съедания одной банки. В логах только случайная прибавка времени будет выглядеть и так правдоподобнее некуда. Барьеры случайности увеличения задержек выбирайте сами. Помните, это палка о двух концах. С одной стороны - эффективность, с другой - реалистичность.
Реализацию будем рассматривать также по двум частям.
Чтобы определить уровень СР, нам необходимо знать цвет пикселов полного СР. При этом учтите, На всей ширине полоски, цвета разные
Не стоит привязываться к постоянным координатам и постоянным цветам, т.к. при следующем запуске клиента не факт, что окно не переместится, или вам вдруг захочется изменить гамму или ещё что-то, что может случится. Поэтому необходимо определять цвет пиксела полного СР и его уровень при каждом запуске нашего автокликера. Я это делаю очень просто: необходимо подвести курсор к уровню СР, после пересечения, которого начинает работать автоюз, и нажать горячую клавишу. После нажатия программа запоминает координаты пиксела и его цвет.
Как только цвет пиксела по этим координатам изменился, значит нас бьют, и надо хавать банки. Отправляется сообщение второй части программы. Как только цвет снова становится идентичным заданному, отправляется
сообщение "всё, хорош".
Небольшой пример реализации на С++, используя WinAPI:
Что то в таком духе...
2. Реализуем часть программы, которая долбит слот с банками. Работать начинает по приказу первой части, по нему же и заканчивает. Напишем реализацию на абстрактном коде. Зададим функции:
* Задержка( Время ); - выставляет задержку по параметру Время, который идёт в милисекундах (Например, Задержка(1500); - делает паузу на полторы секунды)
* Случайно( Предел ); - создаёт случайное число из диапазона 0 - Предел. (Например, Случайно(350); может быть равно 0, 12, 104... 350 )
* Нажать( Клавиша ); - делает виртуальное нажатие клавиши (Например, Нажать(Ф12); - клацает F12)
Сейчас я покажу простенький пример комбинирования нажатий с человеческим фактором. Оно идёт в цикле, условием выхода из которого является получение комманды остановки от первой части программы. Пусть слот с СР банками - 12
Нажать ( Ф12 );
Задержка ( 250 + Случайно ( 200 + Случайно (200) ) );
Это простейшая хитрость. Придумывать и играться со случайными задержками можно много и долго. Создавать ветвистые алгоритмы, с формулами по расчету этих чисел. Я только лишь показал, как нужно делать, в какую сторону двигаться
И еще не по теме, но все же:
Я предпочитаю огнезащитные краски Дексд, потому что она дает гарантию качества на весь ассортимент товара. Все постройки у меня деревянные, так что экономить на защите нельзя.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.
Коментарии
Коментарии