Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ Новая Версия Uopilot v.2.41 (31.12.2018)

Автор: WKnight 31.12.2018, 22:27

Пожертвовать на дальнейшее развитие:
https://money.yandex.ru/to/410011422550405
https://money.yandex.ru/to/410011422550405

{v.2.41}Список изменений
  • Добавил длл "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.

http://uopilot.uokit.com/index_rus.php

http://uopilot.uokit.com/old/dl241.php

http://uopilot.uokit.com/dllua.php

http://uopilot.uokit.com/dlAntiFrost.php
http://uopilot.uokit.com/dlAntiGate.php
пароль на архивы: uopilot.uokit.com


https://forum.uokit.com/index.php?act=Attach&type=post&id=3002 Jit compiled by https://forum.uokit.com/index.php?showuser=18664. Пароль: uopilot.uokit.com
https://forum.uokit.com/index.php?act=Attach&type=post&id=2999 Compiled by https://forum.uokit.com/index.php?showuser=18664

https://forum.uokit.com/index.php?showtopic=23643
https://forum.uokit.com/index.php?showtopic=19856

Ниже оставляйте предложения и замечания о неисправностях.


Прикрепленные файлы
Прикрепленный файл  LuaJIT_static_with_jit_folder.7z ( 411,59 килобайт ) Кол-во скачиваний: 5278
Прикрепленный файл  UoPilot_2.41___jit__gcc_.zip ( 2,12 мегабайт ) Кол-во скачиваний: 5736

Автор: DarkMaster 31.12.2018, 23:54

Т.е. не только я тут в это время?)
Народ в пятницу не выкладывает обновы, а мы экстрималы в новогоднюю ночь ваяем =)
Спасибо!

Автор: sutra 1.1.2019, 5:34

Цитата
а мы экстрималы

ohmy.gif

Автор: DarkMaster 1.1.2019, 7:18

Ченжлог поидее за весь мужрелизный промежуток нужно выкладывать иначе потом одуреешь понимать, что к чему.

Автор: dron4938 6.1.2019, 17:51

Слежение не работает sad.gif

Автор: cirus 6.1.2019, 18:22

Цитата
Слежение не работает

Работает если скрипт на языке пилота.

Автор: dron4938 6.1.2019, 18:35

ааа)

Автор: sutra 10.1.2019, 16:43

Не могу нормальным способом "победить" вот такую штуку!

Код
--lua
local ok=findwindow("Блокнот")
showwindow(ok[1][1],SHOW)
wait(5000)                -- в эту паузу перекрываем окно Блокнота
showwindow(ok[1][1],SHOW) -- НЕ ПОКАЗЫВАЕТ! (только на панели задач меняет цвет)

Автор: cirus 10.1.2019, 16:51

Код
--lua
local ok=findwindow("Блокнот")
if ok then
    showwindow(ok[1][1], "top")
    wait(5000)                -- в эту паузу перекрываем окно Блокнота
    showwindow(ok[1][1])   -- top по умолчанию, можно не указывать
end

Автор: sutra 10.1.2019, 17:01

Не работает. Правда это всё на 2-ом мониторе.

Да и на 1-ом не работает.

Первый раз всё нормально, потом не показывает. То есть если во время работы скрипта, а он пашет часами, я забыл и перекрыл окно браузера, то возникают проблемы.

И не понял параметр TOP. По идее (насколько я понимаю) должно быть поверх всех окон, но оно перекрывается.

Эта хрень у меня давно, ещё когда на пилотовском всё было. Вот решил допилить эту штуку, пока нормальным способом сделать не получается.

Автор: sutra 10.1.2019, 17:13

Код
--lua
local ok=findwindow("Блокнот")
local x,y,w,h,err=windowpos(ok[1][1])
showwindow(ok[1][1],"MINIMIZE")
wait(5000)                -- в эту паузу перекрываем окно Блокнота
showwindow(ok[1][1],"RESTORE")

В общем пока вот только так.

Автор: sutra 10.1.2019, 17:27

И вопрос ещё такой, почему SHOW без кавычек, а "MINIMIZE" с кавычками, как-то бы уж одним способом.

Сорри, скорее всего проходит по умолчанию TOP. Тогда другой вопрос, почему "SHOW" не работает?

Автор: DarkMaster 10.1.2019, 18:12

Цитата
И вопрос ещё такой, почему SHOW без кавычек,

Только с кавычками и никак иначе. При отправке без кавычек отправляется значение переменной, которое иногда может быть передано, как текст(т.е. натруально SHOW), а иногда может отправить nil. Не разбирался когда, что и как. В целом считаю это недокументированным поведением и не использую. Тем не менее даже если подобное поведение четко регламентировано, я считаю подобным образом передавать параметры не стоит, т.к. при создании переменной/функции с именем SHOW у нас поедет текстовая конастанта, что ну уж совсем странно.

Автор: sutra 11.1.2019, 2:56

Нет, так у меня и не получилось восстанавливать окно. Свёртывание и разворачивание тоже не помогает. Разворачивает на заднем плане. В общем при первом вызове функции showwindow всё работает как надо, при втором вызове НЕ РАБОТАЕТ вывод на передний план. Почему, непонятно.

Автор: FREEON 11.1.2019, 23:33

Цитата(sutra @ 11.1.2019, 2:56) *

Нет, так у меня и не получилось восстанавливать окно. Свёртывание и разворачивание тоже не помогает. Разворачивает на заднем плане. В общем при первом вызове функции showwindow всё работает как надо, при втором вызове НЕ РАБОТАЕТ вывод на передний план. Почему, непонятно.

может Handle окна меняет свой id?

Автор: sutra 12.1.2019, 1:14

Цитата
может Handle окна меняет свой id

Нет конечно, я всегда проверяю такие вещи. Можете попробовать сами. Заведите окно, скройте его, ну для примера, тем же блокнотом. Затем включите скрипт ... восстановите окно, сделайте паузу ... перекройте во время паузы опять блокнотом и попробуйте восстановить окно опять. Пробовал на разных окнах, по всякому, мерцание окна на панели задач и всё. Если заново перезапустить скрипт, то восстановит окно. Вывод - есть разница между первым вызовом функции восстановления окна и вторым - это уже проверено. Значит всё-таки есть какие-то отличия. Какие? Я не знаю. У меня нет исходного кода. Вопросы к Кнайту. Я обходным путём победил этот глюк, поэтому опять возвращаюсь к этой теме исключительно, чтобы помочь выяснить причину такого поведения.


Если у кого не так ... опровергните меня, может я чего не так делаю или чего не понимаю. Но мой принцип таков - чем проще, тем лучше и никаких непоняток быть не должно, а я не понимаю как это работает.

Автор: sutra 12.1.2019, 1:42

