UoPilot v.0.96 beta, by Blade[RBG] http://rbg.nm.ru, blade17@rambler.ru UoPilot v.2.18, (c) 2002-10 by WK http://uopilot.ultimasoft.ru uopilot@ultimasoft.ru ================================= - Работа с несколькими окнами UO - Запись движений мыши - Сохранялка экрана (ScreenShot) - Расширенный язык скриптов - И многое другое ================================= Скрипт: ================================= Щелкните правой кнопкой мыши над текстом, чтобы выбрать команду из меню. Первое слово в строке - команда, остальные слова - параметры. Слова состоят из символов 0-9, А-z, А-я, '_' Символы # $ % + - * / > < = ( ) . [ ] : являются служебными, остальные разделители. В одной строке может быть только одна команда. Регистр не учитывается. Если первое слово в строке не команда, то строка считается комментарием. Можно писать комментарии после всех параметров. Также таковыми считается все, что идет после двойного слэша '//'. Крайне рекомендуется использовать последний метод. Пример: wait 5000 здесь идет комментарий... Советы: ================================= Чтобы указать точку, наведите курсор на цель и нажмите Ctrl+A, причем окно UoPilot должно быть активно! Не забывайте писать End_Repeat, End_IF и т.д. При лагах ставьте в UO на кнопку в конце waitfortarget, а в скрипте аналогичную команду, тогда UO и UoPilot будут ждать, когда появится курсор. Рекомендую ставить, например, Ctrl+1 - медитацию. Тогда в игре при нажатии Ctrl+1 чар начнет медитировать, еще раз - перестанет. То есть не надо каждый раз переключаться в UoPilot ================================= История развития ================================= UoPilot v.0.98 beta, (c) 2002 by WK http://wknight.chat.ru wknight@chat.ru добавил изменение качества сжатия jpeg. по дефолту поставил 75. добавил панель управления домом. добавил панель управления кораблем. вынесено на отдельную форму, которая остается поверх окна УО (как впрочем и остальных :) имеется возможность спрятать главную форму во время плавания. установил флажок "Сразу вставлять координаты в скрипт". установил "Пауза между строками в миллисекундах" по дефолту 100. поскольку иногда забываешь и получается вис. вставил в обработку скрипта процессмесагу, теперь практически не виснет. исправил некоторые несоответствия с хоткеем старта скрипта (Alt+Del). при перетаскивании файла на Uopilot, скрипт заполняется содержимым файла. проверок никаких нет. исправил команду 'say'. добавил команду 'sendex'. посылает практически все комбинации клавиш. клавиши Ctrl, Alt, Shift кодируются символами ^, @ и ~ соответственно. все функциональные клавиши должны быть заключены в фигурные скобки: {Enter} в одной команде может быть целое предложение из клавиш: sendex ~closing ~application @{f4} имеется следующее свойство: приложение примет только те клавиши (символьные), которые соответствуют установленной в нем раскладке клавиатуры. во время выполнения команды, на приложение направляется фокус, и блокируется система. при некоторых обстоятельствах, следующая команда выполняется до завершения текущей. исправил клики\даблклики мышью. добавил возможность альтернативного определения цвета точки на экране. так как при наведении мышой предметы подсвечиваются, и истинный цвет предмета не определялся. новый метод работает в 2 этапа: выбор точки, определение цвета (при отведенной в сторону мышке). в связи с предыдущим пунктом: из добавления "клавиша и пауза" оставил только "клавиша". из-за недостатка свободного места, а менять первоначальный интерфейс мне пока не хочется. добавил будильник. при наступлении события проигрывает все тот-же файл msg.wav в течении следующих 9 минут, с перерывом по минуте; либо проигрывает однократно вышеупомянутый файл и запускает текущий скрипт. добавил переменные. в имени переменной допустимы символы - ['0'..'9','A'..'z','А'..'я'], регистр не учитывается. отныне слово следующее за '#' считается именем переменной и заменяется ее значением, если оно было присвоено ранее. исключением является первое слово после команд set и for. переменные изменяются только при участии set и for, команда repeat использует значение, не изменяя его. добавил команду 'set' - установка\добавление переменных Set $<имя> <значение> или Set #<имя> <знач1> [<зн. оп.> <знач2>] между знаком операции и значениями должен быть разделитель. поддерживаются следующие операции: +, -, *, / при делении результат округляется к ближайшему целому. // Set #i #i + 1 // Set $s test string добавил цикл for ... end_for. for #<имя> <начало> <конец> [шаг] ... end_for если переменная существовала, то она заменяется, иначе добавляется. после завершения цикла переменная равна <конец>+1 добавил отображение текущих значений переменных добавил возможность изменения текущих настроек клиента: Show Names of Approaching Players по клавише Insert (при лагах очень актуально, особенно у ББ); Use circle of Transparency (радиус устанавливается 200); Query before performing criminal actions; Enable pathfinding with double-right-click при наличии папки Scripts скрипты берутся из нее, иначе из каталога программы. добавил хоткей для перетаскивания итемов из под мышки, в заранее выбранное место (монстров например лутить побыстрому :) (пока работает не очень качественно, цифра в окошке - задержка) отныне в команде drag необходимо указывать 'all' для перетаскивания всех итемов. отсутствие третьего параметра подразумевает, что итем одинарный, и окошко с количеством не всплывает. (сие было сделано для борьбы с лишними кликами\даблкликами на таргет) добавил переключение UuPilot <-> UO по Ctrl+U справка вынесена в меню. по нажатии открывается\закрывается форма справки. добавил возможность флудить какой-нить мессагой без использования скрипта. месага произносится по две строки за раз. при длинных сообщениях вас почти наверняка обзовут спамером :) по хоткею Ctrl+M она произносится однократно. добавил команду waitfortarget [wait time = 10000] приостанавливает выполнение скрипта, пока курсор в ультиме не примет форму таргета, или пока не истечет интервал времени, указанный в качестве параметра в мс. окно УО автоматически определяется при запуске UoPilot'а. добавил возможность отключать горячие клавиши. (если например запущено два пилота) при запуске второго пилота, горячие клавиши в нем отключаются автоматически. файл msg.wav помещен в ресурс, и больше не нуждается в распространении с UoPilot'ом. ================================= UoPilot v.0.99 alfa 8, (c) 2002 by WK http://wknight.chat.ru wknight@chat.ru добавил опцию для GM`ов: Мигать при приходе пейджа. UoPilot будет мигать в таскбаре при приходе от сервера строки, начинающейся на 'GM Page from'. для выбора анализируемого окна, нажмите соответствующую кнопку, наведите курсор на цель и нажмите Ctrl+A, при этом окно UoPilot`а должно быть активно! на кнопке появится имя чара, чье окно выбрано. автовыбор происходит при старте UoPilot`а. анализ делается 2 раза в секунду. при сохранении скрипта, будет указано имя последнего загруженного файла. добавил возможность заполнять значение задержки между строк при загрузке скрипта. задержка берется из имени файла: имя_файла.задержка.расширение то-есть число непосредственно перед расширением, выделенное точками. добавлена обработка параметров чара и координат текущего местонахождения параметры: name, hits, mana, stam, wght, ar, gold, lastmsg, coordx, coordy могут использоваться практически в любых операторах и сочетаниях: say my x: coordx y: coordy and armor: ar добавлены операции: >, <, =, <> if <значение> <знак операции> <значение> ... end_if между знаком операции и значениями должен быть разделитель. добавлена проверка последнего сообщения от сервера if lastmsg <последнее сообщение от сервера> ... end_if сообщение от сервера можно писать не целиком. добавлен запуск УО и логин, с аккаунтом и паролем, запомненными в конфиге. UoPilot сам залогинится, если не возникнет проблем, или закроет окно УО при сообщении от сервера о том, что для вас там нет места, запустит его снова и так далее... происходит это при помощи нажатия на кнопку Next Screen, и раз в семь секунд в то место в центре экрана, где появляется галочка\крестик при какой-либо ошибке. чтобы появилась галочка Save Password, добавьте в файл uo.cfg, расположенный в каталоге с игрой строчку RememberAcctPW=on доработаны комментарии. таковыми считается все, что идет после двойного слеша '//' добавлена команда Goto <метка> - переход на указанную метку, метка должна начинаться с двоеточия ':' добавлен цикл while ... end_while. While <коорд> <цвет> [цвет2] цвет в точке <коорд> равен <цвет>, если задан цвет2, то цвет точки проверяется на принадлежность диапазону от цвет до цвет2 или While <параметр> <знак оп.> <знач.> параметры: hits,mana,stam,wght,ar, coordx,coordy либо переменные поддерживаются следующие операции: >,<,=,<> между знаком операции и значениями должен быть разделитель. или While lastmsg <последнее сообщение> сообщение от сервера можно писать не целиком. ... End_While перед закрытием UoPilot'а, стало необязательным останавливать скрипт. добавлен автологин в UO, без перезапуска UO. при использовании данного способа, клиент забирает немного памяти с каждой новой попыткой. в результате несколько раздувается своп. рекомендуется перезапускать клиент через пару минут долбежки. исправлена ошибка, приводящая к неправильному определению имени следующего файла, при сохранении скриншота по номеру. скриншоты сохраняются с 3х значными номерами, т.е. 001..021..321... добавил возможность загружать скрипт из командной строки UoPilot /sC:\UO\my_script.txt добавил возможность указывать путь к клиенту в командной строке UoPilot /с"C:\Ultima Online\client.exe" добавил возможность выборочно отключать горячие клавиши. добавил модуль макросов macros.dll. настройка производится правым кликом на кнопках. воспроизведение макроса происходит в текущее окно UO. ================================= UoPilot v.1.00 beta 1, (c) 2002 by WK http://wknight.chat.ru wknight@chat.ru http://wknight.mailru.com wknight@mailru.com добавил возможность сохранять настройки в файле uopilot.ini с помощью соответствующего пункта меню. при старте UoPilot'а они загружаются автоматически. добавил команды для нажатия и отпускания кнопок мыши left_down <коорд> left_up <коорд> right_down <коорд> right_up <коорд> при включении отображения параметров чара, некоторые из них отображаются в заголовке окна UO. необходимо наличие панельки статуса в UO в свернутом\развернутом виде. после текущего веса отображается максимальный вес, при котором чар еще способен передвигаться. Break [уровень] - прервать цикл (выйти из цикла), если уровень больше 1, то прерывается заданное кол-во родительских циклов Continue - перескочить на след. шаг могут использоваться в циклах repeat, for, while полностью избавился от рекурсии. следовательно исправлена ошибка переполнения стека, при длительной работе скрипта. сняты ограничения на циклы связанные с этой же ошибкой. добавил команду запуска приложения exec <команда> [параметры] добавил команду завершения приложения terminate <заголовок окна> следует использовать с осторожностью, иначе можно прибить совсем не то, что хотелось для использования зарезервированных переменных, поставьте перед ними признак переменной '#' exec c:\test.exe #name #lastmsg наконец-то сделал UoPilot многопоточным. Отныне вам не придется грузить для каждого скрипта отдельный пилот. кнопки '+' и '-' добавляют и, соответственно, удаляют новый скрипт. кнопка старт запускает\останавливает текущий скрипт. на закладках обозначаются номера скриптов, и с их же помощью переключаются скрипты. для каждого скрипта необходимо выбрать свое окно UO, иначе он будет выполняться для последнего выбранного. выполнение текущего cкрипта отображается как и ранее. ================================= UoPilot v.1.01 beta 7, (c) 2002 by WK http://wknight.chat.ru wknight@chat.ru http://wknight.mailru.com wknight@mailru.com добавил работу с клиентом версии 2.0.0. встроил панель макросов в UoPilot. настройки сохраняются в файле uopilot.ini с помощью соответствующего пункта меню. при старте UoPilot'а они загружаются автоматически. исправлена ошибка в команде exec, в результате которой не запускались файлы с определенными именами. для использования зарезервированных переменных, поставьте перед ними признак переменной '#' exec c:\test.exe #name #lastmsg добавил в меню список десяти последних используемых скриптов. список обновляется при загрузке\сохранении скрипта. исправил ошибку в команде break добавил команды для работы с подпрограммами gosub <метка> - переход на указанную метку return - возврат к последнему вызванному gosub, если вызовов небыло, то ничего не делается. подпрограммы рекомендуется располагать в конце скрипта и перед ними поставить либо end_script, либо goto на начало скрипта добавил возможность "Добавлять пробелы" в начале строки после нажатия Enter'a. находится в настройках, сохраняется. изменил команду send. теперь если ее параметр не распознан как управляющая клавиша, то он посылается как текст. работает аналогично команде say, за исключением завершающего enter'а исправлена ошибка несвоевременного запуска скрипта при помощи будильника добавлена обработка текущего системного времени: hour, min, sec могут использоваться практически в любых операторах и сочетаниях: say current time is hour : min . sec имена переменных теперь могут состоять из более чем одного символа добавил возможность редактировать файл login.cfg и парой кликов выбирать нужный сервер UO добавлена логика (and, or, xor) в условных операторах приоритетов нет, обрабатывается последовательно if hour = 23 and min = 45 or #count = 100 end_script end_if ================================= UoPilot v.1.02 beta 11, (c) 2002 by WK http://wknight.chat.ru wknight@chat.ru http://wknight.mailru.com wknight@mailru.com добавил возможность изменять команды управления домом (правый клик на кнопке), изменения запоминаются при сохранении настроек панель управления домом вынесена на отдельную форму, которая остается поверх окна УО (как впрочем и остальных) добавил возможность выбирать горячие клавиши, изменения запоминаются при сохранении настроек отключение реагирования на горячие клавиши сбрасывает их установки на дефолтные изменена команда move, теперь она перемещает курсор мыши в указанную точку. ее следует использовать перед кликами левой кнопкой в бакпаке добавил таймер на питье пузырей. показывает когда можно пить следующий. поскольку у всех пузырей время разное, то оно подбирается опытным путем добавил возможность, при редактировании скрипта, растянуть его окно до необходимых размеров с помощью соответствующего пункта попуп меню исправил ошибку непосылания клавиши F1 из вкладки "Общее" в функцию "AutoMove" добавил еще две координаты, и возможность указывать количество перетаскиваемых предметов. практически в два раза увеличилась скорость перетаскивания положение окна UoPilot'a запоминается при сохранении настроек исправил ошибку в функции "Добавлять пробелы" добавил возможность располагать UoPilot поверх всех окон, запоминается при сохранении настроек добавил возможность выбирать буквенно-цифровые клавиши на вкладке "Общее" добавил возможность отключать отображение параметров чара в заголовке окна UO добавил возможность отключать отображение координат в заголовке окна UO добавил сохранение числа повторов макроса отключил хинт в скрипте "Нажмите правую кнопку мыши, чтобы получить список команд" отныне окно справки можно растягивать до нужных размеров добавил возможность посылать BackSpace после посылки буквенно-цифровой клавиши на вкладке "Общее", чтобы не печатались ненужные символы добавил работу с абсолютными координатами, т.е. относительно левого верхнего угла экрана. может использоваться со всеми мышиными командами кроме драга. в качестве идентификатора абсолютных координат служит ключевое слово "abs", являющееся последним параметром в команде double_left 218, 242 abs на время выполнения команды происходит захват мыши вернул обработку параметров чара str, int, dex могут использоваться практически в любых операторах и сочетаниях добавил работу с клиентами версий 1.26.4b и 3.0.0c добавил определение направления взгляда чара chardir 0 - чар смотрит на север, каждые 45 градусов поворота чара по часовой стрелке добавляют единичку, т.е. 7 - чар смотрит на северо-запад может использоваться практически в любых операторах и сочетаниях if chardir = 2 // смотрим на восток зарезервированное слово ar заменено на более длинное armor добавил возможность отображения координат курсора в заголовке окна UoPilot'а добавил автосохранение настроек UoPilot'а добавил кнопку пауза/продолжение скрипта горячая клавиша Pause добавил возможность пошагового выполнения скрипта настройки горячих клавиш вынесены на отдельную форму добавил возможность выборочного отображения параметров чара в заголовке окна UO добавил работу с клиентом версии 1.26.4a дополнен пункт особенности\недостатки, касающийся клиентов младше 2.0.3 при разворачивании скрипта, кнопочки старта скрипта, паузы и т.д. переползают вслед за ним добавил возможность автоматически прятать окно UoPilot'а при разворачивании скрипта немного косметики, как внешней, так и внутренней. а также исправлено немного багов для включения, ранее отключенной, горячей клавиши, больше не требуется отключать все остальные при включении, ее настройки устанавливаются по умолчанию добавил возможность сохранять движения мыши в файл. редактировать его крайне не желательно, но в принципе можно. структура следующая: одна строка - одно событие. первое слово - событие, второе и третье - параметры (например координаты), четвертое - время от начала макроса, пятое - хендл окна (обычно только для кликов) добавил команды работы с макросом macro_load <имя файла> // загрузить макрос. если не указан путь, то ищется в каталоге UoPilot'а. для использования зарезервированных переменных, поставьте перед ними признак переменной '#' macro_play [число] // запустить макрос [число] раз, и дождаться окончания его выполнения. если [число]=0 то выполняется бесконечно, по умолчанию один раз. остановить\запустить вручную можно стандартными горячими клавишами добавил команду flash - мигнуть в таскбаре добавил возможность использовать во втором UoPilot'е те горячие клавиши, которые не использованы в первом теперь UoPilot работает более качественно под виндами на основе технологии NT добавил переменную timer, считает количество миллисекунд от начала выполнения скрипта может использоваться практически в любых операторах и сочетаниях set timer // устанавливает значение timer в 0 ================================= UoPilot v.1.03 beta 2, (c) 2002 by WK http://wknight.mailru.com wknight@mailru.com добавил возможность изменения lastobject и lasttarget в UO. определение текущих значений производится при помощи двойного щелчка мышью в соответствующей ячейке таблицы на вкладке "Еще". кнопками, расположенными снизу от каждой таблицы можно добавлять или удалять (не)нужные элементы. установка производится командой set //number - номер соответствующей ячейки таблицы если number > 550, то он считается готовым значением, и записывается в память без изменений. //set lastobject 1 //send f4 100 //lastobject содержимое таблиц запоминается при сохранении настроек исправил ошибку переопределения окон. теперь можно использовать все возможности UoPilot'а на разных окнах UO исправил очередную ошибку с неопределением ластмессаги исправил ошибку в команде goto добавил возможность использовать комментарии в файле login.cfg располагаются в той-же строке, что и адрес сервера, начинаются с двойного слеша '//' добавил хоткеи для установки координат АвтоМува отныне функция AutoMove перетаскивает итемы в активном окне (находящемся под курсором) немного изменен алгоритм перетаскивания задержка функции AutoMove теперь запоминается при сохранении настроек при старте UoPilot'а, загружаются все скрипты, которые были на момент сохранения настроек или выхода --------------------- v.1.03 beta 3 во время пошагового выполнения скрипта, цветом выделяется следующая команда, а не предыдущая, как было раньше добавил возможность останавливать скрипт, при обнаружении неизвестной команды, с помощью соответствующего пункта меню --------------------- v.1.03 beta 4 исправил ошибку в команде set timer добавил команды для работы с процедурами call <имя> // вызов процедуры. процедура с указанным именем ищется сначала в текущем скрипте, а затем, если не найдена, в "файле процедур" - скрипт с номером 99. загрузить туда что-либо можно с помощью соответствующего пункта меню. поддерживается вложенный вызов процедур. proc <имя> // начало процедуры. процедуры можно располагать в любом месте программы. при обнаружении начала процедуры, автоматически ищется ее конец, и выполнение продолжается со следующей строки. вложенное описание не поддерживается. end_proc // конец процедуры //proc saying_message // say test passed //end_proc //call saying_message //end_script процесс выполнения процедуры не отображается, параметры пока не передаются --------------------- v.1.03 beta 5 добавил возможность менять местами Источник и Приемник функции AutoMove. параметр 'Перемещать мышку' при этом не учитывается при наведении курсором мыши на закладки с обозначениями номеров скриптов, появляется всплывающая подсказка с именем файла соответствующего скрипта. отключается с помощью соответствующего пункта меню. запоминается при сохранении настроек исправил ошибку в команде drag x y all исправил ошибку в командах break и continue исправил ошибку в команде set lasttarget отныне, во время редактирования скрипта, клавиша tab работает как отступ, а не переключает элементы управления немного косметики, как внешней, так и внутренней. а также исправлено немного багов исправил ошибку в команде double_right, раньше часто кликала туда, где находится курсор ================================= UoPilot v.1.04 beta 1, (c) 2002-03 by WK http://wknight.mailru.com wknight@mailru.com исправил ошибку в процедуре загрузки скриптов при старте UoPilot'а немного изменен алгоритм: теперь порядок скриптов не меняется, и запоминается активный скрипт добавил команду для запуска параллельного скрипта start_script если скрипт с таким номером существует, то он будет запущен добавил команду для остановки параллельного скрипта stop_script если скрипт с таким номером существует, то он будет остановлен исправил ошибку вызова подпрограмм из файла процедур если при обращении к параметрам чара возникает ошибка (например, закрыли окно UO), то скрипт, в котором это произошло, останавливается это касается и опции для гм'ов команды управления домом и кораблем теперь произносятся в активное (верхнее) окно UO если ни одного не найдено, то туда, куда прилочен UoPilot добавил несколько вариантов указания времени задержек в скрипте и между строк //wait 1 // 1 миллисекунда //wait 1s // 1 секунда //wait 1m // 1 минута //wait 1h // 1 час много полезной информации вынесено на отдельную форму. кнопка "Char Parameters" расположена на вкладке "Еще" таймер на питье пузырей теперь тикает в заголовке окна UO вкладка "Настр." куда-то исчезла много косметики, как внешней, так и внутренней. а также исправлено немного багов --------------------- v.1.04 beta 2 добавил горячую клавишу для вызова панельки с параметрами чара. по умолчанию Ctrl+P при закрытии панельки с параметрами чара, путем клика на крестик в ее заголовке, она сворачивается в некую прямоугольную плюшку, недалеко от кнопки "пуск". разворачивается обратно аналогичным способом добавил возможность выбрать, из какого окна UO отображать параметры чара: Активного скрипта, Верхнего окна UO или Окна прилинкованного к UoPilot'у добавил пункт меню 'Выход без сохранения'. при его выборе не происходит сохранения списка последних открытых файлов, списка открытых скриптов и сохранения настроек, если выбрана опция сохранять при выходе добавил возможность выбрать, останавливать ли скрипт при ошибке чтения параметров чара добавил строковые переменные отныне символ '$' считается идентификатором строковой переменной // set $s test string // set $t test passed // if lastmsg = $s or lastmsg <> $t ... добавил возможность отображать id и type, на панельке с параметрами чара, в hex формате добавил определение кучи всякого полезного мусора Target - вид курсора (0 - рука; 1 - прицел) CoordZ - координата z чара (высота) LastObjectType - тип последнего использованного объекта LastObjectId - идентификатор последнего использованного объекта LastTargetId - идентификатор последней цели LastTargetX, LastTargetY, LastTargetZ - координаты последней цели LastTargetKind - класс последней цели (1 - предмет; 2 - земля; 3 - статика или вода) (т.е. если вам нужно лопатой/киркой кликнуть на поверхность пещеры в заданные координаты, то необходимо указать '3'; если необходимо кликнуть через ласт таргет на предмет, то необходимо указать '1' и 'Id' предмета; ловя рыбку указываем координаты точки и класс '2') LastLiftedId - идентификатор вещи, которая последней была тронута с места (передвинута, побывала в 'руке') LastSkill - номер последнего скила который был использован через меню Skills LastSpell - номер последнего заклинания которое было прокастовано через книгу LastStaticType - тип последней статичной цели (дерево...) могут использоваться практически в любых операторах и сочетаниях --------------------- v.1.04 beta 3 исправлено несколько багов последней версии зарезервированные переменные coordx, coordy, coordz, lastobject, lasttarget переименованы соответственно в charposx, charposy, charposz, lastobjectid, lasttargetid добавил контекстное меню с именами всех зарезервированных переменных --------------------- v.1.04 beta 4 исправил ошибку сохранения и использования таблиц ластобъектов в hex формате добавил комментарии в таблицы ластобъектов не рекомендуется использовать в них запятую ',' при двойном клике мышью на идентификаторе, в таблицах ластобъектов, значение соответствующей ячейки вставляется в скрипт при двойном клике мышью на значениях последних параметров, они вставляется в скрипт добавил возможность сохранения\загрузки таблиц ластобъектов в\из файла, с помощью соответствующего пункта контекстного меню UoPilot больше не тормозит добавил возможность изменения кучи всякого полезного мусора в UO. set <параметр> <значение> // где <параметр> есть одно из следующего: target, lastobjectid, lastobjecttype, lasttargetid, lasttargetx, lasttargety, lasttargetz, lasttargetkind, lastliftedid, lastskill, lastspell, laststatictype исправил ошибку, возникающую при переключении между работающими скриптами изменен алгоритм обновления таблицы переменных --------------------- v.1.04 beta 5 исправил ошибку определения параметров чара в клиенте 1.26.4b исправил ошибку с кликами по абсолютным координатам при ошибке чтения lastmsg, она будет содержать слово 'error' исправил ошибку с добавлением новых строк в таблицы ластобъектов добавил возможность очистить таблицы ластобъектов, с помощью соответствующего пункта контекстного меню пункты меню 'Настройка UO' теперь переключают параметры в активном окне UO. при переключении показа имен горячей клавишей, значение этого параметра инвертируется, независимо от значения соответствующего пункта меню добавил возможность запоминать при сохранении настроек, позицию и размеры окон редактирования скрипта и параметров чара добавил возможность открывать при старте UoPilot'а окна редактирования скрипта и параметров чара --------------------- v.1.04 beta 7 добавил команду для приостановки выполнения параллельного скрипта pause_script если скрипт с таким номером существует, то он будет приостановлен добавил команду для продолжения выполнения параллельного скрипта resume_script если скрипт с таким номером существует, то его выполнение будет продолжено добавил названия скилов и спелов в таблицу отображения параметров добавил возможность отключать возврат курсора, после кликов мышью, в ту позицию, в которой он был до команды move добавил возможность выбрать шрифт редактора, с помощью соответствующего пункта меню добавил возможность выбрать вид панельки с параметрами чара добавил возможность выбрать 'размер табуляции в редакторе' добавил возможность указать 'паузу между строк' для новых скриптов максимальное число строк в таблицах ластобъектов увеличено до 550 ================================= UoPilot v.1.05 beta 1, (c) 2002-03 by WK http://wknight.hotbox.ru wknight@hotbox.ru исправил несоответствие названий скилов\спелов их номерам теперь можно использовать всякие извращенные формулы в команде set. переменные должны быть выделены пробелом //set #q ((5+4)/(3+-2)* #e )-(2-(-5+9))*3 переписал алгоритм обработки команд исправлена ошибка создания списка последних используемых скриптов избавились от необходимости калибровки UoPilot'a для мелких клиентов очередной хостинг помер, временно переехали на http://wknight.hotbox.ru старые версии закопаны вместе с хостингом --------------------- v.1.05 beta 2 исправлена ошибка установки значений переменных добавил сохранение координат клика мышью на вкладке 'Общее' --------------------- v.1.05 beta 3 исправлена ошибка в условных операторах переписан алгоритм, теперь можно объединять несколько проверок цвета в одном условии добавил возможность запоминать количество перетаскиваемых итемов исправил ошибку в операциях с отрицательными числами добавил возможность изменения таймера между звуковыми сигналами будильника в диапазоне от 0.5с до 30с добавил возможность использования скобок в условных операторах //while (#a > 1 and #a < 3) or ((#a = 1 and 130, 9 7295) or #a = 5) добавил возможность, при ошибке чтения параметров чара, приостанавливать скрипт (пауза) и информировать об ошибке добавил возможность использовать в команде alarm свои звуки //alarm welcome.wav при ошибке воспроизведения файла (неверный формат), проигрывается стандартный звук. если файл не найден, то команда игнорируется добавил возможность использовать случайные числа в условных операторах и команде set. random возвращает число в диапазоне от 0 до number-1 //while #a = #b or random 5 > 3 //set #a random 2 при сохранении скрипта, с предшествующей очисткой, при помощи соответствующего пункта меню, будет предложено ввести новое имя файла по просьбе клуба УЛЬТРА, вышла дополнительная версия UoPilot'a с некоторыми функциональными ограничениями: отключена маска *.* при загрузке и записи файлов, недоступна функция запуска клиента, отключены команды exec и terminate наконец-то нарисовал простенький about ================================= UoPilot v.1.07 beta 1, (c) 2002-03 by WK http://wknight.hotbox.ru wknight@hotbox.ru окно развернутого скрипта больше не сворачивается вместе с UoPilot'ом отныне при сворачивании UoPilot'а сворачивается только сам UoPilot, оставляя все открытые окна на своих местах добавил возможность сворачивать UoPilot в трей. разворачивается по левому даблклику включается с помощью соответствующего пункта меню исправлена ошибка, в результате которой сбрасывалось количество повторов макроса после проигрывания добавил возможность отображать запущенные скрипты с помощью изменения цвета их номеров: системный (по умолчанию черный) - не запущен, синий - выполняется, красный - приостановлен включается с помощью соответствующего пункта меню добавил возможность, во втором UoPilot'е, назначить горячие клавиши функциям, которые уже использованы в первом выбранные горячие клавиши больше не 'теряются' при отключении немного изменен алгоритм функции 'добавлять пробелы' добавил возможность устанавливать случайную задержку, посылки клавиш и кликов мышью на вкладке 'общее', из указанного диапазона: '3000-500' даст случайную задержку в диапазоне от 3000 до 3500 исправлена ошибка с абсолютными кликами мышью, внесенная в версии 1.05b1 отныне сохраняется статус опции 'включить HotKeys'. при загрузке UoPilot'а с отключенной данной опцией, и ее последующим включением, настройки всех хоткеев устанавливаются по умолчанию добавил возможность назначить каждому скрипту свою горячую клавишу: на форме редактора хоткеев находится таблица, содержащая номера и имена файлов всех, открытых на данный момент, скриптов. в правой колонке отображается горячая клавиша, в левой ее активность. включение\выключение\редактирование скриптовых хоткеев работает по тому же принципу, что и остальных. если скрипт, для которого назначена горячая клавиша не запущен, то он запускается, если приостановлен, то его выполнение продолжится и если он выполняется, то он соответственно будет остановлен. поддерживается до 99 горячих клавиш. сохраняются при сохранении настроек --------------------- v.1.07 beta 2 исправил ошибку выскакивания eexternal на непустой строке, не содержащей команды отныне координаты панелек управления домом и кораблем запоминаются при сохранении настроек форма справки появляется слева или справа от окна UoPilot'а, в зависимости от некоторых условий исправил ошибку загрузки горячих клавиш для скриптов, при загрузке UoPilot'а со старым конфигом или вообще без него исправил, неизвестно откуда взявшуюся, ошибку нехватки памяти, при включении отображения параметров чара в заголовке окна UO исправил ошибку определения GM Page, проявлявшуюся при включении опций 'При ошибке чтения параметров чара при-\останавливать скрипт' или информировать о данной ошибке исправил ошибку определения сообщения от сервера в функции 'Запуск и логин', в результате которой происходило ее зацикливание исправил ошибку определения последнего сообщения от сервера: иногда некоторые сообщения не определялись, и вместо них переменная lastmsg содержала слово error, теперь последнее сообщение от сервера должно определятся всегда отныне все сообщения выводимые UoPilot'ом будут выводиться поверх всех окон и сопровождаться звуковым сигналом добавил панель управления животными и вендорами отныне, при определении GM Page, мигать будет то окно, в котором оно собственно и определилось, а не UoPilot, как было раньше убрал функцию флуда назначил горячую клавишу для панели макросов. по умолчанию Ctrl+M --------------------- v.1.07 beta 3 отныне путь к клиенту в функции 'Запуск и логин' берется из реестра, если не указан в командной строке путь к файлу login.cfg в функции 'Select UO server' берется из функции 'Запуск и логин' при остановке приостановленного скрипта, больше не будет выполнятся текущая команда добавил возможность издавать звуковой сигнал при приходе пейджа добавил возможность указывать путь к файлу конфигурации в командной строке UoPilot /iC:\UO\my_config.ini научил UoPilot понимать русские ластмессаги теперь UoPilot чуть более качественно произносит сообщения написанные кириллицей по прежнему требуется включение русской раскладки клавиатуры в самой UO добавил возможность указывать задержку между строк для панели макросов. для каждой кнопки отдельно. запоминается при сохранении макросов сообщений добавил возможность указывать задержку между строк скрипта, не содержащих команды. расположено на вкладке 'еще' добавил возможность отключать отображение хода выполнения скрипта, с помощью соответствующего пункта меню добавил возможность, с помощью соответствующего пункта меню, выбрать способ отображения панели параметров чара, окна развернутого скрипта, панелей управления домом, кораблем и животными: поверх всех окон, или как обычное окно. --------------------- v.1.07 beta 4 добавил возможность изменения переменных в процессе выполнения скрипта, при помощи таблицы отображения переменных. изменение переменных происходит синхронно с набором символов отныне символ точка '.' является легальным символом и не может быть использован в качестве разделителя добавил возможность использовать переменные из параллельных скриптов, добавив к имени переменной номер скрипта через точку //set #i.2 5 //say $test.2 #i.2 исправил ошибку в команде drag, в результате которой игнорировался параметр 'количество', если он был указан с помощью переменной добавил возможность использовать характеристики персонажа из параллельных скриптов, добавив к имени переменной номер скрипта через точку //set lasttargetid.1 7 //say hits.1 исправил ошибку в команде flash, в результате которой таскбар не убирался с экрана, если у него была включена соответствующая настройка немного косметики добавил горячую клавишу для прикрепления всех скриптов к указанному окну UO. по умолчанию Ctrl+Alt+A добавил возможность автоматически прикреплять все скрипты, при старте UoPilot'a, на верхнее окно UO. при включении данной настройки, комбинация клавиш Ctrl+A прикрепляет все скрипты к указанному окну UO отныне, если в командах pause_script и stop_script не указан номер скрипта, то они действуют для текущего --------------------- v.1.07 beta x опция 'включить HotKeys' отныне действует и на горячие клавиши для скриптов при включении горячих клавиш опцией 'включить HotKeys', автоматически назначаются только те, которые были включены ранее исправил ошибку в команде break при прерывании нескольких циклов repeat или for добавил возможность приостанавливать скрипт, если клиент не подает признаков жизни. выполнение будет продолжено с этой же строки добавил возможность посылать команды в injection версии 309.05+ минуя клиент. если инжект не опознан, то скрипт будет приостановлен. выполнение будет продолжено со следующей строки //injection waittargetself; usetype bandage; arm my_name немного подкорректировано вычисление сложных формул --------------------- v.1.07 beta 5 исправлена ошибка в команде injection, связанная с заглавными буквами добавил возможность копировать текст, набранный в окне клиента, в буфер обмена, с помощью соответствующей горячей клавиши. только для клиента 2.0.3 исправил ошибку в команде goto, в результате которой она перестала реагировать на отсутствие меток добавил возможность безболезненно выходить по goto из цикла repeat добавил возможность мигать окном UO, к которому прикреплен соответствующий скрипт, указав что-нибудь в качестве параметра команды flash //flash что-нибудь добавил массивы. отныне символ процента '%' считается идентификатором массива. индексы массива указываются после имени в квадратных скобках '[' и ']'. размер массива равен максимальному использованному индексу. присваивание значений осуществляется каждому элементу индивидуально. элементы массива могут содержать как строки, так и числа. допустимо ссылаться на массивы параллельных скриптов, указав после имени массива, через точку, номер скрипта. при указании только первого индекса в двумерном массиве, результатом будет строка из всех элементов второй размерности массива, соответствующих указанному индексу, и разделенных пробелом //set %ar [4] тест // одномерный массив на 4 элемента //set %arr [50 1] 544 //set %arr [50 2] 800 // двумерный массив на 50 раз по 2 элемента //set %ar.2 [5] // одномерный массив в параллельном скрипте //left %arr [50] // клик левой кнопкой по координатам 544 800 ! элементы массивов нельзя напрямую использовать в условных операторах //if charposx <> %arr [50 1] добавил поддержку клиента версии 1.26.4e добавил возможность сохранять скриншот активного окна и верхнего окна UO. выбор производится с помощью соответствующего пункта меню --------------------- v.1.07 beta 7 исправлена ошибка в операторе for, внесенная в предыдущей версии добавил отображение переменной timer в таблице переменных. отключается с помощью соответствующего пункта меню интерфейс UoPilot'а переведен на английский язык. выбор языка производится с помощью соответствующего пункта меню если язык, установленный в системе по умолчанию, поддерживается UoPilot'ом, то, при первом старте, он выбирается автоматически, в противном случае выбирается английский добавил поддержку клиента версии 2.0.0b всем у кого версия клиента старше, придется заново выбрать номер версии в UoPilot'е и сохранить настройки исправил ошибку присваивания элементам массива значений переменных --------------------- v.1.07 beta 8 буферизированы запись и чтение настроек при прикреплении всех скриптов к указанному окну UO, соответствующей горячей клавишей, также к данному окну прикрепляется и сам UoPilot предпринята попытка изменять приоритет запускаемых пилотом клиентов интерфейс UoPilot'а переведен на португальский язык исправлена ошибка с комментариями в условных операторах исправлена ошибка, возникающая при открытии файла процедур, под виндами 9х переделаны все клики мышью. теперь UoPilot ждет, пока приложение не обработает клик немного изменена посылка одиночных клавиш командой send и со вкладки Общее теперь табы в конце строки будут игнорироваться также как и пробелы добавлена поддержка клиента версии 3.0.0g ================================= UoPilot v.2.00, (c) 2002-05 by WK http://wknight.hotbox.ru wknight@hotbox.ru добавлена возможность изменения "задержки после указания количества перетаскиваемых итемов" в команде drag и функции automove исправил ошибку отжирания огромного количества памяти, при запуске больших скриптов добавил ссылку на новый форум в раздел 'о программе' убрал лишний значок пилота из списка окон выводимого по alt+tab отныне панель отображения параметров чара больше не сворачивается в некую маленькую плюшку, а закрывается при нажатии на соответствующий крестик waitfortarget понимает сокращенное указание времени (10s, 5m, 1h) msg должно выскакивать поверх прикрепленного окна. сообщения об ошибках - поверх всех окон send посылает текст по одной клавише. можно задавать список клавиш, после первой нераспознанной клавиши, все до конца строки посылается сплошным текстом. если первое слово клавиша, а второе число, то считаем, что это задержка после клавиши исправил неадекватную реакцию на присваивание переменным строк, содержащих букву h немного оптимизировано вычисление задержки в скрипте исправил глюки с невозможностью редактирования скрипта после пошагового выполнения и прочих подобных операций режим пошагового выполнения выставляется для каждого скрипта индивидуально исправлены глюки с отображением переменной timer в таблице отображения переменных обновление переменной timer в таблице отображения переменных сокращено до 8-ми раз в секунду строка, заключенная в кавычки, считается одним словом и не обрабатывается на предмет замены переменных исправлено многократное информирование об ошибке чтения параметров чара исправил мелкий баг в вычислении выражений немного подправлены команды управления работой других скриптов и процедур случайная задержка на вкладке "общее" вычисляется с любым разделителем добавлена возможность запуска клиента без автологина вновь более полно определяем успешность чтения ластмессаги пилот вновь реагирует на пролетающие над ним файлы исправил ширину таблицы переменных в ХП при нажатии Ctrl+A (выборе окна) обновляем статус внутренних переключателей клиента корректно определяем задержку между строк, указанную в имени файла скрипта скрипты сохраняются только с тем расширением, которое выбрано в маске в диалоге сохранения при включенной галочке будильника "запускать скрипт", пилот больше не будет издавать звуковой сигнал, при наступлении события последний открытый файл всегда будет самым верхним в списке последних открытых файлов убрал преобразование hex чисел в форме $0xx в вычислении выражений добавил возможность загружать массивы из файла. по-умолчанию файл ищется в каталоге со скриптами load_array %array #array_x #array_y #start_file_x #start_file_y #count_x #count_y $filename отсутствовать может любое количество операндов, начиная с конца, до имени массива. последний из оставшихся операндов считается именем файла, им может являться имя массива. значения по умолчанию, начиная со второго операнда 1,1,1,1,0,0. они же являются минимально допустимыми. если указано меньшее значение, то оно заменяется значением по умолчанию. массивы хранятся в виде [строка, столбец]. элементы массива отделены друг от друга символом с кодом #9 (tab) добавил возможность занесения в переменную цвета точки, по заданным координатам на экране, с помощью ключевого слова Сolor в команде Get. get color #color #x #y [abs] При указании ключевого слова abs, координаты берутся относительно экрана, иначе относительно прикрепленного окна. Если цвет определить не удалось, то переменная будет содержать значение -1. Если переменная ранее не существовала, то она создается. при сохранении копии экрана верхнего окна UO, и отсутствии такового, будет сохранена копия экрана верхнего окна добавил несколько проверок в сохранение копии экрана. тестируем исправил баг, из-за которого заменялись не все переменные в строке исправлено несколько вероятных эксепшенов много мелких оптимизаций много мелких исправлений --v.2.01-- добавил приставку "Full" к командам управления кораблем несколько мелких исправлений --v.2.02-- исправил небольшую ошибку в условных операторах, внесенную в последней версии статус внутренних переключателей клиента читаем из верхнего окна UO и обновляем при открытии соответствующего меню исправил ошибку с недопониманием чисел в hex'е. теперь числа начинающиеся с 0x считаются шестнадцатеричными исправил ошибку с присваиванием значений всегда только последнему элементу массивов, независимо от указанного исправил ошибку с присваиванием значений массивам скрипта с номером 0, из других скриптов добавил меню по правому клику на значке в трэе (развернуть, закрыть) горячая клавиша переключения между пилотом и прикрепленным к нему приложением, теперь разворачивает пилот из свернутого состояния, даже если он был в трэе горячая клавиша переключения между пилотом и прикрепленным к нему приложением, теперь выбирает приложение в соответствии с настройкой меню "Отображать параметры чара" исправил мелкую ошибку с изменением скрипта, когда он сам выбран в качестве рабочего окна добавил отображение скилов на панели параметров чара для клиентов 1.26.4a и 2.0.3 увеличил до 3х количество строк для отображения последнего сообщения на панели параметров чара добавил возможность определения значения скилов из скрипта для вышеупомянутых клиентов, с помощью ключевого слова skills, с последующим указанием номера или названия скила. названия скилов, содержащих пробелы, могут писаться слитно. скил Blacksmithing также определяется как Blacksmithy. значение скилов выдается в целых числах, т.е. 50.0 будет определено как 500 set #a skills [35] --v.2.03-- исправил ошибку с загрузкой массивов команда drag теперь понимает указание нескольких координат с помощью одной строковой переменной --v.2.04-- исправил небольшую ошибку в операторе random при ошибке чтения параметров чара, считываемые переменные будут содержать значение -1 исправлена ошибка обновления последнего сообщения от сервера на панели параметров чара, при включении отображения скилов отныне, при активной вкладке "Скрипт", пилот можно растягивать до необходимых размеров. запоминается при сохранении настроек. пункт меню "Развернуть" убран из контекстного меню скрипта --v.2.05-- исправил ошибку в get number с неправильным распознаванием шестнадцатеричных чисел начинающихся с 0 добавил возможность изменения настройки клиента Always Run с помощью переменной arun добавил переключатель переменной Always Run в меню 'Настройки UO' добавил переменную hidden, позволяющую определять видим ли персонаж для других игроков добавил переменную war, позволяющую определять режим агрессивности персонажа. изменение значения данной переменной изменяет поведение персонажа только на компьютере пользователя исправил ошибку в операторе for с повторным использованием переменных добавил переменную delimiter, используется для разделения элементов массива set %a [1 1] 1 set %a [1 2] 2 set delimiter '+' msg %a [1] set #n %a [1] msg #n set delimiter set #n %a [1] msg #n добавил несколько горячих клавиш, для переключения настроек UO добавил переменную spellname, возвращающую название заклинания по его порядковому номеру. нумерация начинается с нуля msg spellname [32] добавил возможность указания количества повторений посылки клавиш на вкладке "Общее". отрицательные значения соответствуют бесконечности исправил небольшую ошибку посылки клавиш на вкладке "Общее" --v.2.07-- добавил пункты приостановить текущий и приостановить все скрипты в главное меню исправил ошибку при старте пилота со включенной галочкой сворачивать в трэй если первый и последний символы в строке - двойные кавычки, и в строке больше таких кавычек нет, то они удаляются решена проблема с португальским и непечатными символами добавил чтение координат чара для MU. charposx, charposy - соответствующие координаты чара. charposz - что-то также связанное с координатами, но не z --v.2.08-- в координатах чара для MU, charposx и charposy поменяны местами, ибо были перепутаны научил пилот определять цвет по абсолютным координатам. if 931, 324 9933964 abs полностью переписана команда sendex. синтаксис тот-же добавил возможность выбора рабочего окна для скриптов из списка --v.2.09-- исправил ошибку в операторе random, теперь понимает переменные и выражения. слегка изменен синтаксис. random (выражение) отныне настройки 'Source<>Destination' сохраняются в файле конфигурации в координатах чара для UO, charposx и charposy поменяны местами, ибо были случайно перепутаны в предыдущей версии исправил мелкую ошибку при невозможности записать файл настроек мелкие махинации с юникодом в последнем сообщении от сервера --v.2.10-- перевел на инглиш сайт, хистори и хелп по скриптам исправил ошибку при автостарте скриптов добавил возможность останавливать и приостанавливать работу всех параллельных скриптов, за исключением текущего, с помощью указания параметра "allex" в командах stop_script и pause_script, соответственно. stop_script AllEx добавил определение текущих координат мышинного курора, с помощью ключевого слова Mouse_Pos в команде Get. get mouse_pos #x #y [abs] При указании ключевого слова abs, координаты берутся относительно экрана, иначе относительно прикрепленного окна. Если переменные ранее не существовали, то они создаются. --v.2.11-- в режиме отладки почти все задержки игнорируются (кроме waitfortarget) добавил выделение первого числа из строки, с помощью ключевого слова Number в команде Get. get number #var #pos $string Если число не обнаружено в заданной строке, то первая числовая переменная будет содержать значение -1, а вторая количество слов. Иначе, в первой числовой переменной будет найденное число, во второй номер слова. Если переменные ранее не существовали, то они создаются. добавил выделение слова из строки по его порядковому номеру, с помощью ключевого слова Word в команде Get. get word $var #pos $string Если слова с заданным номером не существует, то будет возвращена пустая строка. Если указано отрицательное число, то будет возвращена исходная строка без указанного количества слов вначале. Если переменная ранее не существовала, то она создается. добавил возможность сохранять массивы в файл. по-умолчанию сохраняются в каталоге со скриптами. save_array <%array> [#array_x] [#array_y] [#count_x] [#count_y] [$filename]. отсутствовать может любое количество операндов, начиная с конца, до имени массива. последний из оставшихся операндов считается именем файла, им может являться имя массива. массивы хранятся в виде [строка, столбец]. элементы массива отделены друг от друга символом с кодом #9 (tab) отныне не требуется указывать рабочее окно перед запуском скрипта. при программном запуске непривязанного скрипта, выполнение текущего приостанавливается на 3 секунды, с выводом сообщения об ошибке, после чего выполнение продолжается добавил возможность перемещения выбранного окна и изменения его размеров 'set windowpos X Y width height handle'. при указании отрицательных размеров, или их отсутствии, данные параметры игнорируются. при указании хендла окна, действия происходят с указанным окном, иначе с текущим. если указана отрицательная ширина, параметр 'height' отвечает за расположение окна в стопке, и может принимать следующие значения 1: TOP; 2: TOPMOST; 3: NOTOPMOST; 4: BOTTOM. добавил возможность автоматического запуска скриптов при загрузке программы 'UoPilot /r0 /r12' исправил ошибку EExternal при использовании подпрограмм добавил команды альтернативных кликов мышью kleft, kright, double_kleft, double_kright, kleft_down, kleft_up, kright_down, kright_up. работают там, где не работают обычные команды, но захватывают мышь. синтаксис тот-же добавил возможность указания задержки между нажатием и отпусканием кнопки мыши в мышинных командах в связи с переездом исправил линки в абоуте отныне, при остановке скрипта, sendex прекращает посылку клавиш --v.2.12-- уменьшил задержку в sendex почти в два раза исправил эксепшен при старте пилота с включеной галочкой "сворачивать пилот в трэй" добавил отображение всех окон имеющих заголовок добавил определение текущей даты 'year', 'month', 'day' добавил пару условных операторов: '==' эквивалентно '=', '!=' - '<>', '&&' - 'and', '||' соответственно 'or' добавил обработку нескольких клавиш: '`', '-', '=', '\', ',', '.', '/', ';', ''', '[', ']' исправил проверку цвета на принадлежность диапазону. теперь по отдельности проверятся составляющие цвета подправил иконку в трэе, для совместимости со старыми виндами исправил определение цвета точек на экране добавил работу с глобальными текстовыми переменными EasyUO. В EasyUO такие переменные обозначаются как *1, *2 и так далее. set EasyUO*n $переменная get EasyUO*n $переменная //Где n - числовая переменная отображаемая в EasyUO. В качестве n можно использовать числовые и строковые переменные (#n, $s). Имя переменной также может быть строковое --v.2.14-- добавил команду 'ShowWindow '. показывает окно в соответствии с указанными параметрами. HIDE: спрятать окно; MAXIMIZE: развернуть во весь экран; MINIMIZE: свернуть; RESTORE: развернуть; SHOW: показать; TOP: вытащить на поверхность. по-умолчанию приняты следующие параметры: текущее окно, TOP добавил функцию 'FindWindow (<заголовок окна | PID>)'. возвращает хендл окна, необходимый предыдущей команде. заголовок окна следует указывать полностью, с соблюдением регистра символов. если нужное окно не найдено, то регистронезависимо ищем указанную строку в начале названия всех окон. поиск в скрытых окнах зависит от состояния переключателя "Показывать все окна". если опять ничего не нашли, то считаем, что указан PID процесса и ищем первое попавшееся окно этого процесса. добавил возможность задания рабочего окна из скрипта 'set WorkWindow ' sendex больше не активирует выбранное приложение. для активации следует использовать 'ShowWindow' без параметров добавил функцию 'GetWindow ( )'. возвращает хендл дочернего окна от указанного. второй параметр задает направление поиска добавил функцию 'GetWindowtext ()'. возвращает заголовок указанного окна добавил функцию 'SetWindowtext ( )'. изменяет заголовок указанного окна. возвращает 1 если смена прошла удачно, в противном случае 0. исправил доступность кнопки 'Пауза' при запуске пустого скрипта добавил изменение приоритета для вновь созданных скриптов. работает для новых (добавленных) скриптов, либо после перезапуска пилота добавил возможность изменения приоритета скрипта из скрипта с помощью команды 'set priority <1|2|3>' где 1,2,3, соответственно нормальный, высокий, максимальный. добавил команду сохранения копии экрана в файл - 'PrintScreen '. Первым параметром указывается хэндл рабочего окна, либо 0 - весь экран. Если 'width' или 'height' =0 то берется максимально возможное значение. set #x findwindow (Ultima Online - Admin) printscreen #x 0 0 0 0 c:\full client window.jpg добавил возможность из скрипта запросить значение у пользователя. 'set $a prompt (<подсказка>)' - запрос на ввод значения. возвращает в переменную введенное значение. 'set #b prompt (<выбор1> <выбор2> [выбор3] [выбор4] [выбор5])' - запрос на выбор значения. возвращает номер выбранного значения, либо 0. выбор подтверждается закрытием окна. добавил возможность изменять задержку между символами в команде 'sendex' на вкладке 'Ещё' 'terminate' прибивает все окна, в составе заголовка которых обнаружена искомая строка. регистронезависимо изменен синтаксис оператора 'random' в условиях. теперь он такой же как и везде 'random (выражение)'. if random (124) = 0 исправлена забывчивость пилота о своих размерах при переключении с вкладки скриптс с измененными размерами, на две других подряд, а потом опять на скриптс исправил отображение окон пилота при изменении размеров шрифта системы работа над ошибками добавил команду 'readmem '. читает с указанного адреса переменную указанного типа. если тип - строка, то необходимо указать размер. при возникновении ошибки, переменная будет содержать значение '-1'. B:byte = 1b; W:word = 2b; D:dWord= 4b; C:char = 1b; S:String = 1-255b; пример: readmem #hi1 0x073B978 b readmem $hi2 0x073B978 s 10 добавил команду 'writemem [result]'. пишет по указанному адресу значение переменной указанного типа. в необязательном параметре 'result' возвращается количество записанных байт. B:byte = 1b; W:word = 2b; D:dWord= 4b; C:char = 1b; S:String = 1-255b; добавил частичную поддержку клиента UO ML Client 6.0.7.0 (Patch 81) --v.2.15-- исправлена ошибка чтения строковых значений из памяти клиента исправлена ошибка при завершении активного скрипта на свернутом в трэй пилоте добавил возможность сортировать по алфавиту список скилов на панели параметров персонажа, с помощью соответствующего пункта меню. добавил поддержку клиентов 6.0.12.3, 6.0.12.4 и 6.0.13.0 в связи с этим добавилось несколько переменных: PsysResist, FireResist, ColdResist, PoisResist, EnerResist, Luck, Damage, HitsMax, ManaMax, StamMax, DamageMax, Followers, FollowersMax, WghtMax. добавил диалог поиска в 'помощь по языку скриптов', 'историю развития программы' и сам скрипт. вызывается по нажатию Ctrl+F добавил определение координат для клиента MU 1.04J(3 сезон). charposx, charposy - соответствующие координаты чара добавил переменную обозначающую задержку между строк в скрипте: linedelay. приостановка скрипта с помощью кнопки 'Pause' сбрасывает ее на значение по-умолчанию. set linedelay 5 + linedelay исправил ошибку с пропаданием зарезервированного слова 'random' из текстовых сообщений. msg random 123 исправил ошибку отображения хода выполнения скрипта, при запуске пилота добавил в команду printscreen возможность делать копию экрана рабочего окна, при указании в качестве handle единицы. printscreen 1 0 0 0 0 c:\client window.jpg добавил возможность изменения цвета текста речи персонажа из скрипта. устанавливается не цвет, как таковой, а номер палитры из файла hues.mul. используемый диапазон 2 - 1057. поддерживаются клиенты 2.0.3, 6.0.12.3, 6.0.12.4 и 6.0.13.0 set fontcolor 215 добавил возможность запускать\останавливать скрипты без переключения текущего, с помощью маленьких кнопочек на закладке каждого скрипта меню Настройки\Отображать кнопки запуска остановки скриптов. (на 64-х битных виндах похоже не работает) подправил загрузку скриптов из командной строки. теперь можно загружать несколько скриптов при старте пилота. загружаются начиная со скрипта 0 и далее по порядку. UoPilot /sa.txt /sb.txt /sc.txt добавил возможность указывать параметры при вызове процедур. приём\передача массивов пока не поддерживается call test #var1 $var2 "any text" word #var3 proc test #var4 $var5 $var6 $var7 $var8 добавил команду post, аналог send. должна помощь обмануть GG игрокам в ЛА2, счастливым обладателям виндовс XP sp2-3 32 бит и Vista Home 32 бит добавил команды pleft, pright, double_pleft, double_pright, pleft_down, pleft_up, pright_down, pright_up. аналогично команде post добавил в мессагебоксы номер и имя файла ответственного скрипта добавил идентификатор процесса PID в список процессов, вызываемый кнопочкой W. добавил параметр 'скорость выполнения' команде 'macro_play'. значение по-умолчанию 100. чем меньше, тем быстрее. macro_play [количество] [скорость] --v.2.17-- добавил альтернативный способ определения цвета точек на экране. теперь работает в Lineage2. прозрачно для пользователя поправил функцию 'поверх всех окон' переделал алгоритм выполнения скрипта. исправлена ошибка с повторным выполнением добавил функцию 'size', возвращает длину указанного параметра пример: set %q [4 3] test string here set %q [7 5] 0 set $q 123 + 8645 set #q 12 msg size (%q [ 4 3 ] ) // 16 - длина элемента массива msg size (%q [ 4 ] ) // 5 - вторая размерность массива msg size (%q ) // 7 - первая размерность массива msg size ($q) // 10 - длина строки msg size (#q) // 2 - количество разрядов msg size ( another test string ) // 19 - длина строки добавил функцию поиска точек определенного цвета в заданной области. возвращает количество найденных элементов. в параметр 'ResultArray' заносятся их координаты findcolor (StartX StartY EndX EndY ShiftX ShiftY RequiredColor ResultArray [type] [abs]) где 'type' = 1 - обычный способ (по умолчанию) = 2 - альтернативный пример: set $a findcolor (0, 0 1024, 3 1 1 10243328 %s 2) set #w size (%s) msg size: #w found: $a for #i 1 #w set #x %s [#i 1] set #y %s [#i 2] end_for исправил ошибку выделения текущей строки неактивного приостановленного скрипта добавил поддержку клиентов 6.0.14.1, 6.0.14.2 --v.2.18-- изменил пути к скриптам с абсолютных на относительные исправил ошибку отмены последних изменений в текущем скрипте при добавлении нового скрипта добавил работу с буфером обмена: set clipboard // помещает в буфер обмена указанный текст. get clipboard <$var | %var> // получает текст из буфера обмена в строковую переменную, либо в массив, с разбивкой по словам. последний, дополнительный, элемент массива содержит пустую строку. пример: set clipboard проверка связи get clipboard $a msg $a set $r раз два три set clipboard $r get clipboard %a set #s size (%a [1]) -1 for #i 1 #s msg %a [1 #i] end_for end_script переделал функцию 'GetWindowtext ()'. возвращает заголовок указанного окна. если 'handle' не указан или равен нулю, то используется текущее рабочее окно. может брать текст из разных контролов пример: set #a findwindow (Веб-страница недоступна) if #a > 0 set workwindow #a set #var getwindow (#a child) set #var getwindow (#var next) set workwindow #var msg GetWindowtext () end_script end_if добавил поддержку клиентов 7.0.4.3-5, 7.0.5.0, 7.0.6.3 исправил запуск клиента, с вкладки 'Разное' путь к клиенту UO сохраняется в реестре при сохранении настроек пилота добавил логи. 'set logging