Пожертвовать на дальнейшее развитие:
Рубли: R849464451336
Гривны: U145931779718
Доллары: Z353114408274
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', возникающую, если в названии метки используются заглавные не английские буквы.
http://uopilot.uokit.com/old/dl239.php
http://uopilot.uokit.com/dllua.php
http://uopilot.uokit.com/dlAntiFrost.php
http://uopilot.uokit.com/dlAntiGate.php
пароль на архивы: uopilot.uokit.com
Ура! Дождались! Кнайт... только сейчас боюсь надо будет много хотфиксов по луа...
Таймштамп текущего момента как получить?
Чудо
Добавить возможность комментить блок кода путем выделения строк + нажатие на любой номер строки выделенного блока.
Эскизы прикрепленных изображений
move_smooth 100 100
move_smooth 101 100
end_script
Там в принципе много фиксов надо, так что особой разницы нет.
TimeStamp (DateNow TimeNow)
post сейчас временно отключена, можно конечно совсем убрать, просто надеялся быстро закончить.
Много надо и в меню добавлять и в подсветку. Както совсем забыл про это.
Впрочем как и про длл. Добавил ссылку.
log примет до 20 параметров. При слиянии разделяются пробелом.
Ого новую версию запилили, так-то еще старую до конца не изучил
Напишите что lua.dll должен быть рядом с exe пилота, а то я по привычке как плагин закинул в папку плагины, а оно не работает
Пример с поиском блокнота не самый удачный. Если блокнот не открыт, то будет ошибка.
Теперь результат каждой функции нужно проверять. Примерно так :
while terminated ~= true do
as3 = findwindow ("Блокнот")
if (#as3 ~= 0) then
log (as3[1][1], as3[1][2])
else
log ("Не найдено")
end
wait (1500)
end
os.clock() не ресетится после остановки скрипта. Я так понимаю там что-то не завершается до конца и продолжает работать.
exec wscript C:\Users\abc\Desktop\123.vbs
end_script
Запуск макроса из скрипта грузит ядро на 100%.
macro_play
end_script
log size(%tmp2)
set %tmp %tmp2
log size(%tmp)
end_script
Ну как бы изначально ее небыло, в процессе использования в математических операциях она создалась...
night version, 20.03.2017 Build 001
Исправил присвоение переменной 'workwindow' при запуске скрипта Lua.
Исправил ошибку, возникающую при выполнении скрипта Lua, после остановки его пилотом.
Добавил возможность комментировать блок кода путем выделения строк, проводя мышкой по номерам строк.
Когда кликаешь по полю с номерами строк, выделение с текста снимается.
А горячую клавишу можно ? Желательно настраиваемую.
Сам хочу. В ближайших планах.
Как вариант, может доп., клик пкм -> комментировать/раскомментировать
Ещё бы как-то сделать комментирование для lua.
а что с финдами то? как их использовать?
--lua
a = findcolor("0 0 1920 1080 (4638935) %arr")
hint (a)
arr = findcolor("0 0 1920 1080 (255) 2 -1 3")
#arr - количество цветов/картинок
под луа я бы вообще возвращал это чудо в 2 переменные. Точнее в переменную и массив:
local size, arr = find....
ну и в массив уже бы писал все точности совпадения, координаты и прочее. Т.к. исторически $a приводила к проблемам и приходилось в итоге все равно использовать size(%arr). Много проблем бы решили.
Не помню, там что-то про нестабильность было.
Нашел способ как прервать не прибивая. В следующей бете будет.
Горячую клавишу разблокировки мыши/клавы поставь включенной изначально.
сделать поле/столбец/формочку между номером строки и кодом. При нажатии на нее каретка будет переводится в начало строки. Я уже просто зае*ался случайно ставить/убирать комменты.
И заодно какую-нибудь галку, отвечающую за тип комментария (// или --).
--lua
//a = 1
Недопонял, зачем в луа скрипте коментарии в стиле пилота?
Для этого и предлагал сделать галку или ещё что-то. Чтобы нажимая на номер строки ставился комментарий в стиле луа, а не пилота.
Если уж совсем по простому. Галка стоит - ставится комментарий --, галка не стоит - ставится //.
Понял. Нормально.
log DateNow TimeNow // так работают
set #time AddHours (10:00:00 3)
log TimeStamp (#time) DateNow TimeNow // DateNow TimeNow не работают
end_script
Где бетки то ?
Заработался маленько. Целый день возле какого-нить сверлильного станка простоишь, к вечеру о бетках как-то не особо думается...
Пасиб, освежает
build 2
Добавил возможность комментировать блок кода в скриптах Lua.
Исправил принудительную остановку скрипта Lua. Теперь не требуется проверять переменную 'terminate'.
Исправил сохранение изображения в файл в функции 'SaveImage', при указании неправильного адреса. Добавил код ошибки '-7' - не нашли указанное изображение.
Исправил возврат массива в Lua, функциями 'findcolor' и 'findimage'.
Исправил округление до 2х знаков, возвращаемых из Lua, дробных чисел.
Добавил в настройки возможность включить коментирование в скрипте по клику мышкой на номере строки, и выделении нескольких строк по их номерам. По-умолчанию отключено.
Примерно так
--lua
a = findcolor("0 0 1920 1080 (255) %arr")
log (a)
log (arr[1][1],arr[1][2],arr[1][3])
build 3
Исправил возврат массива в Lua, функциями 'findcolor' и 'findimage'.
Кстати более-менее нормально работает только на луа 5.1...
set %arr [1 1]
set %arr [1 2] 11
set %arr [1 3] 22
set %arr [2 2] 33
//save_array %arr C:\arr.txt
set %tmp minx(%arr)
log size(%arr[]) size(%tmp[])
//save_array %tmp C:\tmp.txt
end_script
Что за костыль ?
a = findcolor("0 0 1920 1080 (255) %arr")
Исправить тип данных, которые возвращают функции пилота. Убрать признак пилотовских массивов %.
--lua
a = findcolor("100 100 100 100 (0-16777215) %arr")
log (type(a), type(arr[1][1]))
Прошу помощи!
написал простенький скриптик для посадки семечек диаметром 63х63 пиксиля, но при попытке запуска с привязкой окна ArcheAge лог выдает ошибку (Клиент мертв), в чем может быть проблема? ( может Game Guard блочит?)
Скриптик:
set #startX 231
set #startY 457
set #str 0
:metka1
if (#str = 50)
stop_script // Остановить скрипт
else
Send 1 //нажать клавишу '1'
kleft #startX #startY // Клик левой клавиши мыши по координатам в переменных
Wait 3000
set #startX #startX + 64
if (#startX >= 999)
send_down w 3000 // пройти немного вперед
send_up w
set #startX 231
set #str #str + 1
goto metka1
end_if
end_if
set #handle FindWindow ("ArcheAge") // ищем окно ArcheAge
set workwindow #handle // делаем найденное окно рабочим
showwindow #handle // выставляем рабочее окно на передний план
if #handle = 0
hint (24 clRed 400, 400 (Окно ArcheAge не найдено))
end_script
end_if
:aaa
send 1 // нажимаем 1
wait 1s // ждем 1 секунду
goto aaa // возвращаемся на цикл ааа
set #handle FindWindow ("ArcheAge") // ищем окно ArcheAge
set workwindow #handle // делаем найденное окно рабочим
showwindow #handle // выставляем рабочее окно на передний план
if #handle = 0
hint (24 clRed 400, 400 (Окно ArcheAge не найдено))
end_script
end_if
:aaa
send 1 // нажимаем 1
wait 1s // ждем 1 секунду
goto aaa // возвращаемся на цикл ааа
А миксинг луа кода с пилотовским будет ?
Если --lua обозначает начало луа скрипта, то --endlua соответственно....
Если планируется вообще отказаться от пилотного языка(в ближайшем будущем, а не в другом столетии), то тогда да, нет смысла. А вот если наоборот, то можно вставлять ускоренные штучки в готовый скрипт ,который переписывать лень.
Проблемы с натяжкой :
1)--lua
2)качать длл
3)если оставить пилотовский, то его продолжат использовать. Т.е. , потенциально остануться вопросы на форуме аля 'че не работает 2 + 2' и 'pilot -> lua'.
a = findimage("0 0 1920 1080 (C:\Users\abc\Desktop\1.bmp) %arr")
hint (a)
есть где хэлп как пользоваться луа почитать? А то скачал длл, положил рядом с пилотом. добавил скрипт
--lua
a = findcolor("0 0 1920 1080 (4638935) %arr")
hint (a)
Вопрос конечно идиотский, но всякое бывает. Надеюсь dll рядом с exe пилота, а не ярлыком пилота?
-- Пример 1
-- Равенство/неравенство: a == b, a ~= b
a = 1 -- присвоить переменной a число 1
b = 2 -- присвоить переменной b число 1
if a == b then
log ("a равно b")
else
log ("a не равно b")
end
-- Пример 2
for i = 1, 5 do
log (i)
end
-- Пример 3
move (100, 150) -- переместить курсор
-- Пример 4
a = 300
b = 100
kleft (a, b) -- сделать клик
-- Пример 5
send ("q") -- нажать клавишу q
-- Пример 6
str = "строки заключаются в кавычки" -- или одинарные кавычки 'текст'
log (str)
спасибо. а что луа лучше и быстрее чем пилот?
build 5
Подправил запуск скриптов при зажатии горячей клавиши.
Добавил переменные, возвращающие координаты самого бекпака для клиента UO версии 2.0.3 'backpackposx' и 'backpackposy'.
Возможно они даже работают, возможно даже для записи. Проверить негде.
А можно этот набор в студию?
Скажите, а сборщика мусора во встроенном Lua нет? Планируется ли или он не работает?
Первый запуск
--lua
function foo()
local a = 2
end
foo()
log(a) -- Возвращает ошибку: не найдена глобальная переменная
--lua
function foo()
local a = 2
end
a=10
foo()
log(a) -- Возвращает 10
--lua
function foo()
local a = 2
end
foo()
log(a) -- !!Возвращает 10
Могу лишь предположить, что скрипт завершился, не дав отработать сборщику, а луа машина остается жива, соответственно, содержит весь набор данных с пред. запуска. Но точнее, возможно, скажет кнайт.
Другой вариант - сборщик отключен, пока есть доступная память для машины. Вот когда забьются 2ГБ +-, тогда он и включится. Т.е. никогда в большинстве случаев.
--lua
log ()
Fixed.
Бетку попозже выложу.
Что на счёт команд clipboard, windpos, т. е. тех что начинались с set/get?
А также: load/save_array, hint (с параметрами)?
Ещё GetImage и LoadImage надо подправить чтобы возвращали результат не строкой, а массивом или отдельными параметрами. Что вроде:
arr = getimage(100, 100, 200, 200)
arr[1] - адрес arr[2] - ширина arr[3] - высота
или
address, width, height, size = getimage(100, 100, 200, 200)
На счёт синтаксиса findimage и findcolor в луа. Скобки, в которых указываются путь или цвет, по идее можно убрать. В findcolor передавать массив с цветами, т. к. если указывать больше 1 цвета, то придётся заключать их в кавычки, т. е. переменными цвета не задать.
findimage(startx, starty, endx, endy, filename, resultarray)
findcolor(startx, starty, endx, endy, color, resultarray) -- 1 цвет без шага
findcolor(startx, starty, endx, endy, shiftx, shifty, color, resultarray) -- 1 цвет с шагом
arr_color = {color1, color2, color3, "color4-color5", "R(11)+G(73-80)+B(1)"} -- массив с цветами
resultarray = {}
findcolor(startx, starty, endx, endy, arr_color, resultarray) -- без шага
findcolor(startx, starty, endx, endy, shiftx, shifty, arr_color, resultarray) -- с шагом
Сейчас синтаксис в луа максимально приближен к пилотовскому, чтобы проще было парсить, потому как делалось всё оптом, а не каждая функция в отдельности.
Много чего нужно допиливать, сейчас как бы тестовый вариант, чтоб узнать работает оно вообще или нет. Почти все предложения записываются в todo и ковыряются по мере возможности.
У findimage и findcolor в луа можно указывать до 20 параметров, поэтому скобки можно указать отдельно, а то что должно быть внутри них - переменными.
log clear
log current_script active_script // всё нормально
log active_script current_script // а так в логе только одно значение
end_script
--lua
a = active_script () -- со скобками
b = current_script -- без скобок
log (a)
log (b)
build 6
Исправил сохранение скриптов при комментировании строк нажатием ЛКМ по их номерам.
Добавил в конфигурационный файл возможность указать имя загружаемой библиотеки Lua.
Сделал перезапуск виртуальной машины Lua при перезапуске скрипта.
Добавил в скрипты Lua команду "end_script ()".
Да, так вроде изначально было.
build 7
При вызове из Lua, команды 'getimage' и 'loadimage' возвращают только "Адрес в памяти" или код ошибки.
В 2.39 (не бета).
set %get [1] LoadImage (test.bmp) // картинка 10*10
set %image [1] LoadImage (image.bmp) // ищем 5*5
set #a Findimage(0 0 1 9 (%image [1 1]) %arr %get [1 1] 100)
log #a // т. е. картинка шириной в 5 пикселей найдена в области 0-1 по X.
set #a Findimage(0 0 10 8 (%image [1 1]) %arr %get [1 1] 100)
log #a // не найдена
end_script
Там еще костыль, который блокирует нахождение картинки до начала области поиска заодно поправить бы.
http://uopilot.uokit.com/dlnight.php
return вызванный из for приводит к ошибке при попытке входа в цикл for. Кусок кода не привожу, т.к. не локализовывал, а вложенность вызовов и подпрограмм очень большая. Между выходом по return и ошибкой ~ 2500 строк лога.
build 10
Исправил ошибку, возникающую при прерывании циклов 'for' и 'repeat' по команде 'return'.
А скрипт на чем? На любых командах или есть зависимость? И появилось с какого билда?
c 10 билда, на луа. Проявилось при dir(c:\\). Остановил ибо на долго, но дир тут вряд ли причина, т.к. падает и на других луа скриптах без дира.
10 beta.
--lua
for i = 1, 10 do
move (100, 100)
wait (500)
end
Скрин 1: ищем число 38782 в виде картинки, получаем координаты 30 1000. Всё нормально.
Скрин 2: ищем число 38782 в виде картинки, но меняем endY с 1080 на 1079, получаем координаты 30 999.
Почему-то не работают переменные Ultima в Lua - глобальная переменная не найдена. Пишу со скобками в конце.
log(type(workwindow))
log(type(windowhandle()))
Починить wait.
set timer
for #i 1 100
wait 2
end_for
log timer
end_script
wait починил.
build 12
Починил 'get windowpos' в Lua. Теперь работает как функция 'x, y, width, height, errorcode = windowpos ()'.
Подправил обновление переменной 'workwindow' при нажатии Ctrl+A.
Исправил 'readmem' и 'writemem' в Lua. 'readmem' возвращает строку.
Переделал обработку параметров в команде 'dir' при вызове из Lua. Теперь должна понимать пути с пробелами.
Переделал команду 'wait', 'send', переменную 'timer' и задержку в кликах мышкой на более точный таймер.
Исправил в 'findimage' возврат процента совпадения найденной картинки в пятом элементе возвращаемого массива.
Исправил в 'findimage' поиск запомненной картинки в загруженной области.
set %get [1] LoadImage (test2.bmp) // картинка 10*10, искомый объект в координатах 1 1
set %image [1] LoadImage (image.bmp)
set #a Findimage(1 1 10 10 (%image [1 1]) %arr %get [1 1] 100) // начальные координаты 1 1
log #a // не найдено
end_script
Проверь ночнушку не стабильную.
set %get [1] LoadImage (test2.bmp) // картинка 10*10, искомый объект в координатах 1 1
set %image [1] LoadImage (image.bmp) // картинка 5*5
set #a Findimage(1 1 5 5 (%image [1 1]) %arr %get [1 1] 100) // начальные координаты 1 1, конечные 5 5
log #a // не найдено
end_script
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)