|
|
|
Новая Версия Uopilot v.2.38 (21.06.2016), Официальный сайт. Скачать. Последняя версия. |
|
|
Cockney |
7.3.2017, 11:07
|
Master
Сообщений: 1.395
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 21047
Пользователь №: 16.156
|
Что там делать то ? Некоторые тикеты никак не помечаются (ход выполнения), а если и помечаются, то это не заметно, приходится заходить на страницу тикета ,что неудобно. Большинство багов попадает сюда, а не на трекер, ибо шанс, что кнайт увидит больше (я так думаю). Сам же кнайт пишет больше сюда, чем помечает в трекере. Двусторонняя неорганизованность. Либо запретить тут писать и направлять только на трекер(даже кнайту), либо так и будет такой кошмар.
|
|
|
|
cirus |
7.3.2017, 11:41
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26703
Пользователь №: 16.971
Возраст: 29
|
Для меня, важнее чтобы ошибка была замечена и по возможности исправлена, а не то, где она написана. Исправить мелкие ошибки, это быстрее, чем заходить на трекер и что-то там писать, закрывать темы и т. д. Улучшения, скорее всего, откладываются на потом, поэтому чтоб не забылись лучше писать на трекере.
|
|
|
|
WKnight |
7.3.2017, 20:21
|
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688
|
Честно говоря про трекер забыл пару месяцев как... Работа способствует... Да и сложное какое-то все там, тут проще, Цитата Если в названии метки используются русские заглавные буквы, то метка не находится. minx и maxx не понимают массивы, если в имени есть заглавные буквы. Пару строк кода поправил и готово (IMG: style_emoticons/default/smile.gif) Некоторые вещи с трекера в разработке, правда давно, некоторые пока не нашел способ реализовать. Если не ошибаюсь, то релиз сейчас задерживает только перевод сделанного на английский, но он сопротивляется, бормочет что-то сквозь сон, а что - не разобрать... туц
Добавил функцию загрузки изображения из файла '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', возникающую, если в названии метки используются заглавные не английские буквы.
|
|
|
|
DarkMaster |
9.3.2017, 3:38
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27681
Пользователь №: 11.279
|
Цитата Для чего нужен Lua? Шикарная работа со строками. Очень простой и грамотно прописанный синтаксис. Уход от проблем с экранами. Возможность хранить любые типы данных и не заморачиваться, что в них: строки, целые числа, числа с плавающей точкой, битовые маски или закодированный блок данных. Деревья, многомерные массивы, ООП(не фанат, но все же). На самом деле это скорее всего будет принципиально новый этап развития пилота. Я работал с луа и уверяю ничего проще и удобнее не видел. При этом он полностью полноценен. Главное чтобы прижилось. // Справедливости ради хочу сказать, что встроенный язык в пилоте очень прост и очень мне наравится. Он реально удобен. Но у него есть вековые проблемы, которые не решатся адекватными трудозатратами которые уже очень давно нужно решить. Сообщение отредактировал DarkMaster - 9.3.2017, 5:05
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
DarkMaster |
9.3.2017, 9:37
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27681
Пользователь №: 11.279
|
Цитата т.е. хотите заменить текущую поделку на луа? или только как дополнительный добавить? просто замечательно. на данный момент параллельно. Хотя мне в целом кажется было бы логичным продолжать именно на луа, а не тратить время на допиливание костылей. Цитата так луа кеширует скрипт. вот и х211 к скорости. так разве это плохо? сколько раз подобные идеи высказывались? кстати есть и компиляторы... Цитата chaiscript тоже не плох,но он для связки с с++ луа прекрасно сочетается с с/с++ и вроде даже спокойно жрет дллки. Цитата пилот прост? в нем,как говорится, прострелить ногу,не сложнее чем в сях. только масштаб разный,но сам факт... Ну в луа тоже ногу прострелить достаточно просто. Например попытка операции над несуществующим элементом массива в большинстве случаев сразу закричит про то, что значение "nil" не допустимо в какой-либо функции. Но это везде можно накосячить было бы желание. Цитата плагин есть плагин. он удобнее голой длл. В чем принципиальное отличие? На выходе получаешь точно такую же функцию, а подстраиваться под интерфейс не надо.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Cockney |
9.3.2017, 10:54
|
Master
Сообщений: 1.395
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 21047
Пользователь №: 16.156
|
Цитата так разве это плохо? сколько раз подобные идеи высказывались? кстати есть и компиляторы... Да не плохо это, просто сравниваются костыльный интерпретатор и байт код. Цитата луа прекрасно сочетается с с/с++ и вроде даже спокойно жрет дллки. Не, я про другое. chaiscript наследует упрощенный си-синтаксис, т.е. код компактный. А луа немного "жирноват" в этом плане. chaiscript
Код if (5 > 2) { print("Yup, 5 > 2"); } else if (2 > 5) { // never gonna happen } else { // really not going to happen }
var x = true;
while (x) { print("x was true") x = false; }
for (var i = 1; i < 10; ++i) { print(i); // prints 1 through 9 }
// function definition
def myFunc(x) { print(x); } Цитата Ну в луа тоже ногу прострелить достаточно просто. Например попытка операции над несуществующим элементом массива в большинстве случаев сразу закричит про то, что значение "nil" не допустимо в какой-либо функции. Но это везде можно накосячить было бы желание. Я не про то. Я про ошибки вида : Цитата Если в названии метки используются русские заглавные буквы, то метка не находится. Цитата minx и maxx не понимают массивы, если в имени есть заглавные буквы. Т.е. это обычные корректные конструкции, которые пилот не в силах разобрать. Но они если и не прострелят ноги, то как минимум одну сломают. И без nil'ов тут достаточно. Цитата В чем принципиальное отличие? На выходе получаешь точно такую же функцию, а подстраиваться под интерфейс не надо. Принципиально никакого, чисто удобство. Весь менеджмент плагина на себя берет хост. Разработчику не нужно знать какие параметры (и сколько на самом деле) нужно передавать в плагин. Его задача корректно организовывать обмен данными и как между хост-плагин, так и плагин-плагин. Как пример, нынешняя реализация в пилоте. Вызываем со скольки угодно параметрами, а в плагин идет только структура. Ну и опять же, на сколько я знаю, плагины можно удобно изолировать от хоста. В общем, люди наверное не дураки, раз вводят плагины в продукты.
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|