Uopilot как написать скрипт

Теория

Это небольшое обучение расчитано на тех кто не знаком со скриптами и программированием.
Итак как работает скрипт и что в нем есть:
Код состоит из текста(=команд) выполнение которого происходит построчно начиная с первой и до последней строки, но для
обеспечения ветвления логики (=условных переходов) возможно как пропустить строки так и перейти в конкретное место.
Команды состоят из групп переменных, операторов и функции, переменные это контейнеры в которые можно помещать числа или
строки(буквы+цифры), переменные бывают трех типов, это числовые начинающиеся с #, строковые $, и массивы % представляющие
собой переменные сгрупированные под одним именем:

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. Иначе будет только шевелить мышкой, а нажимать кнопки не сможет)

В открышейся программе перейдите на вкладку «Скрипт».
Здесь вы увидите поле для ввода текста, куда можно вводить команды скрипта.

563c21b25922.jpg

Принцип работы очень прост: после запуска программа переходит по очереди от одной строчки к другой, выполняя содержащиеся в них команды.

Вот несколько команд, которые мы будем использовать:

Сочетание клавиш Ctrl+A запомнит для программы точку, в которой в данный момент находится указатель мыши. Нажав соответствующие клавиши в программе, вы сможете вставить в скрипт координаты данной точки, а также ее цвет (в данном гайде не рассматривается).

move [координаты]
перемещает курсор мыши в заданную точку на экране

left [координаты]
левый клик мышью

right [координаты]
правый клик мышью

wait [число]
ждать перед выполнением следующей строки
число по умолчанию считается в миллисекундах (ждать 1000 = 1сек)

send [клавиша/сообщение]
если после команды send программа распознает одну из клавиш, то будет нажата клавиша
если распознать не удалось, будет вставлено в игру в виде текста

repeat 10

end_repeat

повторить содержащееся до строки end_repeat 10 раз, затем продолжить выполнение скрипта

5ff383301bb3.jpg

Если выскакивает такое сообщение, то программа просит указать, с окном какой игры она будет работать. Для этого наведите указатель мыши на любой участок нужного окна игры и нажмите 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

//по умолчанию после прохождения всех строк, скрипт будет запускаться заново бесконечное число раз

на скринах обозначены области действия скрипта

5fb102ec5c3f.jpg

02fd5a476a6d.jpg

Советы:

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

Всем Привет! up
В Этом мини гайде я расскажу вам об основных функциях автокликера 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

Понравилась статья? Поделить с друзьями:
  • Абсолютно невыполненное задание как пишется
  • Абсолютно невосприимчивый как пишется
  • Абсолютно невозмутимый как пишется
  • Абсолютно не умный как пишется
  • Tinder служба поддержки как написать