В дополнение могу сказать одно. Глюк "древний" обнаружен ещё когда всё было на Пилотовском языке. Просто я старался не перекрывать окно браузера (где мне нужна была доступной пиктограмма перезагрузки браузера). Когда не следил за игрой всегда оставлял окно браузера открытым. Тем не менее, у меня скрипт зациклен на бесконечность. Спустя какое-то время окно браузера всё-таки восстанавливалось и игра перезапускалась, по времени? ... ну может в течении 30-50 минут, меня устраивало это, а тут решил всё-таки решить эту проблему.

Если у кого получается также - поддержите меня, чтобы я не выглядел пустобрёхом или опровергните.

Если рассуждать логически, то причина в разном (шибко умном, а по факту глупым) поведении Виндов. Раз замерцало на панели задач, значит действие произошло, но не возымело должного эффекта. Победить эту умность наверняка можно.

Автор: sutra 12.1.2019, 2:06

Кнайт, если будут сложности с этой проблемой, не стоит на ней зацикливаться, лучше делай компиляцию. Кроме меня никто не напрягался, а я проблему решил. Просто я уже "опух" напрочь ... игра играет, а я в это время и в инете ползаю и кино смотрю и ещё бог знает чем только не занимаюсь.

Автор: WKnight 13.1.2019, 10:24

SHOW почемуто работает некорректно, хотя и ошибки никакой не выдает.
Вместо него можно использовать например что-то типа
windowpos(-1, -1, -1, 1, ok[1][1])

Автор: sutra 13.1.2019, 20:17

Цитата
windowpos(-1, -1, -1, 1, ok[1][1])

Так не работает.
Код
windowpos(-1, -1, -1, -1, ok[1][1])

Так выводит в левый угол 1-го монитора. В общем вопрос остаётся открытым. И что для меня остаётся непонятным, почему при первом вызове всё работает как надо? Проблема возникает только при повторе действия.

Автор: sutra 13.1.2019, 20:31

Бог с ним, с этим глюком. Обойти его можно, а это главное.

Код
x,y=windowpos(ok[#ok][1])  -- ok[#ok][1] - хендл первичного окна, которое должно быть видимым
while true do
  local h=tonumber(windowfrompoint(x,y,"child"))
  if h~=ok[#ok][1]then
      showwindow(h,"MINIMIZE")
    else
      break
  end
end
left(x,y,"abs")

Автор: sutra 13.1.2019, 20:50

И даже так есть проблемы. Только вот так kleft(x,y,"abs") или коодинаты надо смотреть иначе.

Автор: DarkMaster 15.1.2019, 16:16

после остановки скрипта не закрываются открытые сокеты. Лечится только перезапуском пилота.
Остановке всмысле кнопкой/ошибкой. Т.е. когда close() вызвать не представляется возможным.

Автор: DarkMaster 15.1.2019, 22:59

prompt с луа не дружит

Автор: sutra 18.1.2019, 17:13

Код
--lua
b=true
log(b)
С этим тоже не дружит.

Автор: DarkMaster 19.1.2019, 0:29

Потому что b есть boolean.

Код
--lua
b=true
log(tostring(b))

На самом деле это определенная проблема, т.к. конструкции с выводом нескольких переменных/описанием того, что выводится, часто натыкаются на nil, а он не печатается либо вообще критует при попытке слепить строки. Приходится извращаться с конструкциями типа:
log(var or "nil")
или:
log(bool_var and "true" or "false")
Ну и стандартный print делает tostring, имхо и мы должны.
Так же хочу отдельно заметить про io.write. На данный момент лог не является стандартным потоком вывода, что несколько напрягает, т.к. write шустрее, может в отличии от print компилироваться ну и вообще не очень феншуево. Имхо стандартное поведение луа должно быть максимально реализовано для понижения сложности вхождения.

Автор: DarkMaster 21.1.2019, 4:41

Непонятные проблемы с findimage. Метод поиска 2, забор изображения происходит успешно. Единичной строкой находит успешно. В цикле на одном из окон просто перестает находить хоть убей. При этом если остановить скрипт и выполнить одну строку с финдом - найдет (привязку не меняю). В финде только константы, никаких переменных, которые могли бы измениться в цикле. Более того, если в цикле подсунуть вобласть поиска окно пилота с захваченным изображением, то пилот его найдет в своем окна(F кнопка), но не найдет в приложении. Включание abs к результату не приводит. Что за бредятина? =\

Автор: cirus 26.1.2019, 12:33

Код
--lua
log (type(windowhandle()))   -- string
log (type(loghandle()))      -- string

Автор: EL-GReeN 27.1.2019, 14:29

"Возвращать курсор мыши после кликов" не работает

Автор: cirus 28.1.2019, 0:52

Не отрывается справка по нажатию F1 если курсор стоит над функциями луа. os.clock(), string.gsub и остальные.

Автор: sanerrr 4.2.2019, 13:54

uopilot с антифростом, не работают клавиши клавиатуры, хоть в скрипте, хоть в общих, иногда проскальзывает и все, игра аион руофф

Автор: sutra 15.2.2019, 17:45

loadimage([[target.bmp]]) сиё название не прокатывает, обзываю target_.bmp - всё нормально.

Автор: DarkMaster 16.2.2019, 0:43

скорее всего идут какие-то накладки с зарезервированными переменными пилотовскими, которые используются в ультиме.

Автор: sutra 16.2.2019, 1:08

Цитата
скорее всего идут какие-то накладки с зарезервированными переменными пилотовскими
В этом я не сомневаюсь, поэтому и показал этот недочёт. Всё ж таки строку даю, а не переменную. Готовлю вам пример поиска, из-за этой хрени ещё прибавил седых волос, как всегда начал грешить на себя, ан нет, в этот раз я был не виноват.

Автор: CKA3KA 26.2.2019, 3:33

Не могу скачать последнюю версию v.2.41,
хром блокирует скачку
выводит сообщение:
Изображение
Надо было в архив что ли упаковывать.
unsure.gif

Автор: sutra 26.2.2019, 3:36

Наверное надо. Хотя я упаковал в архив антивирус.

Автор: CKA3KA 26.2.2019, 3:42

Хотелось бы узнать, в этой версии убрали из тела всплывающие сообщения адски раздражающие:
Изображение

Автор: sutra 26.2.2019, 3:57

Вроде такого уже нет. Во всяком случае у меня уже работает без этого сообщения. Есть другие глюки (у меня не всегда отрабатывает windowpos), но повторным перезапуском лечатся, а поскольку я не знаю на 100% почему это происходит, поэтому на эту тему промолчу.

Я не привязываю окно, всё работает на автомате (через поиск окон), так что мои комменты справедливы для таких случаев.

В любом случае, этот релиз надо установить. Достаточно много обновлений и исправлений.

Автор: DarkMaster 26.2.2019, 11:35

Цитата
Хотелось бы узнать, в этой версии убрали из тела всплывающие сообщения адски раздражающие:

Точно 2.41?

Автор: CKA3KA 26.2.2019, 16:28

Цитата(DarkMaster @ 26.2.2019, 11:35) *

Точно 2.41?

У меня сейчас версия 2.40d b16
это уже с настройкой цветов синтаксиса,
но эти сообщения гадские выскакивают постоянно.
Пока не меняю версию на последнюю, а спрашиваю - вырезали ли из тела в версии 2.41 эти гадские сообщения или нет?

Автор: DarkMaster 26.2.2019, 17:04

Цитата
Пока не меняю версию на последнюю, а спрашиваю - вырезали ли из тела в версии 2.41 эти гадские сообщения или нет?

Думаете почему я переспрашивал?) Подсветку не потеряете - она в ini файле хранится. Не удаляйте его, лучше отбекапить на всякий случай. Обновляйтесь.

Автор: xolost 26.2.2019, 20:07

Да уж! заценил 241...
словил такое
https://s.mail.ru/FBws/22FJ1esnY
раньше такого в жизни не ловил в пилоте.

Описать сложнова-то.
Короче стал зависать скрипт на kleft #x, #y abs
т.е. есть большой скрипт, где бот идет всё ок делает и когда доходит до этой строки - залипал.
после 3 попытки перезапуска скрипта, решил закрыть пилота.... и вот такая ошибка вылазит.

Закрыть не удается. Через диспетчера задач закрыл.
Запустил снова пилот - скрипт при этом не поломался, снова всё шуршит.



Как к этому пришел сложно сказать.
Сидел по тим виеверу на виртуалке где юзал пилота.
В скрипте используется оператор get clipboard
Затем записывает буфер в файл и работает с ним.
Иногда может быть сбой в кодировке при работе с этим оператором.
Например вместо русских букв из буфера будут вопросики.
Думаю что это связано с переключением языков. Т.е. на оснвоном столе один язык, на виртуалке по тиму куда зашел - другой язык. Изначально ок, но если пкереключить на виртуалке мышкой язык, то вот начинаются вопросики... и возможно с этим связано как-то падение kleft #x, y# abs хотя и очень странно)
Вообщем, пока не могу больше инфы дать.


Upd -- 1
Во, опять упало, и опять после кодировки сломанной.
https://s.mail.ru/AbKg/71GSGtkTg

т.е. после этой билиберды на ближайшем клике (в этот раз на дургом kleft ) так же зависает.
Пока не понимаю вообще связи))))
И закрыть так же не удается пилот.

