[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Эта программа умеет нажимать клавиши
F1-F12 через заданный промежуток времени
1 Запускаем бота
2 запускаем Л2 ждем пока загрузится
3 Жмем в боте кнопку "Указать окно"
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
4 Жмем правой кнопкой мыши в центр окна l2
5 Настраиваем таймер
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Примечание:
Задержка указывается в мс 1 сек = 1000мс примерно
Если вы указываете маленькие промежутки времени, то не факт что 1 сек будет равна 1000мс.
Работоспособна на руоффе (проверенно 15.08.2011)
По хорошему программу надо доработать, но мне лень потому что я писал ее на Delphi год назад (кстати в исходнике 90% *****кода), а сейчас изучаю C++. Может кому то пригодится исходник.
По архитектуре программа проще не придумать.
Сначала находится HWND окна,
кстати тут трабл, иннова поставила какую то "супер мега защиту" так что стандартные методы типа FindWindow не работают, приходится извращаться с hook'ами
Затем по таймеру окну отсылается WM_KEYDOWN WM_KEYUP
Скачать
[Ссылки могут видеть только зарегистрированные и активированные пользователи] в архиве также есть работоспособная версия бота
возможно ли под рыбалку настроить?
А как вообще надо "рыбачить"?
По каким параметрам определяется выбор скила?
enot221
29.08.2011, 22:03
Да рыбачить можно...
achehin
30.08.2011, 00:11
Да рыбачить можно...
как рыбачить подскажи пожалуйста, если анализа экрана нет? или есть какой то алгоритм который в не зависимости от того надо тянуть или подсекать будет работать?
BiTru
30.08.2011, 08:49
кстати тут трабл, иннова поставила какую то "супер мега защиту" так что стандартные методы типа FindWindow не работают, приходится извращаться с hook'ами
Затем по таймеру окну отсылается WM_KEYDOWN WM_KEYUP
Подскажи пожалуйста другой способ не через WM_KEYDOWN WM_KEYUP ( PostMessage , SendMessage) просто я думаю что не всегда срабатывает или твой способ самый актуальный?
stels-cs
30.08.2011, 11:33
Подскажи пожалуйста другой способ не через WM_KEYDOWN WM_KEYUP ( PostMessage , SendMessage) просто я думаю что не всегда срабатывает или твой способ самый актуальный?
А почему думаешь, что не всегда србатывает?
Есть еще вариант с keybd_event, но он не работает для руоффа, еще он генерирует сообщения клавиатуры для всей системы сразу, то есть имитация нажатия будет только в активном окне. На голом клиенте без всяких защит этот способ работает (можно даже сочетания клавиш имитировать).
Еще можно свой собственный драйвер клавиатуры написать.
BiTru
30.08.2011, 20:14
Извиняюсь конечно а куда столько кода в твоем исходнике для эмуляции нажатия клавиш разве просто нельзя послать нажатие клавиш в указанное окно?
Я думаю этого достаточно:
var
wnd: HWND;
begin
wnd := FindWindow(0, 'Lineage II');
if wnd <> 0 then
PostMessage(wnd, WM_KEYDOWN, VK_f1, 0)
end;
stels-cs
30.08.2011, 21:30
Извиняюсь конечно а куда столько кода в твоем исходнике для эмуляции нажатия клавиш разве просто нельзя послать нажатие клавиш в указанное окно?
Я думаю этого достаточно:
var
wnd: HWND;
begin
wnd := FindWindow(0, 'Lineage II');
if wnd <> 0 then
PostMessage(wnd, WM_KEYDOWN, VK_f1, 0)
end;
Этого достаточно, чтоб один раз нажать F1
Там 99,9% кода - это обработка интерфейса, причем не оптимизированными алгоритмами (*****код)
Еще там мягко говоря идиотская конструкция получения HWND
Дело в том, что теперь на оффе стоит какая то "защита", суть ее в том, что она блокирует FindWindow EnumWindows и подобные функции. Поэтому я решил установить глобальный hook на "щелчек правой кнопкой в окне" (за это отвечает dll) таким способом можно HWND окна линейки
BiTru
31.08.2011, 06:20
stels-cs, Ну конечно 1 кнопки я уж не стал кидать весь код. А за разъяснение огромное спасибо!
У меня к тебе еще вопрос длл ты сам писал? если да не мог бы ты кинуть исходник или на крайней случай обращение к функциям к длл.
Извиняюсь все нашел в твоем исходнике еще раз огромное спасибо!
achehin
01.09.2011, 13:15
А как вообще надо "рыбачить"?
По каким параметрам определяется выбор скила?
Существует несколько способов определения того, какое из умений использовать в тот или иной момент. Наиболее успешным считается наблюдение за полоской здоровья рыбы:
если полоска HP рыбы стоит на месте — используем Тянуть;
если полоска HP рыбы начинает увеличиваться, то есть рыба восстанавливается — Подсечь.
_[Ссылки могут видеть только зарегистрированные и активированные пользователи]
те если можно анализировать экран тогда можно без проблем рыбачить