Теория
Это небольшое обучение расчитано на тех кто не знаком со скриптами и программированием.
Итак как работает скрипт и что в нем есть:
Код состоит из текста(=команд) выполнение которого происходит построчно начиная с первой и до последней строки, но для
обеспечения ветвления логики (=условных переходов) возможно как пропустить строки так и перейти в конкретное место.
Команды состоят из групп переменных, операторов и функции, переменные это контейнеры в которые можно помещать числа или
строки(буквы+цифры), переменные бывают трех типов, это числовые начинающиеся с #, строковые $, и массивы % представляющие
собой переменные сгрупированные под одним именем:
set #a 1 set $b "asd" set %c[1] 1 set %c[2] "asd" set %c[3] "asd 1"
Таким образом мы можем думать о переменных как о данных с которыми можно делать много чего интересного.
Функции и команды позволяют производить разнообразные действия с переменными и не только, некоторые функции могут возвращать
значения, например «set #a 1» вместо 1 может быть функция которая вернет что то, set поместит это в #a, так же для работы
функций им нужны параметры(переменные-данные), это можно написать так «Функция1(параметр1 параметр2 3.. 4.. и тд.)», можно
сравнить с соковыжималкой(функция) и яблоком(данные), на выходе имеем сок(результат работы) и мякоть(возврашенные данные),
притом и функции и соковыжималки требуют для работы электричество(выполнение)
Дальше приводится описание самых необходимых команд и функций для начала скриптописания:
// коментарий, все что после "//" в этой строке не выполняется
set обьявление переменной и или присваивание значения:
set #a 1 //создание переменной #a и присваивание ей числа 1 set #a #a + 2 // присваивание #a ее же значение но +2, после выполнения #a будет содержать 3
wait ожидание, можно указать с точностью до 1 милисекунды:
wait 1s // ждать 1 секунду wait 2823 // ждать 2 секунды и 823 милисекунды
if условный оператор, в результате вычисления выражения, тело «ифа» либо выполняется либо нет, выражения идут после if и
должны быть в формате больше(>), меньше(<), равно(=), не(!), то есть приводить условие к однозначному результату ДА(true)
или НЕТ(false), можно использовать несколько выражений соединенных and(и), or(и или), xor(или):
if (#a > 0) and (#a < 10) // если #a больше чем ноль и меньше 10 тогда выполнится тело условия set #a 11 // это тело условия set $string asd11 // это тело условия end_if // конец условия
while условный цикл «пока истинно», тоже самое что и if только после выполнения тела, перехода к следующей строчке после
конца условия не будет, вместо этого опять вычислится выражение и если оно НЕТ(false) тогда будет выход из цикла, если
ДА(true) тогда сново выполнится тело:
while (#a > 0) and (#a < 10) // если #a больше чем ноль и меньше 10 тогда выполнится тело условного цикла set #a #a + 1 // это тело условного цикла set $string asd11 // это тело условного цикла end_while // конец условного цикла
left кликнуть левой кнопкой мышки по координатам (=курсором), сначала пишется горизонтальная координата (X), а затем вертикальная (Y):
left 450, 220// кликнуть левой кнопкой по координатам X=450, Y=220
send нажать кнопку, в разных ОС что бы работало как надо, кнопку необходимо заключаться в {}:
send N // нажать кнопку N send {N} // нажать кнопку N send F1 // нажать кнопку F1
findcolor поиск точки по цвету в квадратной области, возвращает сколько точек найдено и где, параметры:
FindColor (левыйКрайОбласти верхнийКрайОбласти правыйКрайОбласти нижнийКрайОбласти шагПоискаГоризонталь шагПоискаВертикать
цвет массивДляКоординат типПоиска), пример:
set $a findcolor (154, 80 318, 260 1 1 2366701 %arr 2) // вернёт в $a сколько нашлось, вернёт в %arr координаты каждой найденной точки
end_script завершение работы скрипта, можно не использовать и тогда в конце скрипта выполнение перейдет на первую строчку.
Практика
Теперь можно использовать полученные знания и написать пару простейших ботов, сперва нужно привязать скрипт к целевому окну,
что бы это сделать поместите пилот поверх окна, разместите курсор мыши над окном и нажмите ctrl+A:
1)
send F1 // нажать F1 wait 3000 // ждать 3сек send G // нажать G wait 15s // ждать 15сек, по завершинии ожидания сново выполнится "send F1" //end_script // завершиние работы скрипта закоментированно, поэтому работать код будет до ручного выключения
2)
set $a 0 // для старта условного цикла нужна переменная $a с значением 0 while $a < 1 // пока $a меньше 1, то есть тело будет выполнятся пока функция findcolor не вернет в $a по крайней мере 1 (количество найденных точек) set $a findcolor (154, 80 318, 260 1 1 2366701 %arr 2) // когда функция найдет точку она поместит ее координаты в %arr wait 10 // ждать 10мс end_while // конец цикла, переход к следующей строчке будет только тогда когда findcolor что то найдет и в $a будет уже не 0 left %arr [1 1], %arr [1 2] // кликнуть мышкой по первой найденной точке,горизонтальная координата=%arr[1 1] вертикальная=%arr[1 2] wait 3s // ждать 3сек send F7 // нажать F7 wait 7s // ждать 7сек, после ожидания выполнение перейдет на первую строчку где $a будет присвоено 0, благодаря чему цикл while сможет опять запустится
Это только маленькая часть функций, полное описание можно найти тут:
UOPilot Wiki http://uopilot.tati.pro
UOPilot->?->Помощь по языку скриптов
UOPilot->?->История развития программы
UoPilot | Скачать
Описание основных функций автокликера UOPILOT:
*Полное описание работы программы uopilot, заняло бы достаточно много времени, и получилось достаточно емким по объему — размеру. В данном руководстве описаны лишь базовые основы скриптинга и применения стандартного функционала программы уопилот.
Почти все команды и функции программы UoPilot, подробно описаны в справке поставляемой вместе с программой.
Привязка к окну:
- Расположите программу UoPilot поверх окна с которым собираетесь работать(игра или приложение).
- Наведите мышку на любую область окна приложения.
- Нажмите сочетание клавиш Ctrl+A.
Вкладка «Общее»:
В данной вкладке Вы можете осуществить быстрый выбор кнопок, и установить таймер их срабатывания.
Для этого —
- Выберите кнопку из выпадающего списка слева
- Установите таймер на необходимое время(1000 = 1сек).
- Нажмите кнопку — «Старт».
Окно скриптинга:
- Кнопка «+» создает новое поле для ввода скрипта.
- Кнопка «-» удаляет скрипт.
- Кнопка плей(стрелочка), запускает выбранный скрипт.
- Пауза — ставит скрипт на паузу в текущей строке выполнения скрипта.
Скрипты:
*Описать систему скриптинга в двух словах, крайне тяжело, поэтому приведем один пример скрипта, который будет проверять цвет точки в программе и если он совпадает с ранее полученным, уопилот будет нажимать клавишу F1 каждые пять секунд.
Пример —
- Наведите мышку на то место в программе, где необходимо проверять цвет.
- Нажмите сочетание клавиш ctrl+a.
- *Вверху программы появятся координаты точки(x, y), а чуть ниже — числовое представление цвета (xxx).
- Впишите следующие строки
- if x, y xxx
- send F1 5s
- end_if
- Теперь разберем скрипт построчно:
- 1 Если в координатах x, y цвет точки равен xxx
- 2 Нажать F1 и подождать 5 секунд
- 3 Конец условия
Макросы:
В данном меню, есть довольно полезная функция — запись макроса.
С помощью нее можно записать ваши действия с клавиатурой и мышью.
В последствии Вы можете использовать данный макрос внутри скрипта или назначить на него горячую клавишу — hot key.
Остальные меню программы созданы для игры Ultima Online, т.к. изначально программа писалась именно для нее.
Вы можете обсудить программу на нашем форуме. Посмотреть готовые скрипты предоставленные другими пользователями, и использовать их для Ваших целей.
Всем привет!
В данном мини-гайде в качестве примера я расскажу о том, как сделать на UOPilot’e простенький макрос, который позволит вам пить кофеек и читать свежий номер журнала ДОМ2, в то время, как ваш персонаж, стоя на базе под ведром, будет крафтить тофу, а также периодически есть траву галок и прославлять гильдию ОС в чат школы.
UOPilot имитирует управление мышкой и клавиатурой непосредственно на вашем компьютере и на взгляд стороннего наблюдателя неотличим от действий «вручную».
*Разумеется, если не палиться слишком сильно, например бегая туда-сюда к одной и той же нычке с рудой — в этом случае вас легко могут забанить.
— — — — — — — — — — — — —
UOPilot
***
СКАЧАТЬ UOPilot можно здесь
:
http://val-uopilot.narod.ru/uopilot.rar
ОБЯЗАТЕЛЬНО! При запуске, правый клик на программу UOPilot, выберите пункт «Запуск от имени администратора», если у вас Windows7. Иначе будет только шевелить мышкой, а нажимать кнопки не сможет)
В открышейся программе перейдите на вкладку «Скрипт».
Здесь вы увидите поле для ввода текста, куда можно вводить команды скрипта.
Принцип работы очень прост: после запуска программа переходит по очереди от одной строчки к другой, выполняя содержащиеся в них команды.
Вот несколько команд, которые мы будем использовать:
Сочетание клавиш Ctrl+A запомнит для программы точку, в которой в данный момент находится указатель мыши. Нажав соответствующие клавиши в программе, вы сможете вставить в скрипт координаты данной точки, а также ее цвет (в данном гайде не рассматривается).
move [координаты]
перемещает курсор мыши в заданную точку на экране
left [координаты]
левый клик мышью
right [координаты]
правый клик мышью
wait [число]
ждать перед выполнением следующей строки
число по умолчанию считается в миллисекундах (ждать 1000 = 1сек)
send [клавиша/сообщение]
если после команды send программа распознает одну из клавиш, то будет нажата клавиша
если распознать не удалось, будет вставлено в игру в виде текста
repeat 10
…
end_repeat
повторить содержащееся до строки end_repeat 10 раз, затем продолжить выполнение скрипта
Если выскакивает такое сообщение, то программа просит указать, с окном какой игры она будет работать. Для этого наведите указатель мыши на любой участок нужного окна игры и нажмите Ctrl+A.
— — — — — — — — — — — — —
Пример скрипта:
//едим траву галок!
move 1756, 620
right 1756, 620 // кликнуть траву галок
wait 1000 //дождаться вопроса, хотим ли мы захавать траву галок
move 966, 555
left 966, 555 // кликнуть подтверждение
wait 5000 // подождать 5сек пока едим траву
//крафт тофу по 50шт!
repeat 2 //дважды повторить то что находится внутри команды repeat
move 299, 356
left 299, 356 //кликаем в поле ввода
wait 300
send 5
send 0 //вводим число 50
wait 100
move 553, 361
left 553, 361 //кликаем начать производство
wait 260000 //примерно столько времени нужно, чтобы скрафтить 50шт
end_repeat //после повторения заданного кол-ва раз, продолжит выполнять скрипт
//восславляем ОС!
move 135, 854
left 135, 854 //навести курсор и кликнуть по строке чата
send OC power!! //ввести текст
wait 500 //на всякий случай
send Enter // отправить сообщение
wait 500
//по умолчанию после прохождения всех строк, скрипт будет запускаться заново бесконечное число раз
на скринах обозначены области действия скрипта
Советы:
1. Меняйте паузу между выполнением строк скрипта, а также вставляйте необходимые паузы в скрипт. Игровой клиент может не успевать выполнять действия (в т.ч. из-за пинга) и скорее всего в этом случае ваш скрипт собьется.
2. При создании и выполнении скрипта, расставляйте окна инвентаря, профессий и т.д. в игре впритык к краям экрана — таким образом, при следующем входе в игру вы сможете быстро и точно расставить окна интерфейса в те же самые места и не переписывать скрипт заново.
3. Рекомендуется перед каждым кликом мышки перемещать указатель в нужное место командой move, иначе нажатие может не срабатывать.
Написание скриптов
Первое слово в строке — команда,
остальные слова — параметры.
Слова состоят из символов 0-9,
А-z, А-я
Символы #, +, -, *, /, >, <, =, : являются
служебными, остальные разделители.
Т.е. send F5 то же самое, что
send(F5), send [F5] и т.д.
В одной строке может быть только
одна команда.
Регистр не учитывается.
{+} Если первое
слово в строке не команда, то строка считается комментарием. Можно
писать комментарии после всех параметров.
Также таковыми
считается все, что идет после двойного слэша ‘//’.
Крайне
рекомендуется использовать последний метод.
Пример:
wait
5000 здесь идет комментарий…
Некоторые из команд:
(в угловых скобках обязательные
параметры, в квадратных — нет)
знаком {+} помечены изменения
относительно базовой версии
Send <клавиша [пауза]> |
<текст> — «нажать» клавишу и ждать указанное число
миллисекунд. если параметр не распознан как управляющая клавиша, то
он посылается как текст.
{+} Sendex <список клавиш>
-«нажать» последовательно несколько клавиш
// Sendex ~closing
~application @{f4}
Wait <число> — ждать (в
милисекундах)
WaitForTarget [max wait time = 10000] — ждать
«прицела» (в милисекундах)
Left, Right <коорд> —
щелкнуть 1 раз
Double_Left, Double_Right <коорд> — 2
раза
Move <коорд> — «переместить» курсор
{+}
Drag — перенести, если не указать кол-во то перенесется один
некучкующийся предмет, если указать all, то перенесутся все
предметы
// Drag #x #y 320, 240
{+} Set —
установкадобавление переменных
Set $<имя> <значение>
или
Set #<имя> <знач1> [<зн. оп.>
<знач2>]
// Set #i #i + 1
// Set $s test
string
Repeat <число> — повторить <число>
раз
End_Repeat
{+} For #<имя> <начало>
<конец> [шаг]
…
End_for
цикл, с инкрементом
переменной.
// For #i 0 10 2
{+} While <коорд>
<цвет> [цвет2]
пока цвет в точке <коорд> равен
<цвет>,
если задан цвет2, то цвет точки проверяется на
принадлежность диапазону от цвет до цвет2
// While 320 240
1489121
{+} While <знач1> <знак оп.>
<знач2>
пока знач1 >, <, = либо <> знач2
//
While hits > 45
{+} While lastmsg <последнее
сообщение>
пока в последнем сообщении от сервера есть
указанная строка
// While lastmsg too heavy
Goto <метка> — переход на указанную метку
// Goto
end
// :end
IF <коорд> <цвет> [цвет2]
[цвет
в точке <коорд> равен
<цвет>]
Else
[иначе…]
End_IF
Примечание: если
задан цвет2, то цвет точки проверяется на принадлежность диапазону
от цвет до цвет2
{+} If <знач1> <знак оп.>
<знач2>
если знач1 >, <, = либо <> знач2
//
If hits < 45
{+} If lastmsg <последнее
сообщение>
если в последнем сообщении от сервера есть
указанная строка
// If lastmsg too heavy
Say [текст] —
набрать текст и Enter
Msg [текст] — выдать на экран
окошко
Alarm — издает звуковой сигнал, ранее содержащийся в
файле msg.wav
End_Script — остановка скрипта, иначе будет
повторяться все сначала
Итак давайте попробуем написать простейший скрипт
на мининг
1: Сначала забьём клавишу LastObject в опциях макроса в Ultima Online на
F1. Итак если в UO мы нажмем F1
то у нас сработает LastObject (то
есть использовать последний предмет)
теперь в UOPilot в
окне нового скрипта
нажимаем правую клавишу мыши и выбираем команду «send <клавиша [пауза]> | <текст>« выбрав
команду дописываем F1. это и будет первой строкой нашего скрипта
send F1 //то есть в UO чар берет
кирку.
2: Теперь выставим задержку такую чтоб чар успел
взять кирку перед тем как он начнет копать.
В окне скрипта нажимаем правую клавишу мышки и
выбираем команду «wait <число>» и пишим какую задержку мы
хотим в мили секундах, пусть это будет 2300
.Строка будет выглядеть так:
wait 2300 // задержка пока чар не возьмет кирку.
3: Теперь нам надо указать точку использования
курсора Target (там где чар будет
копать). Открываем окно
UOPilot поверх окна Ultima Online на вкладке «Скрипт» то есть там где у нас уже
написано send
F1 и в конце этой строки
нажимаем клавишу «Enter« так чтоб перейти на новую строку
скрипта, теперь
нажимаем правую клавишу мыши и в разделе «Мышка» выбираем
«left <коорд> [abs]»
наводим курсор мыши на то место где мы
хотим копать, но так чтоб окно UOPilota оставалось поверх окна Ultima Online. Удерживая
курсор на этом места нажимаем «Ctrl+A» и
у нас появляться в строке скрипта координаты, для примера это
будет 404, 336 .
Итак строка
должна выглядеть так :
left 404, 336 // использование курсора Target на месте
где надо копать.
4: И так наш чар начал копать в указанном месте,
для перехода на следующую команду скрипта нам надо подождать то есть указать задержку
с помощью команды «wait <число>» как это сделать я надеюсь вы
уже знаете, задержку поставим 7000.
Очередная строка скрипта должна выглядеть так:
wait 7000 // ждем пока чар выкопает руду с
этой точки.
5: Теперь надо сделать так
чтоб чар копал руду в этой точке пока не выкопает все. Чтоб это
сделать перед вначале
команды send F1
нашего скрипта нажимаем клавишу Enter
благодаря чему у нас появляется новая чистая строка в которой мы
можем добавить ещё одну команду. Этой командой будет команда
repeat добавляем мы её нажав в
чистой строке скрипта правую клавишу мыши и выбираем во вкладке
«Циклы» команду «repeat<число>«. Теперь укажем количество
повторений пока чар не выкопает всю руду с одной тачки, это примерно
6-8 раз в одном месте. Итак в итоге
первая строка скрипта будет такой:
repeat 8 // количество повторений процедуры
копания руды в одном месте
6: Ещё осталось добавить команду end_repeat благодоря это команде скрипт будет начинать читаться с
того места где есть
команда repeat
и будет он читаться такое же количество
раз какое число мы поставим в конце команды
repeat.
Итак после комады wait 7000 переходим на новую строку скрипта и нажимаем правую клавишу
мыши и в меню команд выбираем во вкладе «Циклы» команду
«end_repeat» . Строка
скрипта будет выглядеть так:
end_repeat //на этом месте
скрипт возвращается к команде repeat
7: В конце концов весь
скрипт должен выглядеть так:
repeat 8
send F1
wait 2300
left 404, 336
wait 7000
end_repeat
8: Далее для того чтоб чар окапывал полностью все 8
точек вокруг себя надо просто повторять скрипт только показывать
другие координаты курсору Target . будет это выглядеть так:
repeat 8
send F1
wait 2300
left 404, 336
wait 7000
end_repeat
repeat 8
send F1
wait
2300
left 368, 325
wait 7000
end_repeat
repeat
8
send F1
wait 2300
left 351, 294
wait
7000
end_repeat
repeat 8
send F1
wait 2300
left 365,
258
wait 7000
end_repeat
repeat 8
send F1
wait
2300
left 396, 230
wait 7000
end_repeat
repeat
8
send F1
wait 2300
left 431, 251
wait
7000
end_repeat
repeat 8
send F1
wait 2300
left 442,
283
wait 7000
end_repeat
repeat 8
send F1
wait
2300
left 428, 315
wait 7000
end_repeat
9: Ну и на последок хотелось чтоб мы
знали когда чар обкопает все 8 точек вокруг себя для этого мы просто
добавляем из меню команд команду «alarm» когда скрипт дойдет до это
команды то у вас комп проиграет короткий звук очень похожий на
звук ICQ. Если у вас
нет звука тогда просто вместо команды «alarm» добавьте команду
«msg [текст]» и
введите любой текс когда скрипт дойдет до этого места то у вас
вылетит системное окошко предупреждение с тем текстом которые вы
набрали после команды «msg [текст]» . И не
забывайте в конце каждого скрипта добавлять команду «end_script«.
Сайт создан в системе uCoz
В Этом мини гайде я расскажу вам об основных функциях автокликера Uopilot.1.00,
А точнее об настройке скриптов:
Щелкните правой кнопкой мыши над текстом, чтобы выбрать команду из меню.
Первое слово в строке — команда, остальные слова — параметры.
Например:
Left 234, 510
Left Это нажатие левой кнопкой мыши.
234, 510 Это координаторы этого нажатия.
—————————————————————————————————————
Расмотрим команды для Мышки более подробно:
1) Щёлкните правой кнопкой мыши как показано на картинке, у вас должно открыться окно выбора команд.
2) При нажатии на команду она появиться в окне записи скрипта, или раскроет следующие окно выбора.
3) В этом месте настраивается скорость скрипта скорость рассчитывается так 1000ms это 1 секунда следовательно 100ms 0.1 секунды думаю со скоростью всё понятно.
4) В этом месте появляются координаты курсора мышки чтобы они появились нужно навести на нужное место и нажать Ctrl + A
После нажатия вот в этом месте появятся координаты.
Примечание:
Drag — перетаскивание предметов.
Теперь когда вы знакомы с основами и понимаете что к чему перейдём к следующему шагу.
Написание скрипта:
Скрипт это алгоритм выполняющий всё по порядку.
Если вы хотите чтобы ваше Алгоритм действий повторялся, необязательно писать его n количество раз,
достаточно просто вписать команду repeat и число раз.
Рассмотрим на примере отдельного скрипта:
Code
repeat 100 — Глобальный Повтор Всего Скрипта 100 раз.
repeat 2 — повтор определённого действия 2 раза.
left 811, 256 — нажатие левой кнопки мыши по координатам 811, 256
end_repeat — конец повтора.
wait 200 — ожидание 0.2 секунды или 200 миллисекунд.
left 678, 117 — нажатие левой кнопки мыши по координатам 678, 117.
send F1 — нажатие клавиши F1
end_repeat — Конец глобального повтора.
alarm — Звуковой Сигнал
end_script — конец скрипта если вы не поставите эту команду то ваш скрипт будет бесконечным,
Без нее как только он дойдёт до конца своих действий он не остановиться а проделает весь цикл ещё раз и ещё и так бесконечно.
Скрипт не обязательно должен быть таким это всего лишь пример.
После того как вы написали скрипт и хотите его сохранить в левом верхнем углу нажмите на Скрипт.
Появиться окно в котором выберете Сохранить Как, дальше я думаю поняли.
Чтобы открыть скрипт в этом же окне выберите открыть и выбирайте сохранённый скрипт.
Надеюсь после прочтения вы поймёте азы написания скриптов и больше с ними у вас проблем не возникнет.
Upilot которым пользуюсь я вы можете скачать в прикреплении.
VirusTotal