Хотя понять что раз зависает внутренний поток самого пилота, то это не дает закрыться пилоту. Короче то ли в кодировку рыть, то ли в kleft. То ли в буфер обмена)
Попробую перезагрузить комп.

Upd -- 2
Теперь вообще всегда в буфер русские буквы идут вопросиками и стабильно зависает на ближайшем клике куда-либо.
Теперь даже не знаю как починить что бы русские буквы русскими копировались пилоту в буфер. Уже перезагрузки, перезаходы, перезапуски, смену языка на основном кмопе, на виртуалке перетыкал....


Upd -- 3
Починилась кодировка, буферит русские буквы. Зависает по-прежнему........

Upd -- 4
Выяснил от части.
Если в лог пилота вывести какой-то символ или набор символов, то вот он падает. Какой именно пока не знаю. Функция лога видимо падает и не завершается, цикл становится бесконечным, а на ближайшем kleft по-всей видимости пытается создаться какой-нить поток, которые подвис в функции лога. Не знаю как устроен пилот и возможно бред полный написал, но вот дело явно в логгере пилота.
С кодировкой не связано, так что другой символ какой-то логу не нравится. Может двоеточие, надо тестить, но я убегаю.

Автор: DarkMaster 26.2.2019, 21:28

А код то можно увидеть для воспроизведения? Писал на lua?

Автор: xolost 26.2.2019, 23:28

Цитата(DarkMaster @ 26.2.2019, 21:28) *

А код то можно увидеть для воспроизведения? Писал на lua?

На пилоте.

Способ воспроизведения:
code

Код

set logging (Последователь  [10]Инф. о Азе-БАКУ, Fast Killer [10]Инф. о Fast Killer, Pray UK [10]Инф. о Pray UK, WoFХаттаб [10]Инф. о Хаттаб, Последователь Повелителя ОгняPPilДмитрыч [10]Инф. о Дмитрыч, Последователь МироздателяHarbourПроцессор [10]Инф. о Процессор, Последователь Повелителя ВодыIncognitobunyod [10]Инф. о bunyod, Последователь МироздателяUknownHeroesВраг у ворот [10]Инф. о Враг у ворот, Последователь ПадальщикаAmberВеселый Димасик [10]Инф.)

kleft 200, 500 abs

msg test

до msg не доходит, зависая на клике.

Сорри за такую ширину, что именно в этой строке логгеру не нравится - хз, по быстрому не смог выяснить. Но воспроизводится стабильно на такой длине.

Автор: DarkMaster 27.2.2019, 0:30

Скорее всего скобки ему квадратные не нравятся и пытается воспроизвести как массив. Одна из основных причин перехода на lua - парсинг.

Автор: rinat84 27.2.2019, 0:43

Цитата(xolost @ 27.2.2019, 1:28) *

На пилоте.

Способ воспроизведения:
Сорри за такую ширину, что именно в этой строке логгеру не нравится - хз, по быстрому не смог выяснить. Но воспроизводится стабильно на такой длине.

это обращение к недоступному участку памяти )
Прикрепленное изображение

Автор: DarkMaster 27.2.2019, 0:59

Цитата
это обращение к недоступному участку памяти )

Ну это логично. Пилот видит скобки [10] и пытается взять, как элемент массива.

Автор: xolost 27.2.2019, 1:10

Цитата(DarkMaster @ 27.2.2019, 0:59) *

Ну это логично. Пилот видит скобки [10] и пытается взять, как элемент массива.

Конечно, у меня тоже была одна из версий такая.
Только почему-то не падает вот при таком коде:

Код

set logging df [10] dfd [rf]
kleft 200, 500 abs
msg test


Автор: DarkMaster 27.2.2019, 10:22

Цитата
Только почему-то не падает вот при таком коде:

Возможно точка распознается, как ссылка на другой скрипт.

Автор: AbsorbeR 28.2.2019, 14:46

У меня последняя версия просто не загрузилась. Браузеры не дали по причине "Вирус".

Баги (как я устал от них):

Особенно лютый треш, когда ты запускаешь старый скрипт на 1000 строк, а тебе где-нибудь выскакивает ошибка, или скрипт не подает признаков жизни.

Автор: DarkMaster 28.2.2019, 16:36

Цитата
say и send не понимают комментарии. Cтрока вида

Крайне рекомендую переход на lua. Там подобных синтаксических проблем больше нет. Это одна из ключевых причин смены скриптового языка. Т.е. это по большому счету пофикшено.

В lua есть проблемы с ультимовскими last'ами, как минимум таргетом - работает только на чтение, пришлось делать обертку на writemem.

Автор: AbsorbeR 28.2.2019, 17:19

