Если приложение говорит о взломе, либо закрывается при запущенном пилоте, либо приложение не реагирует на клики:Измените название окна с пилотом.
Это возможно сделать следующими способами:
а) Настройки/Пустая строка ниже "Показывать все окна" - поставится галочка. При перезапуске название изменится.
б) Внимательно отнеситесь к заголовку. В нем написана версия и соответственно нужно поправить при отличной от вашей.Кодset #UOpilot findwindow (UoPilot v2.18.5 WK)
set #result setwindowtext (#UOpilot Траляля)Название файла UoPilot
Переименуйте uopilot.exe во что нибудь другое. Ну скажем notepad.exeПорядок запуска
Поэкспериментируйте с порядком запуска. Сначала пилот, потом приложение либо наоборот.
Используйте программу HideToolz (см.Яндекс)
Используйте аппаратный кликер (Arduino)
Очеловечивание действий скрипта
Так как добавить неидеальности в действия макроса?!Координаты
Везде, где можно задаем диапазон координат, а не фиксированные X и Y
Возьмем прямоугольник с координатами #x0, #y0 #x1, #y1, любая точка внутри которого нам подойдет.КодSet #x #x0 + random(#x1 - #x0)
Set #y #y0 + random(#y1 - #y0)Период между кликами
Между любыми действиями в игре, такими как перемещение мыши, нажатие кнопок и пр. делайте рандомные паузы.КодSet #переменная [мин. время паузы] + random(число)
Wait #переменная
Пример: нужно сделать задержку от 3 до 5.5 секунд
wait random(2500) + 3000Продолжительность клика
Клик мышкой состоит из 2-ух действий, нажатие кнопки и отпускание кнопки. Если не ошибаюсь интервал между первым и вторым действиями можно отследить.
Так заменим команду клика мышкой простенькой подпрограмкой, human-изирующей данное действие:Код// Подпрограмма Human Click
// Поместить в скрипт после End_Script)
:hleft
// ускоряем выполнение подпрограммы. Необязательно.
Set #delay linedelay // сохраняем текущий параметр задержки между строками
Set linedelay 100 // задаем задержку между строками.
Get Mouse_Pos #x #y // узнаем координаты мыши
Left_Down #x #y // Нажимаем кнопку
Set #t random(500) + 200 // задаем длительность задержки
Wait #t
Left_Up #x #y // отпускаем кнопку
Set linedelay #delay // возвращаем задержку между строками
Return
В скрипте заменяем
Left <#x> <#y>
на
Move <#x> <#y>
GoSub hleftПеремещение курсора (Move)
Пока не реализовал.
Задачи:
- движение по прямой с откланением в несколько пикселов в каждую сторону
- неравномерная скорость движения курсора. Ускорение - движение - замедление.Время OnLine
Научите скрипт выходить из игры хоть на несколько часов в сутки. Ну и заходить обратно естественно.Список команд по теме.
- сделать Logout
- закрывать клиент вежливо, нажав в игре кнопочку Выход
- послать клиенту комбинацию Alt+F4
- убить клиент с помощью команды Terminate
- перезагрузить компьютер, не забыв добавить UoPilot в Автозапуск
Exec <команда> [параметры] - запуск приложения
Terminate <заголовок окна> - завершение приложения
WindowFromCursor - хендл окна, находящегося под курсором
Set #var FindWindow (<caption>) - возвращает хендл окна
Set WorkWindow <handle> - задание рабочего окна из скрипта
Set $var GetWindowText (<handle>) - возвращает заголовок указанного окна
ShowWindow <handle> <HIDE | MAXIMIZE | MINIMIZE | RESTORE | SHOW | TOP>
Проверка UpTime:КодIf timer > 3600000 // если скрипт работает больше часа - перезагрузить компьютер.
Exec shutdown.exe -r -f -t 0
End_If
Мой скрипт запуска браузерной Flash игры:Код
Set LineDelay 100
Set #handle FindWindow (UoPilot v2.18.8 WK)
ShowWindow #handle MINIMIZE
Exec C:\Program Files\Google\Chrome\Application\chrome.exe game.owonline.ru
Wait 10s
Set #handle FindWindow (One World браузерная онлайн игра)
ShowWindow #handle MAXIMIZE
Move 500 400
kLeft 500 400
Set #handle WindowFromCursor
Set WorkWindow #handle
ShowWindow #handle TOP
Repeat 2
Send {Tab}
End_Repeat
Sendex <мой пароль>
Wait 5s
Send {Enter}
Wait 30s
Start_Script 1
End_Script
Проверки
Встречал в браузерках появление здорового квадрата, закрывающего игровое пространство с маленькой кнопочкой Закрыть в уголке. Несколько кликов по квадрату и ты забанен.
Бороться можно проверками. И чем их больше - тем лучше.Проверка по цветуКодIf <коорд> <цвет> // если в точке с координатами - цвет
While <коорд> <цвет> // пока в точке с координатами - цвет
// сравнение цвета в точке до и после действия
Get Color <#color1> <#x> <#y> [abs]
действие
Get Color <#color2> <#x> <#y> [abs]
If\While <#color1> <зн.оп> <#color2>
//поиск цвета в области
Set #find FindColor (<StartX StartY EndX EndY ShiftX ShiftY цвет %массив> [type] [abs])
#find = 1 - цвет найден
#find = 0 - цвет НЕ найден
Прямое человеческое вмешательство
На первом курсе случай был. Вернулся домой с экзамена; гляжу, а в UO рядом с моей копалкой стоит GM и грозится забанить меня за неуважительное к нему обращение Остановил скрипт, успокоил ГыМа, запустил скрипт по новой, распечатал диалог и пошел праздновать сдачу с друзьями. Ну и поржали мы тогда над этой распечаткой.Визуальное наблюдение
В MMORPG перса могут палить GM'ы либо в режиме бога или подойдя к вам своим персом. Да и среди игроков может найтись "Павлик Морозов".
Бот долже визуально не особо отличаться от обычных игроков.Приватные сообщения
GM'ы и иже с ними могут написать вашему, активно играющему боту приватное сообщение. Если на него не ответить - лишний повод для подозрений. Идей нет. Для UO в свое время писал модуль чатобота, но за давностью все поутерялось.Нападение
В MMORPG на вашего бота могут напасть другие игроки или даже GM если у него закрались подозрения, что-бы посмотреть на поведение персонажа в бою.
a) Если есть возможность делайте проверку на наличие поблизости противников\ПК\ГМов и при обнаружении телепорт\Logout\...
B)Делайте скриншоты в начале каждого боя. Это позволит вам хоть понять как и кто вас кильнул.
Printscreen <handle> <x> <y> <width> <heigth> <path>Код
Set $hour hour
Set $min min
Set $sec sec
Set $dot .
Set $jpg jpg
Set $filename $hour$dot$min$dot$sec$dot$jpg
PrintScreen 0 0 0 0 0 C:\PrtSc\$filename
Вставить скрипт в начало боя.
Идеи, соображения, наработки и др. полезная инфа по теме приветствуется.
Прежде чем прокоментировать пост - ответьте на вопрос, дополнит ли мой коментарий уже имеющуюся информацию? Если нет - не стройте из себя
С уважением, Mad-Hat
Вверх