Uopilot wait не работает

Uopilot wait не работает

Registred
Сообщений: 5
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.756
Возраст: 23

Вопрос следующий: может ли пилот извлекать системное время?
Нужно в определенное время суток приостанавливать выполнение скрипта, выполнить пару команд, ну и продолжить естественно.
Какие есть для этого команды и какой их синтаксис?
Очень надо.

Модератор UOPilot
Сообщений: 8.967
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 25990
Пользователь №: 11.279

Registred
Сообщений: 5
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.756
Возраст: 23

Registred
Сообщений: 5
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.756
Возраст: 23

правильно ли будет следующее:

While Hour <> 01 and Min <> 57 and Sec <>00
. . . .
. . . .
. . . .
End_while
Wait 23m
Left
Wait 5000

и после этого снова начнется выполнение с While .
То есть, нужно чтобы раз в сутки, в период с 01:57:00 по 02:20:00, скрипт приостановился, потом выполнил клик в нужном месте, а замет снова продолжил работу до следующих 01:57:00.

Хотя, вообще то, нужно чтобы скрипт не останавливался прямо посреди его выполнения, если наступило нужное время, а завершил тело While, а потом уже стал на паузу так сказать.

Registred
Сообщений: 5
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.756
Возраст: 23

Вот пробовал с разным временем — не работает. почему-то сразу перескакивает на выполнение действий после end_while. В чем причина может быть? Или я вообще нифига правильного не сделал? (IMG:style_emoticons/default/blink.gif)
Пробовал и «while», и «if», и «while_not Hour = . » — результат тот же

В записи «While Hour <> 1″, если часов «1» и не важно, что дальше стоит еще условие — что должны совпадать еще и минуты и секунды, — сразу происходит выход с цикла.