Цитата(DarkMaster @ 28.2.2019, 16:36) *

Крайне рекомендую переход на lua.

Это не поможет старым скриптам. И такого не должно быть, пользователь не должен узнавать это где-то на форуме. Я вообще думаю, что у UOPilot'а был бы лучше прогресс, будь он Open Source с кодом, на том же Github.

Автор: DarkMaster 28.2.2019, 17:27

Цитата
Да вот только такого не должно быть, пользователь не должен узнавать это где-то на форуме.

Узнавать о чем? О внедрении нового скриптового языка? Это есть в истории изменений. Речь о языке используемом по умолчанию? Возможно, да, пришло время выставить lua языком по-умолчанию. Тем не менее я бы рекомендовал в обязательном порядке добавил требование включения не только, lua движка в первой строке скрипта, но и пилотовского. Цель этого требования - упрощенное оповещение для владельцев старых скриптов, чтобы избежать ситуцации, когда человек обновился и его старый скрипт пытается выполнится на lua движке. Т.е. смысл дать информативный error:
"Не указан тип скрипта. Если вы используете старые скрипты, допишите первой строкой //pilot"
Ну или что-то в этом роде.
Изменение по большому счету на данный момент стало возможным появлением обновленной справки от Cirus'а. Это дало возможность полноценно писать скрипты неподготовленным людям. Ну и в принципе количество вылизанных моментов очень велико, теперь не ждешь проблем из неожиданных мест - кнайт тут проделал огромную работу.

Автор: Levo222 28.2.2019, 20:02

Цитата(AbsorbeR @ 28.2.2019, 18:46) *

У меня последняя версия просто не загрузилась. Браузеры не дали по причине "Вирус".

Вот и я о том же...

Автор: DarkMaster 28.2.2019, 20:10

Ждать кнайта пока запакует в архивы.

Автор: CKA3KA 2.3.2019, 10:28

Премного благодарен, что в новой версии 2.41 убрали эти гадские выскакивающие сообщения.
smile.gif
А броузер по прежнему ругается и не дает скачать ехешник, скачал IDMом.
И ругаются браузер и антивирь именно на упаковщик UPX 0.89.6.
Распаковал ехешник - и после ни один антивирь из 65+ шт. на вирустотал не пикнул, все зеленые,
а то было с десяток красных.

Автор: DarkMaster 14.3.2019, 10:18

Хз насколько реален фикс, тем не менее при define (подозреваю, что и не только define) происходит объявление не в пределах луа машины судя по всему. По крайней мере после остановки и повторного запуска скрипта происходит ошибка из-за попытки повторного define. Воспроизвести можно попыткой запуска winapi_demo.lua: старт, стоп, старт. Сам winapi_demo содержит ошибку, но в данном случае это не существенно.

Автор: sutra 20.3.2019, 15:44

Возник такой вопрос. Выполняю getimage(addr, ... осуществляю поиск ... удаляю образ deleteimage(addr) ... по новой осуществляю поиск по тому же адресу ... ищется и по удалённому образу - это нормально? не ошибка? Я правильно понял, что реально в памяти ничего не удаляется просто высвобождается пул?

Автор: FREEON 16.7.2019, 20:53

Не знаю точно что за ошибка но возникает она при передаче очень длинных строк в буфер и обработка ее.
Так же из-за большой длины результат в файл не сохраняет( вернее сохраняет но файл пустой), хотя в log выдает все как нужно и всю длину.
А затем при закрытии пилота выдает такое окно(ошибку):
Access violation at address 00517B62 in module uopilot241.exe'. Read of address 00000074.
И дальше по-кругу помогает только убийство процесса через диспетчер задач.


Прикрепленные файлы
Прикрепленный файл  123.txt ( 351 байт ) Кол-во скачиваний: 1571

Автор: DarkMaster 17.7.2019, 10:32

Можно пример буфера и кода?

Автор: FREEON 17.7.2019, 11:07

Цитата(DarkMaster @ 17.7.2019, 10:32) *

Можно пример буфера и кода?

Немного покопавшись нарыл болячек.
К примеру выполняем этот код. Где делаем замену в строках текстового файла 123.txt. И уже после обработки 351 символа при закрытии пилота он зависает. Возможно критическое значение символов еще меньше чем 351 символ но я не искал это число. Но а про большее количество символов там уже даже записать результат замены в текстовик не может.
Код

log clear
log mode compact
load_array %arr C:\123.txt

//set %arr [1 ] texttexttexttexttexttexttexttext @ ^ ?
set $a %arr [1 1]

init_arr %sub "@" "^" "?"
init_arr %b (1) 1 2 3 4 5 6 7 8 9 //подстановка вместо % числа из этой строки
init_arr %b (2) a b c d e f g h i //подстановка вместо ^ текста из этой строки
init_arr %b (3) а б в г д е ё ж з //подстановка вместо ? текста из этой строки

for #i 1 size(%b)
    for #j 1 size(%b[])
        set $b %sub[#i] // что ищем
        set $c %b[#i #j]  // чем заменяем
        set $a string_replace ($a $b $c)   // замена
    end_for
end_for

log $a
set logging save C:\123.txt
end_script

Прикрепленный файл  123.txt ( 351 байт ) Кол-во скачиваний: 514

Автор: cirus 17.7.2019, 11:27

Уберите вывод в лог, тогда не будет зависать. Сохранить результат можно через write или save_array.

Автор: FREEON 17.7.2019, 11:53

Цитата(cirus @ 17.7.2019, 11:27) *

Уберите вывод в лог, тогда не будет зависать. Сохранить результат можно через write или save_array.

через save_array $a C:\789.txt сохраняет пустоту
через дописывание вроде как работает write (C:\789.txt $a \r\n)
а из-за чего ошибка возникает?

Автор: DarkMaster 17.7.2019, 12:09

Цитата
через save_array $a C:\789.txt сохраняет пустоту

ну дык save_ARRAY должен сохранять массив, а $a строковая переменная.

В общем и целом хочу порекомендовать переходить на луа. Проблемы с экранированием строк одна из основных причин побудивших меня предложить встроить луа.

Автор: FREEON 17.7.2019, 12:33

Цитата(DarkMaster @ 17.7.2019, 12:09) *

ну дык

индЫк. что на русском означает индюк.
Цитата

В общем и целом хочу порекомендовать переходить на луа. Проблемы с экранированием строк одна из основных причин побудивших меня предложить встроить луа.

Плюс пилотовского языка в том что он слишком простой и шаблонный для изучения с нуля. А луа очень гибкий из-за чего малейшая правка приводит к неизвестным последствиям...От сего он немного пугает. Может быть посоветовали учебники уроки по изучению луа для уровня обезьяна))

Автор: Cockney 17.7.2019, 13:14

Цитата
малейшая правка приводит к неизвестным последствиям...



Вот что-что, а это применимо больше к пилотовскому языку чем к луа.


https://habr.com/ru/post/184538/

Автор: FREEON 17.7.2019, 18:45

Цитата(Cockney @ 17.7.2019, 13:14) *

Вот что-что, а это применимо больше к пилотовскому языку чем к луа.
https://habr.com/ru/post/184538/

не соглашусь на пилотовском тут всего лишь два состояния либо работает либо не работает))

