Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Создаем хороший аutoclicker. Гайд.

-

Статьи и описания по Lineage 2

- Статьи, квесты, карты и описания мира Lineage 2 в этом разделе

Ответ
 
Опции темы
Старый 09.11.2010, 14:36   #1
 Разведчик
Аватар для hugo911
 
hugo911 скоро будет известенhugo911 скоро будет известенhugo911 скоро будет известен
Регистрация: 14.07.2009
Сообщений: 27
Популярность: 216
Сказал(а) спасибо: 44
Поблагодарили 25 раз(а) в 14 сообщениях
Отправить сообщение для hugo911 с помощью Skype™
 
Post Создаем хороший аutoclicker. Гайд.

[Ссылки могут видеть только зарегистрированные пользователи. ]


// ВВЕДЕНИЕ

Никто из нас не любит использовать расходники ручками. Многие уже забыли о прямых пвп, когда дагер выходил без ацп. Пользуемся всякими утилитами по типу ACP, пилота, радара; делаем бинды на клавиши, кнопки, скролы мыши/клавиатуры. Но частенько на серверах запрещены использования пакето-зависимых программ, а кликеры и биндеры отслеживают по логам, донесениям и прочим тривиальным способам. В этом гайде я научу вас созданию более-менее умного кликера. Даже не научу, а задам направление для размышлений и разработки.[

// НАМ ПОТРЕБУЕТСЯ


[Ссылки могут видеть только зарегистрированные пользователи. ]
Для создания автокликера можно использовать практически любой язык программирования (Delphi и C++ Builder очень просты в изучении, да и потом они вам пригодятся), можно взять готовые кликеры или исполнители скриптов. Главное, чтобы в вашей среде можно было бы совершать следующие операции:

  • определение цвета пиксела на экране
  • команда создания случайного числа (random)
  • команда задержки времени в милисекундах или более мелких единицах (delay)
  • отправлять нажатия клавиш
Исторически сложилось, что я пишу на с++, поэтому примеры реализации некоторых частей будут приведены на этом языке либо на абстрактном. Но думаю без проблем переведу на любой другой язык, если попросите.

// ПРОЕКТИРОВАНИЕ
Это самый сложный этап. На нём нужно разработать алгоритм - последовательность команд и действий, благодаря которой наш кликер будет функционировать. Давайте для примера определимся, что использовать мы будем Greater CP Potion. Соответственно цель восстановления - Combat Points (CP). По аналогии сделать под любой другой расходник сможет даже ребенок. Что нам известно?

[Ссылки могут видеть только зарегистрированные пользователи. ]

  • Восстанавливает CP (количество восстанавливаемых поинтов нас не интересует)
  • Имеет откат 500мс (если путаю не бейте:ab: но это не суть важно)
Каким образом работает программа? Одна часть следит за количеством СР, посылая соответствующие сообщения другой. Вторая часть в зависимости от сообщений хавает или не хавает банки.

Прим. Я предпочитаю разделять эти две части на отдельные потоки (Windows Threads). Под каждый расходник - свой поток.


Рассмотрим проектирование каждой из частей.
  1. Определяем когда включать автоюз банок. Очень не рекомендую начинать хавать банки при любом изменении показателя СР. Это палевно. Задавайте этот уровень на ваше усмотрение. Я ставлю обычно что-нибудь в районе 90%. Также для более реального человеческого фактора можно привязать включение автоюза к горячей клавише, а не к уровню СР. Выключаем автоюз по достижении полного количества шкалы, либо по факту смерти, либо при расходе всех банок. Как это реализуется, рассмотрим потом ниже.
  2. Теперь нам нужно придумать как создать кликанье банок максимально приближенное к использованию банок человеком, а также максимально эффективное в этих ограничениях. Первое, что я советую сделать, это поклацать на слот ЦП банок в обычном бою и заметить, сколько раз в секунду вы нажимаете. Я, например, клацаю около трёх раз. Будем отталкиваться от этой цифры. Идеал робота - 2 раза в секунду (откат полсекунды). Следовательно, нам нужно произвести количество нажатий кратное двум. Я клацаю 3 раза. Думаю спокойно можно клацать и 4 раза. Поэтому остановимся на этой цифре. В идеальных условия, если программа производит 4 клика в секунду, выпивается максимально возможное количество банок, т.е. две штуки. Задержка между кликами получается 1000 / 4 = 250 (мс). Это максимальная эффективность. Естественно, в логах сервера это красиво отображается, и даже самый тупой админ хотя бы начнёт вас подозревать. А дальше доказать применение ПО автоматизации, как два пальца обасфальт. Посему введём человеческий фактор клика. Нам необходимо создавать задержки случайного значения между стандартно-отмеренными кликами с добавлением времени фиксированной задержки. Вы спросите, почему только добавляем время? Почему не отнимаем время, ведь мы можем клацнуть по клавиатуре и быстрее, чем обычно? Отвечаю, отнимание времени очень сильно понижает эффективность программы. Любое отнимание сопутствуется пропуском съедания одной банки. В логах только случайная прибавка времени будет выглядеть и так правдоподобнее некуда. Барьеры случайности увеличения задержек выбирайте сами. Помните, это палка о двух концах. С одной стороны - эффективность, с другой - реалистичность.

// РЕАЛИЗАЦИЯ
Реализацию будем рассматривать также по двум частям.
1. Чтобы определить уровень СР, нам необходимо знать цвет пикселов полного СР. При этом учтите, На всей ширине полоски, цвета разные. [Ссылки могут видеть только зарегистрированные пользователи. ] . Не стоит привязываться к постоянным координатам и постоянным цветам, т.к. при следующем запуске клиента не факт, что окно не переместится, или вам вдруг захочется изменить гамму или вообще *** его знает, что может случится. Поэтому необходимо определять цвет пиксела полного СР и его уровень при каждом запуске нашего автокликера. Я это делаю очень просто: необходимо подвести курсор к уровню СР, после пересечения, которого начинает работать автоюз, и нажать горячую клавишу. После нажатия программа запоминает координаты пиксела и его цвет.
Как только цвет пиксела по этим координатам изменился, значит нас пиздят, и надо хавать банки. Отправляется сообщение второй части программы: "поехали!". Как только цвет снова становится идентичным заданному, отправляется сообщение "всё, харе".
Небольшой пример реализации на С++, используя WinAPI:

Код:
POINT Cursor_Position;  // Позиция пиксела
COLORREF CP_Color;   //Цвет пиксела с заполненным СР
GetCursorPos(&Cursor_Position);  //Определяем позицию пиксела по положению курсора
hdc = CreateDCA("DISPLAY",NULL,NULL,NULL); //получаем текущий контекст экрана
CP_Color=GetPixel(hdc, Cursor_Position.x, Cursor_Position.y);  //Определяем цвет пиксела по позиции для текущего контекста экрана
bool AutoUse = false; //переменная, отвечающая за работу автоюза
while (!End)  //цикл проверки цвета пиксела
{
Sleep(10); //задержка между проверками. 10 мс достаточно, чтобы не грузить комп hdc = CreateDCA("DISPLAY",NULL,NULL,NULL); if(GetPixel(hdc, Cursor_Position.x, Cursor_Position.y)!=CP_Color) ) //если цвет изменился, и автоюз выключен {
if (!AutoUse) {
SendMessage("начать автоюз"); //отдаем комманду AutoUse = true;
}
} else //если цвет равен заданному, и автоюз включен {
if(AutoUse) {
SendMessage("всё нормально, глуши мотор"); AutoUse = false;
}
}
}
Что то в таком духе...