По идее в записи
While (Hour <> 1) and (Min > 5 and Min 30 and Sec

Модератор UOPilot
Сообщений: 8.967
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 25990
Пользователь №: 11.279

во 1 используйте числа не «01», а 1. Пилот в таком формате возвращает. В целях отладки рекомендую разбить условия по 1 и включить log commands (просто в шапке напишите).

Registred
Сообщений: 5
Регистрация: 4.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.756
Возраст: 23

Источник

Вопрос Uopilot

#1 DDamager

  • Members
  • 14 posts
  • Надеюсь тут есть папки УО пилотеры )
    Короче вот такая проблема.
    Написал самый простой скрипт что бы проверить как оно работает. скрипт выглядит так:

    :start
    sendex q
    wait 2
    goto start

    Перед запуском указываю робочее окно Ctrl+A где-то на окне МУ
    Дальше запускаю.
    MU у меня в виндоу моде(если это что-то значит. хз) . Сврорачиваю с помощью WinMu тоесть клацаю F11 и окно сворачивается
    Скрипт работает в окне му. но делать что либо на компе нереал. каждую секунду пилот как бы переключается на окно МУ (которое я свернул)

    Так вот вопрос: Как сделать что бы пилот работал в свернутом окне МУ и не лапал всю остальную систему ?

    ЗЫ
    Если пилот это читерство то имейте ввиду что я его использую не на этом сервере =)

    #2 goodbaby

  • Members
  • 30 posts
    • Gender: Female

    #3 Mazahistt

  • Members
  • 19 posts
  • #4 8BitCore

  • Members
  • 628 posts
  • #5 DDamager

  • Members
  • 14 posts
  • Скрипт работает так.
    Каждые 2 сек. нажимаетцо кнопка Q (та самая которая по дельтафуру стоит на банки с ХП)

    Блин. неужели нету пилотеров =(

    #6 goodbaby

  • Members
  • 30 posts
    • Gender: Female

    Данная документация содержит описание языка скриптов программы UOPilot версии 1.07 beta 5. Будьте внимательны при использовании более ранних версий программы.

    Условные обозначения:
    <> — обязательный параметр
    [] — необязательный параметр

    В одной строке может быть только одна команда. Первое слово в строке — команда, остальные слова — параметры. Если первое слово в строке не команда — строка считается комментарием.

    Слова состоят из символов 0-9, А-z, А-я.

    Символы #, $, %, +, -, *, /, >, %arr [50 1]

    Перед использованием переменной в скрипте вы должны определить ее при помощи команды set. Переменные изменяются только при участии set и for, команда repeat использует значение, не изменяя его.
    Например:
    set #i #i + 1

    Читайте также:  Как настроить принтер hp laser 100 series

    Синтаксис команды Set:
    ——————————————
    set $ или
    set # [ ]
    set % [элемент]
    между знаком операции и значениями должен быть разделитель. Поддерживаются следующие операции: +, -, *, /, также вы можете использовать скобки для изменения приоритетов выполнения математических операций. При делении результат округляется к меньшему целому.
    Например:
    set #q ((5+4)/(3+-2)* #e )-(2-(-5+9))*3

    Со строковыми переменными возможны некоторые математические операции:
    set $s1 1
    set $s2 2
    set $s $s1 + $s2
    Результатом будет $s = ‘1 + 2’, т.е. при присваивании чего-либо строковой переменной, ей присваивается все до конца строки, с соответствующими заменами
    set #n $s1 + $s2
    Результатом будет #n = 3, т.е. если строковая переменная, содержит строковое представление целого числа, то ее можно использовать в качестве числовой переменной.

    В команде set вы можете использовать генератор случайных чисел: random возвращает число в диапазоне от 0 до number-1
    Например:
    set #a random 2

    При двух или более запущенных скриптах вы можете обращаться к переменным, определенным в других скриптах пилота. Синтаксис указания таких переменных следующий:
    #i.2 — обращаемся к переменной #i из скрипта, находящегося в окне номер 2.

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

    Примечание 1: [W] означает, что вы можете изменять значение этой переменной
    в скрипте через команду set, все остальные переменные только для чтения.

    Примечание 2: Для корректного определения Пилотом большинства параметров чара у вас на экране ультимы должно быть раскрыто окно статов (Character Status).

    hour — текущее время (час)

    min — текущее время (минуты)

    sec — текущее время (секунды)
    Например:
    say current time is hour : min . sec

    timer — считает количество миллисекунд от начала выполнения скрипта может использоваться практически в любых операторах и сочетаниях.
    set timer // устанавливает значение timer в 0

    int — интеллект чара

    dex — ловкость чара

    hits — здоровье чара

    gold — количество денег у чара

    wght — текущий вес

    armor — класс армора

    charposx — позиция чара по горизонтали

    charposy — позиция чара по вертикали

    charposz — координата z чара (высота)

    chardir — направление взгляда чара (куда чар повернут)
    0 — чар смотрит на север, каждые 45 градусов поворота чара по часовой стрелке добавляют еденичку, т.е. 7 — чар смотрит на северо-запад

    lastmsg — последнее сообщение сервера

    lastobjectid — идентификатор последнего использованного объекта [W]

    lastobjecttype — тип последнего использованного объекта [W]

    lasttargetid — идентификатор последней цели [W]

    lasttargetx — координаты последней цели [W]

    lasttargetkind — класс последней цели (1 — предмет; 2 — земля; 3 — статика или вода) (т.е. если вам нужно лопатой/киркой кликнуть на поверхность пещеры в заданные координаты, то необходимо указать ‘3’; если необходимо кликнуть через ласт таргет на предмет, то необходимо указать ‘1’ и ‘Id’ предмета; ловя рыбку указываем координаты точки и класс ‘2’). [W]

    lastliftedid — идентификатор вещи, которая последней была тронута с места (передвинута, побывала в ‘руке’). [W]

    lastskill — номер последнего скила который был использаван через меню Skills [W]

    lastspell — номер последнего заклинания которое быле прокастовано через книгу [W]

    laststatictype — тип последней статичной цели (дерево. ) [W]

    target — вид курсора (0 — рука; 1 — прицел) [W]

    При двух или более запущенных скриптах вы можете обращаться к переменным, определенным в других скриптах пилота для других чаров, добавив к имени переменной номер скрипта через точку. Например:
    set lasttargetid.1 7
    say hits.1

    В условных операторах и циклах вы можете использовать следующие операции: >, , а также логические операции (and, or, xor). Приоритетов нет, обрабатывается последовательно.
    Например:
    if hour = 23 and min = 45 or #count = 100

    Для изменения приоритетов используйте круглые скобки:
    while (#a > 1 and #a возвращает число в диапазоне от 0 до number-1
    Например:
    while #a = #b or random 5 > 3

    Для прерывания действия операторов while, for и repeat вы можете использовать команду Break. Синтаксис:
    Break [уровень]
    Если уровень больше 1, то прерывается заданное кол-во родительских циклов.

    Оператор Continue переводит исполнение цикла на следующий шаг. Может быть использован в циклах repeat, for, while.

    При использовании последнего сообщения от сервера в условных операторах, существует некоторое правило синтаксиса:
    if lastmsg текст последнего сообщения или его часть
    или
    if lastmsg = $a [or lastmsg = $b . ]
    Т.е. если в условии напрямую указан текст сообщения, то не должно быть больше ничего, включая знаки каких-либо операций.

    Читайте также:  Ваз 2110 не работает вентилятор от чего

    Возможны три варианта условий:

    1) Проверка какой-то переменной, синтаксис:
    if
    Примечание: между знаком операции и значениями должен быть разделитель.
    Например:
    if hits
    если в последнем сообщении от сервера есть указанная строка
    Например:
    if lastmsg too heavy

    3) Проверка цвета в определенных координатах:
    if [цвет2]
    Если цвет в точке равен
    Примечание: если задан цвет2, то цвет точки проверяется на принадлежность диапазону от цвет до цвет2. Учтите, что проверка цвета в определенных координатах корректно работает только при развернутом окне ультимы.

    Возможны три варианта условий:

    1) Проверка какой-то переменной, синтаксис:
    While
    Примечание: между знаком операции и значениями должен быть разделитель.
    Например:
    While hits > 45

    2) Проверка последнего сообщения от сервера:
    While lastmsg
    делать пока в последнем сообщении от сервера есть указанная строка
    Например:
    while lastmsg too heavy

    3) Проверка цвета в определенных координатах:
    While [цвет2]
    Пока цвет в точке равен
    Примечание: если задан цвет2, то цвет точки проверяется на принадлежность диапазону от цвет до цвет2
    Например:
    While 320 240 1489121

    Синтаксис:
    For # [шаг]
    .
    End_for
    Цикл, с инкрементом переменной. Если переменная # существовала, то она заменяется, иначе добавляется. После завершения цикла переменная равна . Если шаг не указан, он равен 1.
    Например:
    For #i 0 10 2

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

    Повтор действий указанное количество раз
    Синтаксис:
    Repeat
    .
    End_Repeat

    Переход на указанную метку
    Синтаксис:
    Goto

    Метка должна быть указана в скрипте в следующем синтаксисе:
    :

    Например:
    Goto end
    :end

    Синтаксис вызова подпрограммы:
    gosub

    Подпрограмма начинается с
    :
    и заканчивается
    return

    Подпрограммы рекомендуется располагать в конце скрипта и перед ними поставить либо end_script, либо goto на начало скрипта.

    Синтаксис вызова процедуры:
    call
    Процедура с указанным именем ищется сначала в текущем скрипте, а затем, если не найдена, в «файле процедур» — скрипт с номером 99. Загрузить туда что-либо можно с помошью соответствующего пункта меню. Поддерживается вложенный вызов процедур.

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

    Процесс выполнения процедуры не отображается, параметры пока не передаются.

    Процедура начинается с
    proc
    и заканчивается
    end_proc

    Например:
    proc saying_message
    say test passed
    end_proc
    call saying_message
    end_script

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

    Для прекращения выполнения скрипта используйте команду:
    End_Script
    Параметров нет.

    Или команду:
    stop_script
    без указания каких-либо параметров.

    Wait — ждать.
    Параметр можно задать в различных единицах измерения:
    wait 1 // 1 миллисекунда
    wait 1s // 1 секунда
    wait 1m // 1 минута
    wait 1h // 1 час

    WaitForTarget [max wait time] — ждать «прицела» (в милисекундах).
    Приостанавливает выполнение скрипта, пока курсор в ультиме не примет форму таргета, или пока не истечет интервал времени, указанный в качестве параметра в мс. Значение по умолчанию для max wait time составляет 10000 (то есть 10 секунд).

    pause_script
    Команда pause_script без указания параметров приостанавливет выполнение текущего скрипта. Чтобы запустить его вновь, вы должны будете задать команду resume_script В ДРУГОМ СКРИПТЕ c ссылкой на номер текущего (см. следующий подраздел)

    Вы можете управлять работой других скриптов, запущенных в других окнах ЭТОГО ЖЕ UoPilot-а при помощи нижеследующих команд. При этом в качестве параметра вы указываете номер окна соответствующего скрипта в UoPilot-е.

    start_script
    Если скрипт с таким номером существует, то он будет запущен

    stop_script [number | all]
    Если скрипт с таким номером существует, то он будет остановлен

    pause_script [number | all]
    Если скрипт с таким номером существует, то он будет приостановлен

    resume_script
    Если скрипт с таким номером существует, то его выполнение будет продолжено

    В во всех этих командах, за исключением первой, вместо номера скрипта вы можете задать параметр ‘all’ — тогда действие данной команды будет распространено на все скрипты, загруженные во все существующие окна UoPilot-а.

    По поводу использования команд pause_script и stop_script без параметров — смотрите предыдущий подраздел.

    Читайте также:  Как настроить вулкан апи

    Alarm [файл .wav]
    Издает звуковой сигнал, содержащийся в файле [файл .wav]. При ошибке воспроизведения файла (неверный формат), или если параметр [файл .wav] не указан — воспроизводится стандартный звуковой сигнал, ранее содержащийся в файле msg.wav. Если файл не найден, то команда игнорируется.
    Например:
    alarm welcome.wav

    Msg [текст]
    На экран выводится окно, содержащее указанный текст, выполнение скрипта при этом приостанавливается до закрытия окна. Окно с текстом выводится поверх всех окон.

    Flash
    Мигнуть в таскбаре. При этом в таскбаре мигает окно Пилота. Если вы хотите, чтобы мигало то окно ультимы, к которому привязан текущий скрипт, укажите команду flash с каким-либо параметром.
    Например:
    flash что-нибудь

    Exec [параметры]
    Запустить указанное приложение, передать ему указанные параметры. Для использования в качестве параметров зарезервированных переменных, поставьте перед ними признак переменной ‘#’.
    Обратите внимание, что вы используете знак ‘#’ как для числовых переменных, так и для строковых!
    Например:
    exec c:\test.exe #name #lastmsg

    Terminate
    Завершить указанное приложение. Следует использовать с осторожностью, иначе можно прибить совсем не то, что хотелось.

    macro_load
    Загрузить ранее записанный и сохраненный в файл макрос. Если не указан путь, то ищется в каталоге UoPilot’а.

    macro_play [число]
    Запустить загруженный макрос [число] раз, и дождаться окончания его выполнения. Если [число]=0 — макрос будет выполняться бесконечно, по умолчанию один раз. Остановить\запустить вручную можно стандартными горячими клавишами.

    Все команды работы с мышью, а также некоторые другие требуют указания координат. Пилот поддерживает два способа указания координат: абсолютные координаты (координаты точки от левого верхнего угла экрана) и относительные координаты (координаты точки от левого верхнего угла экрана Ультимы. Заголовок окна Ультимы не учитывается). Задать в скрипте координаты вы можете, наведя курсор мыши на необходимую точку и нажав комбинацию Ctrl-A. При этом помните:

    1) Окно UoPilot должно быть активно. То есть расположите окно ультимы под окном пилота, выберите окно пилота, наведите курсор мыши на нужную точку НЕ НАЖИМАЯ НА КНОПКИ МЫШИ и нажмите Ctrl-A.

    2) В окне пилота должен быть включен один из флажков «Сразу вставлять относительные координаты в скрипт» или «Сразу вставлять абсолютные координаты в скрипт». В противном случае, координаты можно вставить в скрипт вручную, кликнув мышью на кнопке с координатами.

    3) Если вы указываете в командах абсолютные координаты (нельзя использовать в команде drag) — вам надо после координат указать идентификатора абсолютных координат — ключевое слово «abs», являющееся последним параметром в команде.
    Например:
    double_left 218, 242 abs

    На время выполнения команд работы с мышью по абсолютным координатам, происходит захват мыши.

    Move
    Перемещает курсор в указанные координаты.
    Внимание! Крайне рекомендуется задавать эту команду перед заданием любой из двух нижеследующих команд.

    Left
    Щелкнуть левой клавишей мыши 1 раз в указанных координатах

    Right
    Щелкнуть правой клавишей мыши 1 раз в указанных координатах

    Double_Left
    Щелкнуть левой клавишей мыши 2 раза в указанных координатах

    Double_Right
    Щелкнуть правой клавишей мыши 2 раза в указанных координатах

    left_down
    Прижимает левую кнопку мыши в указанных координатах

    left_up
    Отпускает левую кнопку мыши в указанных координатах

    right_down
    Прижимает правую кнопку мыши в указанных координатах

    right_up
    Отпускает правую кнопку мыши в указанных координатах

    Send |
    «Нажать» клавишу и ждать указанное число миллисекунд. Если параметр не распознан как управляющая клавиша, то он посылается как текст. В последнем случае команда работает аналогично команде say, за исключением завершающего Enter’а.

    Sendex
    «Нажать» последовательно несколько клавиш. Посылает практически все комбинации клавиш. Клавиши Ctrl, Alt, Shift кодируются символами ^, @ и

    соответственно. Все функциональные клавиши должны быть заключены в фигурные скобки, например: . В одной команде может быть целое предложение из клавиш:
    sendex

    application @
    Имеется следующее свойство: приложение примет только те клавиши (символьные), которые соответствуют установленной в нем раскладке клавиатуры.
    Во время выполнения команды, на приложение направляется фокус, и блокируется система. При некоторых обстоятельствах, следующая команда выполняется до завершения текущей.

    Drag [количество]
    Перенести из точки с координатами в точку с координатами указанное количество предметов. Координаты и могут быть только относительные. Если не указать количество, то перенесется один некучкующийся предмет (окошко с количеством не всплывает), если указать all, то перенесутся все предметы.
    Например:
    Drag #x #y 320, 240

    Say [текст]
    Набрать текст и нажать Enter. Например:
    say my x: coordx y: coordy and armor: ar

    Источник

    Оцените статью