Автор: DarkMaster 17.7.2019, 21:00

Цитата
не соглашусь на пилотовском тут всего лишь два состояния либо работает либо не работает))

луа срежет 90% ошибок во время компиляции, а вот у пилота очень много подводных камней, когда очень тяжело понять, что не так и почему (мне тоже). Пилот это кладезь недокуменнтированных возможностей равно, как и не багов не то фич языка. Кстати шаблонности в луа гораздо больше. Лично на мой взгляд людей далеких от всего этого пугают скобки, их виды и их количество и точки туда же (arr.elem). В пилоте с этим все очень просто.

Автор: DarkMaster 22.8.2019, 14:03

current_script() возвращает стринг

Автор: WKnight 20.10.2019, 22:42

night version, 20.10.2019 Build 002

build 1

Добавил функцию приостановки\возобновления указанного процесса 'SuspendProcess ()', 'ResumeProcess ()'. В случае успеха возвращает "0", иначе код ошибки. Обычно число приостановок должно равняться числу возобновлений.

Исправил ошибку с недопониманием шестнадцатиричных чисел вида "15h".

Исправил ошибку в команде 'wait', при указании времени в виде '1h'.

Исправил ошибку в команде 'readmem' при чтении dWord, float и real из Lua.

Изменен адрес Wiki.

Добавил ссылки на старые версии на отдельной странице на сайте.

Запаковал всё в архивы с паролем.

Убрал упаковку Upx-ом.


build 2

Исправил ошибку в команде 'filerename', возникающую при отсутствии пути у нового имени файла.

Добавил в Lua функцию 'timer()'. Действует также как и остальные таймеры.

Добавил в Lua функции 'hour()', 'min()', 'sec()'.

Исправил функции 'current_script()', 'windowhandle()', 'loghandle()', 'dayofweek()', 'year()', 'month()', 'day()' в Lua, теперь возвращают число.

Автор: WKnight 26.10.2019, 15:34

build 3

Подправил кнопочку "Перекачать все с Wiki", в связи с пеерездом.

Исправил вывод в лог длинных строк, после которого пилот не закрывался добровольно.

Научил функцию 'dayofweek' понимать дату в формате "29.11.2016".

Автор: Cockney 27.10.2019, 19:59

Список статей в справке обновляется только после перекачки, хотя при первом открытии справки все статьи скачаются в Help.
---
После нажатия на "Перекачать все с Wiki" кнопка остается утопленной, закончился ли процесс - не возможно узнать. Если нажать еще раз - при закрытии пилота вылезет эксепшн.

Автор: WKnight 27.10.2019, 23:49

При первом открытии статьи не скачиваются, а распаковываются из ресурсов пилота. Про обновление списка как то не думал, никогда не попадалась такая ситуация.
---
По завершении сама отожмется. Прогрес флудится в лог. Ченить придумаем.

Автор: WKnight 2.11.2019, 12:25

build 4

Исправил обновление списка статей в справке при его первом открытии.

Добавил маленький незаметный прогрессбар под кнопкой "Перекачать все с Wiki". В лог выводится общее количество найденных статей, и текущий скачиваемый номер.

Исправил присвоение круглых скобок элементам массива в команде 'init_arr'.

Автор: Cockney 2.11.2019, 20:00

Если начать перекачку вики после старта прогрессбара и передвинуть форму со скриптом пилот падает.

Автор: FREEON 2.11.2019, 21:20

Цитата(WKnight @ 2.11.2019, 12:25) *

build 4
Исправил присвоение круглых скобок элементам массива в команде 'init_arr'.

а поканкрэтнее что исправлено пример можно

Автор: WKnight 2.11.2019, 23:32

Цитата
а поканкрэтнее что исправлено пример можно

init_arr %b 1 2 ( )
скобки терялись

Цитата
Если начать перекачку вики после старта прогрессбара и передвинуть форму со скриптом пилот падает.
Воспроизвести не удалось.

Автор: cirus 13.11.2019, 11:16

Цитата
Изменен адрес Wiki.

Учётные записи при этом не сохранились?

Автор: DarkMaster 14.11.2019, 12:35

Блин. Совсем забыл. Зарегайся, напиши дестракшену для прав.

Автор: Destruction 14.11.2019, 20:22

Цитата(DarkMaster @ 14.11.2019, 12:35) *

Блин. Совсем забыл. Зарегайся, напиши дестракшену для прав.

Нет нужды писать, мне уведомления приходят. Просто регаетесь, а я одобряю тут же всех. Скажите кого админом назначить - я переведу права.

Цитата(cirus @ 13.11.2019, 11:16) *

Учётные записи при этом не сохранились?

Нет. Чистая инсталляция. Статьи перекопировал скриптом.

Автор: DarkMaster 19.12.2019, 19:21

windowpos очень своеобразно работает в луа. При установке положения окна он считает координаты относительными, что странно. Имхо должны быть абсолютными, либо должен быть доступен флаг абс.

Автор: DarkMaster 5.1.2020, 14:37

Код

    local image_address = getimage(48, 77, 148, 77, wndw)
    saveimage(image_address, [[d:\\tmp.bmp]])
    result, err = findimage(48, 77, 92, 79,{[[d:\\tmp.bmp]]},wndw,100)

Каринтка снимиается из 48, 77, 148, 77. Чтобы ее найти:
X конечная коорданата должна быть не меньше 92 при том, что мы вроде как ищем полоску длиной 101 пиксель с точностью 100.
Y конечная координата должна быть не менее 79, начальная не более 77. Т.е. полоса из 3 пикселей, когда ищем всего один.

Нужны фиксы координат.

Автор: DarkMaster 9.1.2020, 20:15

getimage нужны фиксы координат тоже. Кнайт, точки надо допилить, хотя бы чтобы getimage стрелял точно, а то даже ручками не разобрать изображение. Без указания abs скринит бред какой-то.

Автор: абзац 20.1.2020, 10:56

просит пароль какой то развод + вирусы

Автор: cirus 20.1.2020, 11:06

Цитата
просит пароль

пароль на архивы: uopilot.uokit.com
Цитата
+ вирусы

Нет вирусов. Добавить в исключения антивирусника.

Автор: Ксенос 25.1.2020, 20:30

Вирусов нет, только трояны
https://www.virustotal.com/gui/file/3475b7b837ee0eec001aaffb56d5bc9220164d92938f0b5afaefdbd61a23ba14/detection

Автор: FREEON 25.1.2020, 22:17

