Команды скриптоязыка пилота
Здесь вам предложено описание всех команд Shra Pilot. Их совсем немного, а тех что используются часто и того меньше.
Command name
|
Format
|
Description
|
Example
|
version 0.6b | |||
wait, pause
|
wait n seconds
|
Пауза на n секунд.
|
Wait 2.5
pause 3 seconds |
say,tell
|
say «…»
|
Набирает за вас в консоль UO фразу и нажимает <ENTER>. Команда не мешает вам в это время использовать клавиатуру.
|
say «! Hello, boys and girls»
|
text, write
|
text «…»
|
Набирает за вас в консоль UO фразу, но не завершает нажатием <ENTER>. Команда не мешает вам в это время использовать клавиатуру.
|
text «Are somebody stold you pijamas?»
|
key
|
key «…»
|
Посылает окну UO комбинацию нажатия клавиши. Можно комбинировать с ALT, CTRL и SHIFT. К сожалению эта команда активирует окно UO и прерывает ввод с клавиатуры. :(
|
key «alt+i»
press key «CTRL+F1» push button «L+alt+shift» push «del+alt+ctrl» send macros «alt+F4» ; :-) |
virtkey, easykey
|
virtkey «…»
|
Имитирует нажатие клавиши. Комбинировать с ALT, CTRL или SHIFT нельзя. :( Но при этом команда не перехватывает работу клавиатуры и не открывает окна UO.
|
virtkey «ENTER»
virtkey «F7» easykey «ESC» easykey «pageup» |
click
|
left/right [double] click at location #n
|
Имитирует щелчёк клавишей мышки в указанной точке. Перед использованием этой команды, необходимо определить координаты точки #n. Команда не меняет положения указателя мыши.
|
click at location #3
right click #4 left double click at #2 double right click #7 |
repeat
|
repeat n times
|
Оператор начала цикла. Без указания числа итераций, цикл будет выполнятся бесконечное, строго говоря, большое число раз.
|
repeat ; infinitive cycle
repeat 5 repeat 10 times |
end repeat
|
end of repeat
|
Оператор завершения цикла. Циклы могут быть вложенными, что вообщем-то бесполезно, но приятно.
|
end of repeat
end repeat |
end script, stop
|
end of script
|
Выполняет останов скрипта.
|
end of script
end script |
; and /
|
; ….
|
Так можно пометить комментарии.
|
;this is comment
//this is comment too |
REM, REMARK
|
REM remarked text
|
Use it for remarks.
|
REM this is comment line
|
version 0.7b | |||
Определение переменной
|
xxx = (…)
|
Так можно задать значение переменной. Будьте осторожны при выборе имен переменных. Не используйте зарезервированные слова (их список где-то внизу).
|
variable = (5+10 * another_var)
|
Использование переменной
|
Переменные могут быть использованы вместо констант или номера локации в большинстве случаев.
|
wait variable seconds
|
|
Определение метки
|
_label:
|
Эта команда устанавливает метку в программе. Имя любой метки начинается с символа «_». Двоеточие после метки — не является обязательным. В одной строке может быть или метка или команда.
|
_this_is_a_label:
_ok: _one_more_label |
Использование меток
|
say _label,
text _label, (…) |
Метка работает как и обычная переменная, и может быть использована при вычислениях внутри калькуляторных выражений. Метка хранит номер строки скрипта.
|
say («label keeps number «.add._label)
|
GO TO
|
GO _label
|
Оператор перехода к метке»_label». Выполнение программы продолжится с указанной метки.
|
GO TO _ok
|
Calculator usage
|
say (…),
text (…), repeat (…) |
Вы можете использовать калькулятор для задания параметров операторов say, text и repeat, а также для определения переменных.
|
say ((5+10)/8)
repeat (2*variable) times |
IF
|
IF (…) THEN GOTO _label
|
Оператор условного перехода. Если выражение полученное калькулятором не равно нулю, тогда будет выполнен переход к метке «_label».
|
IF (variable<5&&variable_2>10) GOTO _fin
IF (1) GO _label;it will make jump always IF (0) THEN GOTO _label;it will never visit label |
mousedown*
|
left/right mousekeydown at location #n
|
Команда удерживает нажатой клавишу мыши в точке #n. Полезно для того, чтобы заставить персонажа бежать или идти (right mdown) или для инициации drag&drop (left mdown) элементов окна UO. Команда перемещает курсор мыши, но если вы начинаете использовать мышь, то программа пропускает исполнение этой команды, пока вы не прекратите использование мыши.
|
mdown at location #1
mousekeydown #2 |
mouseup*
|
left/right mousekeyup at location #n
|
Отпускает нажатую клавишу мыши.
|
right mousekeydown #2
wait 0.5 right mouseup #2 |
setup, set
|
setup location #n x:y
|
Этот оператор позволяет вам установить позицию точки #n. Вариант, когда x и y — переменные работает тоже.
|
set #1 150:100
|
setup relative
|
setup relative location #n x:y
|
Эта команда смещает позицию точки #n на x и y. Смещения можно задать с помощью переменных.
|
set rel #2 40,0;it will change x component of #2 by 40
|
put, place
|
put location #n to var_x:var_y
|
Помещает компоненты точки #n в указанные переменные.
|
put #5 to var_x:variable2
|
inc
|
inc var_n
|
Приращение переменной на 1
|
INCREMENT var_1
|
dec
|
dec var_n
|
Уменьшить переменную на 1.
|
DECREASE var_2
|
Приоритет операций калькулятора.
|
*, /
+, -, .add. ==, >=, <=, >, <, .eq., .ne., .lt., .gt. &&, || |
Здесь вы видите все операции, которые знает калькулятор. »*» и «/» имеют наибольший приоритет, а «&&», «||» — наименьший. Можно использовать скобки. Операции .eq., .ne., .lt. and .gt. нужны для сравнения строковых значений.
|
var=(«one frase».add.» second frase»);it will merge strings in the «var»
|
* Чтобы избежать ситуации, когда программа мешает двигать мышкой, меняя координаты курсора, сделано следующее : mdown изменит позицию курсора, если пользователь не производил манипуляций мышью хотя бы 1 сек. Востанавливаться позиция курсора командой mup будет только в случае сохранения позиции курсора установленной в mdown.
Добрый день .. Хотел узнать я покажу код .. так думаю будет легче вам разобраться
wait 3000
left 69, 18 \\ Инвентарь
wait 3000
left 621, 294 \\Надеть
wait 3000
left 991, 93 \\ вернутся
repeat 100
left 533, 403 \\ собрать
wait 20000
end_repeat
хотел узнать можно ли как то сделать что бы последнее Wait на 20 секунд был заменен на что нибудь оптимальное
При с боре ресурс время ожидание рандомна от 3х до 18 секунд.
но после окончание времени страница обновляется.
возможноли сделать так что бы после Сбора он ждал не 20 секунд а ждал обновление страницы что бы перейти на end_repeat
«Пилот» — это очень древний динозавр, которого я писал где то в 2002-2003 годах. Он, конечно, вечно ещё будет работать :) Но, я бы посоветовал вам посмотреть проект SikuliX — http://shra.ru/2016/06/sreda-dlya-dlya-razrabotki-igrovykh-botov/. Самое важное отличие в том, что там можно формировать логику скрипта бота на базе сканирования экрана.