2. Реализуем часть программы, которая долбит слот с банками. Работать начинает по приказу первой части, по нему же и заканчивает. Напишем реализацию на абстрактном коде. Зададим функции:

  • Задержка( Время ); - выставляет задержку по параметру Время, который идёт в милисекундах (Например, Задержка(1500); - делает паузу на полторы секунды)
  • Случайно( Предел ); - создаёт случайное число из диапазона 0 - Предел. (Например, Случайно(350); может быть равно 0, 12, 104... 350 )
  • Нажать( Клавиша ); - делает виртуальное нажатие клавиши (Например, Нажать(Ф12); - клацает F12)
Сейчас я покажу простенький пример комбинирования нажатий с человеческим фактором. Оно идёт в цикле, условием выхода из которого является получение комманды остановки от первой части программы. Пусть слот с СР банками - 12
Код:
Нажать ( Ф12 );
Задержка ( 250 + Случайно ( 200 + Случайно (200) ) );

Это простейшая хитрость. Придумывать и играться со случайными задержками можно много и долго. Создавать ветвистые алгоритмы, с формулами по расчету этих чисел. Я только лишь показал, как нужно делать, в какую сторону двигаться

Автор гайда - MIBIHA.



Копипаст с danieldefo.ru
________________
Помог? тыкни спасибку

Последний раз редактировалось hugo911; 09.11.2010 в 14:44.
  Ответить с цитированием
Пользователь сказал cпасибо:
MAGA7 (11.11.2010)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] AutoClicker v.2.2 BlackWinG Боты, скрипты и прочий софт для Lineage 2 41 26.07.2010 13:56
Ищу хороший гайд по сливу Баз UltrarAZOR Общение и обсуждение, архив Lineage 2 8 12.04.2010 09:22
[Информация] Хороший видео гайд по прохождению куба no6egyH Статьи, квесты и описания по Perfect World 3 11.04.2010 21:39

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 07:40.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net