Только что сканировал вот https://www.virustotal.com/gui/file/2ee60cc8766a46c54fa8a0add8220771cb5c8cd5501f398d63872f1d6232e36f/detection
Те что что-то якобы обнаружили даже сложно антивирусом назвать...к тому же они любят делать обманки в качестве демонстрации своей якобы полезной работы.
Один раз нашоу, други раз ненашоу...самы охерены и действительно полезный антивирус это доктор веб остальные авасты авиры касперские и прочие лишь эмитация бурной деятельности

Автор: DarkMaster 26.1.2020, 9:57

Наивно рассчитывать на то, что программа которая по _ВАШЕМУ_ (и только по вашему) запросу лезет в память других процессов, отсылвает эвенты, перехватывает изображения не будет попадать в листы антивирусов просто потому, что подобное поведение типично для вирусов, а то, что вы сами его инициоровали и оно по вашему желанию происходит и вы полностью понимаете, что оно делает и зачем, полностью под вашим контролем - антивирусы не интересует.
Возьмите тот же wpe - чудеснейший маленький сниффер с возможностью модификации пакетов и их повторной отправкой. Во всех базах - вирус. Ну он же траффик перехватывает. Так, мать вашу, это же сниффер - его задача перехватывать траффик для дальнейшего анализа.
Кстати по той же логике все антивирусы являются вирусами, т.к. они вмешиваются в работу других процессов, ковыряются у них в памяти, получают доступ к жесткому диску и программам которые не нужны для его работы.
Запретите из безопсности сковородку - она же горячая, а то, что она должна быть горячей чтобы пожарить еду значения не имеет.

Автор: FREEON 26.1.2020, 12:40

Цитата(DarkMaster @ 26.1.2020, 9:57) *

Кстати по той же логике все антивирусы являются вирусами, т.к. они вмешиваются в работу других процессов, ковыряются у них в памяти, получают доступ к жесткому диску и программам которые не нужны для его работы.

Согласен, со всем написаным выше и от себя добавлю... Что это увлекательное интересное зрелище когда установить на одной машине два антивирусника(усыпив первый на время). Этакая война на уничтожение в масштабах твоего пк

Автор: DarkMaster 11.2.2020, 1:39

Когда луа выбивает ошибки, то он дает зачастую очень большое сообщение, которое обрезается логом. Поправить бы.

Автор: DarkMaster 14.2.2020, 1:49

send217("dex")
дает -1. Походу пытается вызвать функцию. Луа... Открутить нафиг. Тоже самое с send и say.

Автор: Roman22 25.2.2020, 10:35

