Пожертвовать на дальнейшее развитие:
(IMG:
http://uopilot.uokit.com/wm_forum.png)
Рубли: R849464451336
Гривны: U145931779718
Доллары: Z353114408274(IMG:
http://uopilot.uokit.com/ya_forum.png)
410011422550405--v.2.39--
Исправил установку размеров в команде 'log open', при первом открытии окна лога.
Исправил зависание пилота при выходе с работающими скриптами.
Добавил команду перезапуска скриптов 'restart_script [number | filename | all | allex]'. Сначала останавливает все указанные, потом запускает все указанные, и потом перезапускает свой скрипт, если нужно.
Исправил команду 'log close', открывавшую закрытый лог.
Исправил ошибку, возникающую, при указании комментария в описании процедуры. "proc test // comment".
Исправил показ хелпа с Wiki для составных команд типа 'set clipboard'.
При открытии Wiki страницы по ПКМ на команде в скрипте, фокус устанавливается на саму статью, а не на выпадающий список.
Исправил копирование примеров с Wiki в пилот.
Исправил ошибку в команде 'set windowpos' с параметрами TOP и BOTTOM.
Добавил возможность перезагрузки указанного плагина. 'pluginload [filename]', 'pluginreload [filename]', 'pluginunload [filename]'.
Добавил функцию плавного перемещения курсора, синтаксис как у команды 'move'. 'move_smooth <х> <у> [+х +у [-х -у]] [abs|handle]'.
В форматирование добавил форматирование подпрограмм от ":метки" до "return" находящихся на одном уровне вложенности.
Команда 'repeat'. Исправил вход в цикл при указанном количестве повторов <= 0.
Исправил ошибку "-4" в команде 'findimage', возникающую, если координата и путь к файлу не разделены пробелом.
Подправил функцию чтения памяти клиента.
Отключил отображение значений переменных на форме параметров персонажа, при отключении слежения за ходом выполнения скрипта. Тем самым корость выполнения активного скрипта приближена к скорости выполнения скриптов в неактивных вкладках.
Добавил ключ командной строки, изменяющий рабочую папку пилота. "UoPilot.exe /hC:\Temp\".
Добавил функцию запоминания части экранной области 'GetImage (StartX StartY EndX EndY [type|handle] [abs])'. Возвращает строку в виде "Адрес в памяти|Ширина|Высота|Длина строки в байтах/", либо код ошибки.
Добавил функцию удаления запомненной части экранной области 'DeleteImage (address)'. Возвращает "0" или "1", либо код ошибки.
Переделал функцию 'findimage'. В качестве типа поиска принимает адрес из функции 'GetImage'. Координаты в функции 'findimage' указываются относительно части экрана, сохраненной в функции 'GetImage', но возвращаются относительно привязанного окна\экрана.
set %a GetImage ( 100 100 1000 1000 )
set #v %a [1 1]
set $a findimage ( 51 51 1403 1403 (C:\test.bmp) %arr #v 80 1)
set $b DeleteImage ( %a [1 1] )
Отключил по-умолчанию галочку "Возвращать курсор мыши после кликов".
Вынес 'findcolor' из потока пилота, теперь оно меньше подтормаживает сам пилот.
Исправил функцию 'findwindow'. Ничего не находила при нажатых клавишах "Alt+Tab".
Команду 'Exec' переделал по типу 'ExecAndWait'. Теперь переменная 'errorlevel' содержит PID запущенного процесса.
Добавил возможность задавать зарезервированные переменные, читаемые из памяти клиента. Имя переменной и цепочка адресов задается в файле конфигурации, в секции "[CustomVariables]" в формате "имя=адрес,тип читаемых данных;прибавляемое значение,тип читаемых данных;".
Пример: wow=0xB4B2BC,d;0x65B8,d;0x40,f;
Скрипт: set wow wow + 1
Добавил описание изменений "ночной сборки" во встроенную справу в пилоте.
Добавил функцию загрузки изображения из файла 'LoadImage (filename)'. Возвращает строку в виде "Адрес в памяти|Ширина|Высота|Длина строки в байтах/", либо код ошибки.
Добавил в функцию 'findimage' поиск изображений загруженных в память, при указании адреса в памяти вместо пути к файлу.
Добавил присваивание строке массива строки вида '3|7/3|8/4|7/4|8/'.
Добавил функцию сохранения изображения в файл 'SaveImage (Address filename)'. Поддерживаются форматы ".bmp", ".jpg", ".png" (определяется по расширению).
Исправил ошибку в разборе строки диапазонов цветов, указанных в 'findcolor', когда лишние пробелы вокруг "-" приводили к недопониманию.
Исправил вычисления с отрицательными числами.
Исправил присваивание строковых переменных в параллельных скриптах, при указании индекса скрипта переменной.
Исправил команду 'sort_array', сломанную после 2.38.
После выполнения команды 'Exec' переменная 'errorlevel' содержит PID запущенного процесса либо код ошибки.
Добавил команды блокировки функций клавиатуры и мыши: 'keyboard <enable|disable>', 'mouse <enable|disable>'. Команды эмуляции 'sendex' и 'kleft' также блокируются, 'send' и 'left' работают.
Добавил функцию 'GetFocus', возвращает хэндл окна, имеющего фокус ввода.
Добавил горячую клавишу для разблокировки функций клавиатуры и мыши, заблокированных командами 'keyboard disable', 'mouse disable'. По-умолчанию "Alt+Home".
Добавил поддержку '.lnk' в команды 'Exec' и 'ExecAndWait'.
Исправил команды 'Exec' и 'ExecAndWait' на предмет ошибки 267. Актуально для файлов '.com', '.exe', '.cmd', '.bat', '.lnk'.
Исправил ошибку в команде 'set %arr findwindow (caption)', возникающую при наличии в найденных "caption" символов '|' и '/'.
Исправил 'break' при использовании вложенных 'switch'.
Прикрутил корявенький поиск на форму Wiki.
Исправил ошибку, возникающую при отсутствии пробела перед скобкой в команде 'prompt'.
Добавил возможность переходить по ссылкам с Wiki справки. Открываются в браузере.
Исправил ошибку, возникающую при отсутствии пробела перед скобкой после имени команды.
Исправил параметр '#result' в команде 'get windowpos'.
Исправил размер и цвет шрифта "по-умолчанию" в команде 'hint'.
Если в команде 'writemem' значение для записи заключено в кавычки, то кавычки удаляются.
Добавил возможность "Сохранить настройки как..." и "Загрузить настройки...".
Добавил чтение содержимого бакпака для клиента UO версии 2.0.3, с помощью функции 'set %arr backpack'. Сохраняет в массив по столбцам "ID", "itemType", "count", "color", "posX", "posY".
Поменял местами 'lengthdir_x' и 'lengthdir_y', были перепутаны.
Исправил задание адресов для "War\Hidden", "AlwaysRun", "ConsoleUnicodeText" при выборе "Custom Client".
Добавил "Backpack" в "Custom Client".
Добавил возможность выполнения скриптов "Lua". Пока только версии 5.1, 5.2.
Признаком того, что скрипт на языке луа, является "--lua" в первой строке скрипта.
Скрипт пилотом не обрабатывается, а передается сразу интерпретатору Lua.
По завершении выполнения скрипт не перезапускается сначала, т.е. выполняется однократно.
Для многократного выполнения используйте циклы\операторы перехода.
В Lua отсутствует нормальная возможность прервать выполнения скрипта из вне.
Поэтому, при остановке скрипта пилотом, глобальная переменная "terminate" устанавливается в "true".
И ее необходимо проверять с вкрипте Lua.
Кроме того, после установки "terminate" в "true", все вызываемые функции пилота игнорируюся.
Из скрипта Lua доступны некоторые переменные пилота, доступные для изменения: 'workwindow', 'delimiter', 'clickoffsetx', 'clickoffsety', 'findoffsetx', 'findoffsety', 'sendexdelay', 'mouseclickdelay', 'promptpos_x', 'promptpos_y'.
И несколько доступных только для чтения: 'errorlevel', 'terminated', 'current_script', 'workwindowpid', 'homepath', 'exefilename'.
Остальные переменные вызываются как функции 'windowhandle()'. Т.е. наличие скобок обязательно.
Параметры всех функций заключаются в скобки, даже если в синтаксисе пилота они скобок не имеют.
Все текстовые строки заключаются в двойные кавычки 'sendex ("test")'.
Возвращаемые значения некоторых функций слегка изменены, например 'findwindow' всегда возвращает массив.
--lua
while terminated ~= true do
as3 = findwindow ("Блокнот")
log (as3[1][1], as3[1][2])
wait (1500)
end
Добавил возможность закомментировать строку нажатием ЛКМ по её номеру, и раскомментировать повторным нажатием ЛКМ по номеру.
Подправил вычисления с большими числами.
Добавил функции для работы с датой и временем. "Date", "Date1", "Date2" может быть датой и\или временем, или таймштампом. Дату или время следует указывать полностью. "Years", "Months", "Days", "Hours", "Minutes", "Seconds" обычное число. Все функции сложения и вычитания возвращают таймштамп.
AddDate(Date1 Date2) : складывает даты;
AddYears(Date Years) : добавляет несколько лет;
AddMonths(Date Months) : добавляет несколько месяцев;
AddDays(Date Days) : добавляет несколько дней;
AddHours(Date Hours) : добавляет несколько часов;
AddMinutes(Date Minutes) : добавляет несколько минут;
AddSeconds(Date Seconds) : добавляет несколько секунд;
SubDate(Date1 Date2) : вычитает даты;
SubYears(Date Years) : вычитает несколько лет;
SubMonths(Date Months) : вычитает несколько месяцев;
SubDays(Date Days) : вычитает несколько дней;
SubHours(Date Hours) : вычитает несколько часов;
SubMinutes(Date Minutes) : вычитает несколько минут;
SubSeconds(Date Seconds) : вычитает несколько секунд;
YearFromDate(Date) : Возвращает год;
MonthFromDate(Date) : Возвращает месяц;
DayFromDate(Date) : Возвращает день;
HourFromDate(Date) : Возвращает часы;
MinuteFromDate(Date) : Возвращает минуты;
SecondFromDate(Date) : Возвращает секунды;
DateNow: возвращает текущую дату 29.11.2016;
TimeNow: возвращает текущее время 10:30:25;
TimeStamp (Date): преобразует таймштамп в человеческий вид и обратно.
В форматирование добавил форматирование цикла 'repeat'.
Исправил ошибку в функциях 'minx' и 'maxx', возникающую, если в имени массива есть заглавные не английские буквы.
Исправил ошибку в командах 'gosub' и 'goto', возникающую, если в названии метки используются заглавные не английские буквы.
скачать uopilot 2.39скачать Lua 5.1скачать AntiFrostскачать AntiGateпароль на архивы: uopilot.uokit.com
Сообщение отредактировал WKnight - 10.3.2017, 8:52