|
|
|
Новая Версия Uopilot v.2.41 (31.12.2018), Скачать | Предложения | Bug report |
|
|
WKnight |
31.12.2018, 22:27
|
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688
|
- Добавил длл "lua5.1.dll" в ресурсы пилота. При запуске пилота проверяется ее наличие в папке, и если ее нет, то распаковываем.
- В клики мышкой добавил параметр "nooffset", который позволяет игнорировать смещение, указанное в переменных "clickoffsetxy". 'kleft 100 100 nooffset'
- Исправил вывод сообщения об ошибке при форматировании скрипта, если пилот располагался поверх всех окон.
- Исправил тип поиска 2 в 'findimage', сломанный пару билдов назад.
- Исправил клики мышкой с модификаторами.
- Исправил работу команды 'set windowpos', если не указан хендл рабочего окна.
- Расширил до 16к строку параметров передаваемую в команду 'prompt'.
- Исправил открытие формы параметров персонажа за пределами экрана, при наличии нескольких мониторов.
- Сделал автоматическое определение ширины окна команды 'prompt'.
- Заменил "Lua 5.1" на "LuaJIT 2.0.5". Убрал сторонний компонент для связи с луа.
- Сделал нажатие по коду клавиши в командах 'send*' и 'sendex*'. Коды указывается в качестве параметров в фигурных скобках. При указании нескольких клавиш, пробелы между скобками обязательны. "send {49} {112}".
- Исправил 'return' в 'for' и 'repeat' из двойного 'gosub'.
- Добавил вывод ошибки запуска скрипта Lua и несколько строк кода вокруг указанной.
- Все переменные пилота, которые были доступны из Lua (17 штук), в Lua теперь функции. Те, которые доступны для изменения (9 штук), в качестве параметра принимают новое значение, возвращают старое (включая 'workwindow()').
- Починил галочку "Отображать оставшееся время ожидания".
- При приостановке скрипта, текущая команда типа 'wait' прерывается.
- Во время задержек в скрипте, таймер на панели параметров персонажа продолжает обновляться.
- Добавил еще несколько параметров в команду 'hint (fontSize fontColor posX posY width height backColor fontStyle fontName (any text))'. Где
'backColor' - цвет фона; 'fontStyle' - "n" - normal, или комбинация следующих: "b" = bold, "i" = italic, "u" = underline, "s" = strikeout; 'fontName' - имя шрифта установленного в системе. - Добавил в меню по ПКМ того, чего там небыло.
- Возвращаемое значение функции 'color' изменено на целочисленное.
- Возвращаемое значение функции 'readmem' зависит от типа читаемого значения.
- Исправил сломанные команды прокрутки колеса мыши.
- Исправил 'hint' без указания параметров.
- Убрал сообщение "runtime error", вызванное прерыванием Lua скрипта.
- Добавил переключение закладок скриптов по Ctrl+Tab, Ctrl+Shift+Tab.
- Сделал функцию 'mouse_pos (["abs"])' в Lua. Возвращает два числа - x,y.
- Сделал принудительное закрытие VM Lua, при остановке скрипта.
- Исправил функции 'findcolor', 'findimage' в Lua.
- Добавил возврат "nil" и "LuaTable", как было в предыдущей версии Lua.
- При вставке в скрипт Lua из меню по пкм, к именам функций добавляются круглые скобки.
- При выводе сообщений в лог, символ '\n' дополняется до '\r\n'.
- Исправил 'clickoffsetx' и 'clickoffsety' в комамнде 'move'.
- В Lua добавил функцию 'get_script_text (номер_скрипта)'. Возвращает в таблицу скрипт с указанным номером, либо текущий, если номер не указан.
- Убрал все преобразования строки, выводимой в лог из Lua. Оставил только дополнение '\n' до '\r\n'.
- Исправил утечку памяти, появившуюся при смене Lua.
- Библиотека Lua загружается и инициализируется только при запуске скрипта на Lua.
- Добавил функцию получения приоритета процесса 'GetProcessPriority ([handle|PID])'. Если хендл не указан, возвращает приоритет пилота. Возвращаемые значения:
'-3' - Error; '-2' - Idle priority; '-1' - Below normal priority; '0' - Normal priority; '1' - Above normal priority; '2' - High priority; '3' - Realtime priority; - Добавил функцию установки приоритета процесса 'SetProcessPriority ([[handle|PID] priority=0])'. В случае успеха возвращает "0", иначе код ошибки. Если хендл не указан, устанавливает приоритет пилота. В качестве 'priority' используются теже значения, что возвращает 'GetProcessPriority'.
- В тестовом режиме добавил функцию установки маски ядер процессора для указанного процесса 'SetProcessAffinityMask ([[handle|PID] mask=0])'. В случае успеха возвращает "0", иначе код ошибки. Если хендл не указан, устанавливает приоритет пилота. В качестве 'mask' указывается "0" - все ядра, либо сумма следующих значений:
1 = CPU 0; 2 = CPU 1; 4 = CPU 2; 8 = CPU 3; итд... - Исправил ошибку вывода первого сообщения из скрипта Lua, при ниразу не открывавшемся логе.
- Добавил вывод сообщения об ошибке, при ексепшене в скрипте Lua.
- Исправил функцию 'random()' в Lua, теперь возвращает число.
- Если картинка или цвет не найдены, то 'findimage' и 'findcolor' в Lua возвращают nil вместо пустой таблицы.
- Убрал сообщение 'Операция успешно завершена' выводившееся при остановке Lua скрипта.
- Массивы, возвращаемые функциями 'findimage' и 'findcolor' в Lua, теперь числовые.
- Исправил 'findwindow' при использовании из скрипта Lua. Если ничего не найдено, то возвращает "nil", а не пустую таблицу. При вызове без параметров, возвращает данные активного окна.
- Хендл, возвращаемый функцией 'findwindow' в Lua, теперь число.
- Размер сообщения, выводимого в лог, сейчас увеличен до 1к.
- Команда 'get clipboard' очищает принимающий массив.
- Убрал преобразование переменных в получаемом буфере обмена при использовании команды 'get clipboard %array'.
- Починил 'clipboard' в Lua.
'clipboard(text)' - один параметр, установка; 'string = clipboard()' - без параметров, получение одной строкой; 'array = clipboard(0,"string","word")' - больше одного параметра, разбивка в массив по словам, или по строкам, или по словам и по строкам. - Подправил передачу больших целых чисел из Lua. Больше не должны выводится в экспоненциальной форме.
- Исправил ошибку в командах 'set hotkeystart' и 'set hotkeypause'.
- Добавил в функцию 'findcolor' поиск цвета в загруженной области.
- Добавил проверку захвата изображения по хендлу, при нажатии Ctrl+A для привязки скрипта к рабочему окну. Включается галочкой "Check image capture by handle", находящейся рядом с кнопкой "F" на форме скрипта.
- Если изображение не может быть получено, или возвращен черный квадрат, то берется родительский хендл и снова проверяется пока не будет получено изображение.
- В результате проверки в лог выводится цепочка проверенных хендлов и заголовок окна, необходимого для правильного определения цвета, либо сообщение об ошибке.
- Добавил команду проверки захвата изображения по хендлу. Возвращает смещение по координатам и правильный хендл, либо 0.
'set #newhandle checkgetcolor (#x #y #handle)' // UoPilot, в переменные #x #y возвращает смещение. 'handle, offset_x, offset_y = checkgetcolor (handle)' -- lua - Исправил вывод в лог длинных сообщений.
- Галочку "Check image capture by handle" перенес в настройки\разное. Включена по умолчанию.
- Добавил функцию поиска значений в памяти 'findmemory (count value type %result accuracy workwindow)'.
Возвращает количество найденных элементов, либо код ошибки. Параметры: count - предельное количество, -1 - все; value - искомое значение. если строка не сплошная, то в кавычках; type - тип предыдущего аргумента, также как в командах чтения\записи в память; %result - принимающий массив; accuracy - точность поиска последовательности значений; workwindow - хендл рабочего окна; В 64х битных процессах пока сканирует только первые 32 бита. - Подправил обновление переменной 'workwindow' при нажатии Ctrl+A.
- Исправил функцию 'getwindow()' в Lua, теперь возвращает число.
- Дочинил. Хендл, возвращаемый функцией 'findwindow' в Lua, теперь число.
- Добавил в команды 'readmem' и 'writemem' чтение\запись по хендлу.
'readmem variable adress type size [handle] [modulename]' 'writemem variable adress type [handle] [ModuleName] [result]' - Добавил команды скрытия курсора мыши: 'mouse hide|show'. Уводит курсор в правый верхний угол экрана и держит его там. При закрытии пилота освобождает курсор.
- Исправил возврат таблицы значений в команде 'findimage' в Lua, при отсутствии результата или ошибке поиска.
- В команду 'findimage' добавил код ошибки '-7' - нечего искать, искомая картинка пустая.
- Исправил 'case:'.
- Сделал восстановление "текущего каталога" при сохраненях\загрузках.
- Исправил в функции 'findcolor' поиск цвета в загруженной области.
- Подправил команды 'Exec' и 'ExecAndWait'.
- Добавил переменную, возвращающую в массив версию пилота 'set %ver version'.
%ver[1 1] - 2.40 - номер версии; %ver[1 2] - u - статус версии r-релиз, b-бета, u-нестабильная; %ver[1 3] - 16 - номер беты; %ver[1 4] - 8 - номер под-беты. - Исправил "get clipboard" с разбивкой по столбцам. Возвращало лишний пустой элемент.
- Исправил функцию 'windowfromcursor()' в Lua, теперь возвращает число.
- Починил 'set windowpos' в Lua. Теперь работает как функция 'windowpos (x, y, width, height [, handle])'. Не возвращает ничего.
- Убрал двойные скобки при вcтавке команд из меню по ПКМ в Lua, курсор устанавливается за скобками.
- Расставил запятые в скобках, при вcтавке команд из меню по ПКМ в Lua.
- При вcтавке команд из меню по ПКМ в Lua убираем признаки переменных.
- Слегка изменил алгоритм вставки команд в скрипт из контекстном меню. Обязательные параметры не убираем.
- Переделал подсветку синтаксиса в редакторе. Добавил возможность изменять категорию существующих ключевых слов и добавлять новые. Список слов указывается в секции "[Highlighter]" в конфигурационном файле пилота в параметрах оканчивающихся на " List" (появятся при сохранении настроек). Пример: "RW EndScript List=end_script,konec_skripta".
- В меню по ПКМ добавил раздел "Lua".
- Добавил возможность комбинировать скрипт пилота с Lua. '--lua' обозначает начало Lua скрипта, '--endlua' соответственно конец.
log start --lua log ("lua") --endlua log finish end_script - Переделал алгоритм комментирования строк, в связи с предыдущим пунктом. Теоретически должно работать.
- Подправил возврат кода ошибки функциями 'findimage' и 'findcolor' в Lua, при неправильном указании параметров.
- Исправил в 'findimage' поиск запомненной картинки в загруженной области. Требовало размер области больше положенного.
- Переделал в Lua функции 'findimage' и 'findcolor' на новый синтаксис, все параметры передаются по одному, через запятую.
Путь к файлу и набор цветов пока передаются строкой в таблице (в фигурных скобках). Принимающий массив изъят из обращения. - По синтаксису Lua в пути необходимо удваивать символ обратный слеш "c:\\", либо указывать путь в двойных квадратных скобках [[c:\]].
- Функции возвращают массив (таблицу) найденных элементов и код ошибки.
Пример:--'arr, err = findimage(10, 20, 1020, 810, {"C:\\tmp\\image.bmp"}, 2)' --'arr, err = findcolor(10, 20, 1040, 810, {"r(255)"}, 2, -1, "abs")' - Исправил эксепшен, возникающий при перезапуске Lua скриптов.
- Добавил "*.lua" в маску по умолчанию, в диалоги открытия\сохранения скриптов.
- Исправил галочку "Добавлять пробелы", слегка переделал алгоритм.
- Исправил 'dir' в Lua. Если ничего не найдено, то возвращает "nil", а не пустую таблицу.
- В хелп с Wiki, который вызывается по "F1" или по ПКМ на операторе в скрипте, добавил команды Lua. Какую справку показывать, Lua или обычную, определяется по предшествующему комментарию.
- В "Перекачать всё с Wiki" добавил скачивание Lua вариантов команд.
- Исправил эксепшен при использовании 'send' без параметров.
- Убрал зацикливание одинокого скрипта Lua без признака конца скрипта "--endlua".
- Добавил редактор "Подсветки синтаксиса" в меню "Настройки".
- Исправил ошибку "EConvertError '^xx'", где "хх" номер скрипта, иногда возникающую при выполнении процедур.
- Исправил присваивание 'workwindow' в процедурах. Присваивание срабатывало только на вызывающий скрипт.
- Убрал кусочек отладочной информации забытый недавно в финдколоре.
- В редакторе скриптов отключил горячую клавишу удаления текущей строки, и для функции Redo изменил на Ctrl+Y.
- Исправил минимальные размеры захватываемой картинки в команде 'getimage' при работе по хэндлу.
- Исправил исключение при работе по хэндлу в команде 'getimage', когда начальные координаты были больше конечных.
- Убрал напоминание о том, что не указано рабочее окно, при старте скрипта по горячей клавише.
- В подсветку синтаксиса добавил комментарии Lua "--".
- Добавил восстановление иконки в трэе, при перезапуске проводника.
- Слегка подправил вывод сообщений об ошибках Lua, теперь сообщает какое именно было исключение.
- Отключил генерацию исключения "деления на 0" и исключения "при ошибочных операциях" (иначе не работает), для совместимости с Lua.
- Допрятал вкладку ультимы в настройках, исправил связанный с ней эксепшен.
- Исправил возврат таблицы значений в команде 'scripts()' в Lua.
- Добавил восстановление позиции курсора в редакторе после остановки скрипта Lua.
- Добавил "всплытие" окна лога, при активации пилота.
- Подправил добавление пробелов в скрипте, при нажатии клавиши Enter.
Домашняя страницаскачать uopilot 2.41скачать Lua 5.1скачать AntiFrostскачать AntiGateпароль на архивы: uopilot.uokit.com скачать UoPilot_2.41 + jit (gcc). Jit compiled by rinat84. Пароль: uopilot.uokit.com скачать LuaJIT со статической компиляцией. Compiled by rinat84Обсуждение справки по UOPilot(Wiki)Пожелания (АРХИВ)Ниже оставляйте предложения и замечания о неисправностях.Сообщение отредактировал Fors1k - 4.8.2020, 1:56
Прикрепленные файлы
LuaJIT_static_with_jit_folder.7z ( 411,59 килобайт )
Кол-во скачиваний: 12966
UoPilot_2.41___jit__gcc_.zip ( 2,12 мегабайт )
Кол-во скачиваний: 13430
|
|
|
|
sutra |
1.1.2019, 5:34
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
|
|
|
|
dron4938 |
6.1.2019, 17:51
|
Apprentice
Сообщений: 256
Регистрация: 20.3.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.395
|
|
|
|
|
DarkMaster |
10.1.2019, 18:12
|
Модератор UOPilot
Сообщений: 9.595
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 28781
Пользователь №: 11.279
|
Цитата И вопрос ещё такой, почему SHOW без кавычек, Только с кавычками и никак иначе. При отправке без кавычек отправляется значение переменной, которое иногда может быть передано, как текст(т.е. натруально SHOW), а иногда может отправить nil. Не разбирался когда, что и как. В целом считаю это недокументированным поведением и не использую. Тем не менее даже если подобное поведение четко регламентировано, я считаю подобным образом передавать параметры не стоит, т.к. при создании переменной/функции с именем SHOW у нас поедет текстовая конастанта, что ну уж совсем странно.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd: Kov____ Писать в личку.
|
|
|
|
sutra |
12.1.2019, 1:14
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Цитата может Handle окна меняет свой id Нет конечно, я всегда проверяю такие вещи. Можете попробовать сами. Заведите окно, скройте его, ну для примера, тем же блокнотом. Затем включите скрипт ... восстановите окно, сделайте паузу ... перекройте во время паузы опять блокнотом и попробуйте восстановить окно опять. Пробовал на разных окнах, по всякому, мерцание окна на панели задач и всё. Если заново перезапустить скрипт, то восстановит окно. Вывод - есть разница между первым вызовом функции восстановления окна и вторым - это уже проверено. Значит всё-таки есть какие-то отличия. Какие? Я не знаю. У меня нет исходного кода. Вопросы к Кнайту. Я обходным путём победил этот глюк, поэтому опять возвращаюсь к этой теме исключительно, чтобы помочь выяснить причину такого поведения. Если у кого не так ... опровергните меня, может я чего не так делаю или чего не понимаю. Но мой принцип таков - чем проще, тем лучше и никаких непоняток быть не должно, а я не понимаю как это работает.
|
|
|
|
sutra |
12.1.2019, 1:42
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
В дополнение могу сказать одно. Глюк "древний" обнаружен ещё когда всё было на Пилотовском языке. Просто я старался не перекрывать окно браузера (где мне нужна была доступной пиктограмма перезагрузки браузера). Когда не следил за игрой всегда оставлял окно браузера открытым. Тем не менее, у меня скрипт зациклен на бесконечность. Спустя какое-то время окно браузера всё-таки восстанавливалось и игра перезапускалась, по времени? ... ну может в течении 30-50 минут, меня устраивало это, а тут решил всё-таки решить эту проблему.
Если у кого получается также - поддержите меня, чтобы я не выглядел пустобрёхом или опровергните.
Если рассуждать логически, то причина в разном (шибко умном, а по факту глупым) поведении Виндов. Раз замерцало на панели задач, значит действие произошло, но не возымело должного эффекта. Победить эту умность наверняка можно.
|
|
|
|
sutra |
13.1.2019, 20:17
|
Adept
Сообщений: 923
Регистрация: 10.8.2018 Группа: Пользователи Наличность: 0
Пользователь №: 19.007
|
Цитата windowpos(-1, -1, -1, 1, ok[1][1]) Так не работает. Код windowpos(-1, -1, -1, -1, ok[1][1]) Так выводит в левый угол 1-го монитора. В общем вопрос остаётся открытым. И что для меня остаётся непонятным, почему при первом вызове всё работает как надо? Проблема возникает только при повторе действия.
|
|
|
|
|
|
17 чел. читают эту тему (гостей: 17, скрытых пользователей: 0)
Пользователей: 0
|
|