Здравствуйте, версией 2.41 пользовался примерно пол года. Скачал её на диск и устанавливал на разные машины. Всё было супер!!! Вчера обнаружил что на всех моих машинах uopilot удалился самопроизвольно(((, скачал с диска и поставил снова, сегодня опять uopilot удалился((( Подскажите в чем проблема??? Как можно решить её???
Заранее огромное спасибо!

Автор: cirus 25.2.2020, 10:47

Цитата
uopilot удалился

Добавить в исключения антивирусника.

Автор: Roman22 25.2.2020, 11:53

Цитата
Добавить в исключения антивирусника.

uopilot стоит на виртуальном сервере, антивирус не устанавливал.

Автор: cirus 25.2.2020, 12:22

Цитата
антивирус не устанавливал.

Стандартный защитник windows.

Автор: Roman22 25.2.2020, 12:26

Почему работал полгода нормально, а сейчас каждый день самопроизвольно удаляется?(
Есть мысли?

Автор: Roman22 25.2.2020, 13:07

Разобрался немного - защитник Windows отправляет uopilot в карантин!

Автор: DarkMaster 27.2.2020, 21:47

Цитата
Почему работал полгода нормально, а сейчас каждый день самопроизвольно удаляется?(
Есть мысли?

У очередного очень полезного антивиря после обновления в очередной раз переклинило мозги.

Автор: trico 4.3.2020, 8:27

Печалька что нельзя указать хендл окна-цели при запуске из параметров командной строки.

Код
UoPilot.exe /r0

https://forum.uokit.com/index.php?showtopic=70129

Автор: steq 15.3.2020, 21:58

/Решено

Автор: Fors1k 18.4.2020, 21:04


Автор: Fors1k 28.5.2020, 15:10

Код
--lua
MyName=[[My name is Bobby]]
write ([[C:\456a.txt]], MyName)

Цитата
My -1 is Bobby

Автор: cirus 28.5.2020, 15:15

Цитата
name

Зарезервированные переменные ультимы, только так:
Код
--lua
write ([[C:\456a.txt]], 'My na')
write ([[C:\456a.txt]], 'me is Bobby')

Автор: Fors1k 28.5.2020, 16:08

Цитата(cirus @ 28.5.2020, 15:15) *
Зарезервированные переменные ультимы
Да я уже так и подумал, что name - какая-то зарезервированная переменная, но https://uopilot.uokit.com/wiki/index.php?title=Переменные,_зарезервированные, да и в любом случае внутри скобок переменные раскрываться же не должны. Получается такая ситуация является неисправностью, вот и решил написать bug report для WKnight.

Цитата(cirus @ 28.5.2020, 15:15) *
только так:
Еще вот так:
Код
MyName=[[My name is Bobby]]
file=io.open([[C:\456a.txt]], "ab")
file:write(MyName)
file:close()

Кстати, интересно получается, что переменная объявлена тем же способом, но при таком способе записи в файл проблем нет. Получается проблема именно в самом https://uopilot.uokit.com/wiki/index.php?title=Write_(Lua).

Автор: Levo222 21.9.2020, 18:20

Что ЗА пароль при скачке?

Автор: DarkMaster 21.9.2020, 22:53

password: uopilot.uokit.com
написяан прям там же. Гугл здрал банить за то, что находит несуществующие вирусы.

Автор: Levo222 7.11.2020, 13:16

Как настроить Window 10 чтобы она не удаляла пилот? Она удаляет дефолтными средствами защиты

Автор: Fors1k 7.11.2020, 13:32

Цитата(Levo222 @ 7.11.2020, 13:16) *

Как настроить Window 10 чтобы она не удаляла пилот? Она удаляет дефолтными средствами защиты

https://forum.uokit.com/index.php?showtopic=70302 -> Полезные сведения -> #1.2

Автор: srs 10.11.2020, 22:58

Цитата(Levo222 @ 7.11.2020, 14:16) *

Как настроить Window 10 чтобы она не удаляла пилот? Она удаляет дефолтными средствами защиты

Я просто отключил "Защитник Windows". По идее можно в исключения добавить.

У меня такой вопрос:
А можно как то добавить быстрые клавиши для запуска/остановки скрипта и запуска части скрипта, как например в PowerShell?
Неудобно писать, потом нащупывать мышку, запускать и др... )))

Автор: Fors1k 11.11.2020, 15:05

Цитата(srs @ 10.11.2020, 22:58) *

А можно как то добавить быстрые клавиши для запуска/остановки скрипта и запуска части скрипта, как например в PowerShell?
Неудобно писать, потом нащупывать мышку, запускать и др... )))

Прикрепленное изображение
Хотя так скрипт будет запускаться даже если пилот свернуть. dry.gif

Автор: Cockney 29.11.2020, 18:45

Не хочется создавать новую тему, поэтому спрошу здесь.

Код

--lua
a,w,h,l = getimage(0,0,10,10, 2)
log(a)
log(w)
log(h)
log(l)


Привязка сделана к окну пилота.

Вывод:

Код

11666524 -> UoPilot  v2.41 b4   WK
18:39:15 2 (autosaved_2.txt, 0): 99418144
18:39:15 2 (autosaved_2.txt, 0): 700
18:39:15 2 (autosaved_2.txt, 0): 687
18:39:15 2 (autosaved_2.txt, 0): 2100


Я не так что-то делаю, или не доведено до ума ?

если вместо 2 указать хендл, то вывод будет уже лучше:

Код

18:43:09 2 (autosaved_2.txt, 0): 12097640
18:43:09 2 (autosaved_2.txt, 0): 11
18:43:09 2 (autosaved_2.txt, 0): 11
18:43:09 2 (autosaved_2.txt, 0): 36


Но ширина разве не должна быть 10 ? или endx и endy включены в область захвата ?

Автор: cirus 29.11.2020, 19:02

Цитата
или не доведено до ума ?

С какой-то версии было сломано.

Автор: Cockney 29.11.2020, 19:10

Спасибо за оперативность.

Автор: Cockney 2.12.2020, 20:18

Тоже сломано ?
Привязка была как к самому пилоту, так и другим окнам. Вывод пустой.

Код
 
local pid =  workwindowpid()
local a = findwindow(pid)
if a then
    for i = 1, #a do
        log(a[i][1])
    end
end

Автор: DarkMaster 3.12.2020, 6:26

Цитата
Но ширина разве не должна быть 10 ? или endx и endy включены в область захвата ?

Этот момент где-то еще в финдах был найден достаточно давно. На финды тоже влияет, правда неявным образом. Был баг нахождения вне заданных координат. В данный момент подобные результаты искуственно отсеиваются после нахождения.

Автор: DarkMaster 3.12.2020, 6:46

Попробуй отослать все параметры единым стрингом. Есть вероятность, что вернет.

Автор: Cockney 3.12.2020, 11:25

Цитата(DarkMaster @ 3.12.2020, 6:46) *

Попробуй отослать все параметры единым стрингом. Есть вероятность, что вернет.



Если речь про findwindow(pid), то не вернет. tostring() и строковая константа не работают.

Автор: DarkMaster 17.3.2021, 5:35

Код
--lua
local color_to_rgb = function(c)
    local r,g,b
    b = math.floor(c/65536)
    g = math.floor(c/256-b*256)
    r = c-b*256*256-g*256
    return r, g ,b
end

-- Возвращает true, если результат
-- входит в допустимое отклонение цвета,
-- иначе вернет false.
-- Допустимый синтаксис:
-- r, g, b в любом варианте могут быть заданы таблицей.
-- <цвет1>, <цвет2>, <r[, g[, b]]>
-- Значения допустимого отклонения
-- ситаются допустимыми +/- r, g, b.
-- <цвет>, <цвет2>, <r1[, g1[, b1]]>, <r2[, g2[, b2]]>
-- Значения r1, g1, b1 считаются допустимыми в плюс.
-- Значения r2, g2, b2 считаются допустимыми в минус.
-- Минус не пишется.

local color_deviation_a = function(c1, c2, r1, g1, b1, r2, g2, b2)
    if type(r1) == "table" then
        if type(g1) == "table" then
            r2 = g1[1]
            g2 = g1[2]
            b2 = g1[3]
        end
        b1 = r1[3]
        g1 = r1[2]
        r1 = r1[1]
    end

    if not r2 and not g2 and not b2 then
        r2 = r1
        g2 = g1
        b2 = b1
    end

    local cr1, cg1, cb1 = color_to_rgb(c1)
    local cr2, cg2, cb2 = color_to_rgb(c2)
log(cr1, cg1, cb1)
log(cr2, cg2, cb2)

log(                                    "\n",
        cr1 + r1, ">=", cr2, cr1 - r2, "<=", cr2,   "\n",
        cg1 + r1, ">=", cg2, cg1 - r2, "<=", cg2,   "\n",
        cb1 + r1, ">=", cb2, cb1 - r2, "<=", cb2
)

    if  cr1 + r1 >= cr2 and cr1 - r2 <= cr2 and
        cg1 + r1 >= cg2 and cg1 - r2 <= cg2 and
        cb1 + r1 >= cb2 and cb1 - r2 <= cb2 then
        return true
    else
        return false
    end
end


log(tostring(color_deviation_a(0x050505, 0x060505, 1, 2, 3, 4, 5, 6)))
--end_script ()

По какой-то непонятной мне причине пилот после выполнения скрипта, начинает его выполнять заново.
Код содержит вагон перепутаных местами цветов и незаконченный парсинг параметров, но речь не об этом.

Автор: cirus 17.3.2021, 11:06

Цитата
после выполнения скрипта, начинает его выполнять заново.

log может принимать до 20 параметров, в этом коде передаётся 21.

Автор: DarkMaster 17.3.2021, 15:43

Цитата
og может принимать до 20 параметров, в этом коде передаётся 21.

Ок, допустим. Но он исправно их выводит. Это точно для луа?
И какая связь слишком большого количества параметров и перезапуском скрипта? Скрипт успешно отрабатывает. Если убрать коммент с end_script(), то он еще и остановится.

Автор: Cockney 17.3.2021, 20:17

Цитата(DarkMaster @ 17.3.2021, 15:43) *

Ок, допустим. Но он исправно их выводит. Это точно для луа?
И какая связь слишком большого количества параметров и перезапуском скрипта? Скрипт успешно отрабатывает. Если убрать коммент с end_script(), то он еще и остановится.



Код до запуска обрабатывается примитивным парсером, который выставляет различные флаги и даже немного заменяет код (например, что-то то типа log("clear") превратится в немного другую команду). Там есть некая логика завязанная на балансе открытых/закрытых блоках луа. Мне кажется причина в этом.

Автор: DarkMaster 19.3.2021, 6:37

Цитата
немного заменяет код (например, что-то то типа log("clear") превратится в немного другую команду)

Если мы говорим про луа - да, байт код, jit. Но флаги перезапуска скрипта с этим едва ли связаны. Код на луа передается в машину луа, код на пилоте - парсится построчно, без какой-либо компиляции, преобразования и т.д. Я согласен с тем, что это видимо проблема парсинга начала и окончания блоков луа, но парсинг этих блоков нужно рассматривать исключительно, как парсинг чистого кода скрипта, до каких-либо преобразований. Явных же причин для ошибки в подобном парсинге я просто не вижу.

Автор: Cockney 25.3.2021, 1:18

Цитата(DarkMaster @ 19.3.2021, 6:37) *

Если мы говорим про луа - да, байт код, jit.


Да нет, речь именно о коде, который попадает из редактора на выполнение. Парсер там замысловатый, и я так и не понял что он делает в некоторых моментах с кодом. Какая-то внутренняя обработка или возможно куски кода, которые тестировались когда-то. Кто-ж знает....



Автор: dimas01 28.7.2021, 19:50

можно как нибудь получить нормальную информацию как с этим работать?
у меня стоял пилот 239, но под ним нет возможности работать с картинками. неделю трахался.. поставил 241 в том году, заработало. все хорошо. ейсно сменил там кое что.. в этом году ставлю 241 - не работает. ставлю 242 - не работает, ставлю уже 239 - та же фигня. Эта хрень когда нибудь будет работать? И НАФИГА В КАЖДОМ ЕХЕ МЕНЯТЬ ТРАНСКРИПЦИЮ? БЕСИТ УЖЕ!!!! чтобы отладить дешевый код надо несколько дней потратить. Хоть свое пиши на Сишке. маразм ((

Автор: Madeus 28.7.2021, 20:11

Эта тема явно не про твою проблему. Сделай отдельную тему. А вообще у всех все работает и в 2.39 и в 2.41/42.

Автор: dimas01 28.7.2021, 20:33

Цитата(Madeus @ 28.7.2021, 20:11) *

Эта тема явно не про твою проблему. Сделай отдельную тему. А вообще у всех все работает и в 2.39 и в 2.41/42.

отличный ответ, очень помогло. Я говорю что пришлось версию менять и транскрипция там другая, он мне "у всех все работает." Гениально просто.
так. по сути. как сюда вставить скрипт, я не знаю. скрипт был такой, и он работал. Теперь не работает.
Код
 
--lua
local path = [[C:\uopilot241\Picture]]
local image = {"001", "002"}
--hint ("Всего картинок для поиска " .. #image)
local startX, startY = 60, 150
for с = 1, 15 do
for i = 1, #image do                     -- цикл для поиска картинок
    local arr, a = findimage (startX, startY, 1860, 900, {path .. "\\" .. image[i] .. ".bmp"}, 2, 80, 30, 3)
    --hint ("Найдено картинок: " .. #arr .. arr[1][1])
    if  arr then
        kleft (arr[1][1], arr[1][2])    -- переместить курсор на найденную картинку
        wait (100)
        local farm1 = 1
        send (farm1)
        sendex (1)
    end
end
end

Автор: Madeus 28.7.2021, 22:08

Lua работает начиная с версии 2.41, в 2.39 этот код работать не будет. Картинки находит? Если да то ошибка одна, значение передаваемое send и sendex нужно заключать в кавычки " ".

Код
--lua
local path = [[C:\uopilot241\Picture]]
local image = {"001", "002"}
--hint ("Всего картинок для поиска " .. #image)
local startX, startY = 60, 150
for с = 1, 15 do
  for i = 1, #image do                     -- цикл для поиска картинок
    local arr, a = findimage (startX, startY, 1860, 900, {path .. "\\" .. image[i] .. ".bmp"}, 2, 80, 30, 3)
    --hint ("Найдено картинок: " .. #arr .. arr[1][1])
    if arr then
      kleft (arr[1][1], arr[1][2])    -- переместить курсор на найденную картинку
      wait (100)
      local farm1 = '1'
      send (farm1)
      sendex ('1')
    end
  end
end

Автор: dimas01 29.7.2021, 7:55

еще раз попробую. Этот код. Именно этот код работал в прошлом году. Все находил и все отрабатывал. В этом году именно этот код вообще ничего не делает. От слова совсем. ни в 241 ни в 242 пилоте.
вчера бодался весь день. Сегодня через два часа, после борьбы единорога с носорогом, а именно замена ИНИ файлов, скрипт частично заработал. Но Частично. Картинки он теперь находит, а вот команду kleft не производит. нет клика, хотя курсор перемещается. Люблю Пилот! возьня вокруг пустой тарелЬки ))

Автор: sutra 29.7.2021, 8:55

Если что-то работало и вдруг перестало работать, то Пилот тут точно не при чём. Скорее всего изменились условия поиска картинок. Координаты "уплыли", сами картинки изменились. Ищите ошибку именно в этом направлении.

Автор: dimas01 29.7.2021, 9:52

Цитата(sutra @ 29.7.2021, 8:55) *

Если что-то работало и вдруг перестало работать, то Пилот тут точно не при чём. Скорее всего изменились условия поиска картинок. Координаты "уплыли", сами картинки изменились. Ищите ошибку именно в этом направлении.

Спасибо, хорошее предположение. Перечитайте пост выше, только что отредактировал его )) "Координаты, картинки" .. угу. Можно посерьезней отнестись к вопросу?

Автор: Solpadeine 29.7.2021, 10:55

Цитата(dimas01 @ 29.7.2021, 11:52) *
Спасибо, хорошее предположение. Перечитайте пост выше, только что отредактировал его )) "Координаты, картинки" .. угу. Можно посерьезней отнестись к вопросу?

Фига ты наглый тип biggrin.gif Тебе люди помочь пытаются, а от тебя виден только сарказм на сарказме в каждом посте. Может быть ты сам постараешься серьезнее отнестись к вопросу и внимательнее обратить внимание на советы людей? smile.gif

Автор: Madeus 29.7.2021, 11:08

Он считает себя самым умным, а мы тут так, по стольку по скольку...
Указываешь на конкретную ошибку в коде а он тебя за идиота считает, ну ок пусть решает свои проблемы сам, у меня все работает biggrin.gif

Автор: dimas01 29.7.2021, 19:43

Цитата(Madeus @ 29.7.2021, 11:08) *

Он считает себя самым умным, а мы тут так, по стольку по скольку...
Указываешь на конкретную ошибку в коде а он тебя за идиота считает, ну ок пусть решает свои проблемы сам, у меня все работает biggrin.gif

Что же вы обижаетесь то а? "Конкретная ошибка" на которую Вы указали вовсе не конкретная. Ясно же по русски написано, что частично заработало после смены ИНИ и ДЛЛ. картинки здесь ни при чем, скобочки тоже, так как остальное тоже заработало. и Изначально было написано что скрипт рабочий был. а Вы "скобочки". Ну что это?
Хотите знать от чего заработало? от смены браузера. смешно? но факт. Сменил браузер и Клифт стал работать ))
И если бы я считал себя самым умным, то зачем мне спрашивать на форуме?
Не обижайтесь, а? Толку от этого? Взрослые люди здесь. Есть вопрос - решаем вопрос. Все просто.

Автор: sutra 30.7.2021, 12:07

Ну так а Пилот тут чем виноват? Вам же так и сказали, что-то поменялось у Вас. Да даже при том же браузере могут возникнуть проблемы, они его обновили и ВСЁ, запросто может что-то не работать или работать не так, как раньше.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)