Здравствуйте, гость ( Вход | Регистрация )

6 страниц V « < 3 4 5 6 >  
Ответить в эту темуОткрыть новую тему
> Новая Версия Uopilot v.2.39 (09.03.2017), Официальный сайт. Скачать. Последняя версия.
Cockney
сообщение 5.7.2017, 11:55
Сообщение #81


********

Master
Сообщений: 1.395
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 21060
Пользователь №: 16.156



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

Другой вариант - сборщик отключен, пока есть доступная память для машины. Вот когда забьются 2ГБ +-, тогда он и включится. Т.е. никогда в большинстве случаев.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.7.2017, 12:09
Сообщение #82


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26706
Пользователь №: 16.971
Возраст: 29



Цитата
Добавил возможность закомментировать строку нажатием ЛКМ по её номеру, и раскомментировать повторным нажатием ЛКМ по номеру.

Комментарии поставленные таким способом не сохраняются в редакторе при выходе из пилота. Точнее сохраняются только первый раз.
Открываем новую вкладку, пишем:
Код
--lua
log ()

Комментируем строку log () нажатием на номер строки. Закрываем пилот, запускаем его. Всё нормально.
Убираем комментарий строки log () нажатием на номер строки. Закрываем пилот, запускаем его. Строка осталась закомментированна.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 16.7.2017, 18:09
Сообщение #83


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Fixed.
Бетку попозже выложу.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.7.2017, 18:41
Сообщение #84


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26706
Пользователь №: 16.971
Возраст: 29



Что на счёт команд 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)

Меню ПКМ тоже будет меняться в зависимости от наличия строки --lua?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 16.7.2017, 21:31
Сообщение #85


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Цитата
Что на счёт команд ...
Пилить надо... Но сейчас со временем напряг, как обычно.
Цитата
Меню ПКМ тоже будет меняться в зависимости от наличия строки --lua?
Как то не думалось даже об этом. Добавлю в планы.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 18.7.2017, 12:31
Сообщение #86


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26706
Пользователь №: 16.971
Возраст: 29



На счёт синтаксиса 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)   -- с шагом
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 19.7.2017, 18:52
Сообщение #87


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Сейчас синтаксис в луа максимально приближен к пилотовскому, чтобы проще было парсить, потому как делалось всё оптом, а не каждая функция в отдельности.
Много чего нужно допиливать, сейчас как бы тестовый вариант, чтоб узнать работает оно вообще или нет. Почти все предложения записываются в todo и ковыряются по мере возможности.

У findimage и findcolor в луа можно указывать до 20 параметров, поэтому скобки можно указать отдельно, а то что должно быть внутри них - переменными.

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.8.2017, 10:32
Сообщение #88


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27721
Пользователь №: 11.279



Цитата
Скажите, а сборщика мусора во встроенном Lua нет? Планируется ли или он не работает?

Есть. Работает самостоятельно. Можно вызвать вручную.
Цитата
Функции сборщика мусора

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

collectgarbage("collect") - Работает один полный цикл сборки мусора.

collectgarbage("count") - Возвращает объем памяти , используемой в настоящий момент программой в килобайтах.

collectgarbage("restart") - Если сборщик мусора был остановлен, он перезапускает его.

collectgarbage("setpause") - Устанавливает значение , заданное в качестве второго параметра , деленная на 100 для переменной паузы сборщика мусора. Его применение, как описано чуть выше.

collectgarbage("setstepmul") - Устанавливает значение , заданное в качестве второго параметра , деленная на 100 переменной мусора шаг множителя. Его применение, как описано чуть выше.

collectgarbage("step") - Выполняет один шаг сборки мусора. Чем больше второй аргумент, тем больше этот шаг будет. Collectgarbage возвращает истину, если срабатывает шаг был последний шаг цикла сборки мусора.

collectgarbage("stop") - останавливает сборщик мусора , если его ход.

Что-то даже тестил на достаточно больших таблицах. Не получилось полностью изничтожить после 2гб занимаемой памяти все равно оставалось около 25 метров занятых. Причем точно тот же самый объем занимался при простой инициализации массива с аналогичным количеством элементов. Т.е. инициализированное полностью не выгружает по ходу. Но до конца не разбирался.
Цитата
По всей видимости, продолжает ссылаться на область в памяти, где храниться значение, поэтому его отображает.

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

Цитата
Другой вариант - сборщик отключен, пока есть доступная память для машины. Вот когда забьются 2ГБ +-, тогда он и включится. Т.е. никогда в большинстве случаев.

Там несколько хитрее он работает. Там на каждый такт выделения памяти указывается сколько тактов памяти он пытается освободить и шаг при котором он это делает. По дефолту шаг не помню, но что-то в пределах разумного (30-200%).


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 3.9.2017, 15:39
Сообщение #89


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26706
Пользователь №: 16.971
Возраст: 29



Код
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)

Может сделать чтобы было одинаково.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 6.9.2017, 12:36
Сообщение #90


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



build 6

Исправил сохранение скриптов при комментировании строк нажатием ЛКМ по их номерам.

Добавил в конфигурационный файл возможность указать имя загружаемой библиотеки Lua.

Сделал перезапуск виртуальной машины Lua при перезапуске скрипта.

Добавил в скрипты Lua команду "end_script ()".
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.9.2017, 12:46
Сообщение #91


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27721
Пользователь №: 11.279



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

Для каждой вкладки свой экземпляр машины?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 6.9.2017, 12:56
Сообщение #92


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Да, так вроде изначально было.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 6.9.2017, 13:12
Сообщение #93


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



build 7

При вызове из Lua, команды 'getimage' и 'loadimage' возвращают только "Адрес в памяти" или код ошибки.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 6.9.2017, 15:45
Сообщение #94


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26706
Пользователь №: 16.971
Возраст: 29



В 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

Прикрепленный файл  test.bmp ( 376 байт ) Кол-во скачиваний: 226

Прикрепленный файл  image.bmp ( 136 байт ) Кол-во скачиваний: 233
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.9.2017, 18:25
Сообщение #95


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27721
Пользователь №: 11.279



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

Сообщение отредактировал DarkMaster - 6.9.2017, 18:25


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 7.9.2017, 3:37
Сообщение #96


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26706
Пользователь №: 16.971
Возраст: 29



Цитата
build 7

А где оно? По ссылке обычная 2.39.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 7.9.2017, 10:20
Сообщение #97


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



http://uopilot.uokit.com/dlnight.php
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 11.9.2017, 2:07
Сообщение #98


***********

Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27721
Пользователь №: 11.279



return вызванный из for приводит к ошибке при попытке входа в цикл for. Кусок кода не привожу, т.к. не локализовывал, а вложенность вызовов и подпрограмм очень большая. Между выходом по return и ошибкой ~ 2500 строк лога.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 11.9.2017, 20:41
Сообщение #99


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



Цитата
А где оно?

Это типа "ночная" сборка. Ссылка на пару строк ниже релизной

night version, 07.09.2017 Build 008
Последняя, на данный момент, скомпилированная версия. Обычно работает.

build 9

Изменен синтаксис команды 'dir' при вызове из Lua. 'resultarray = dir ([Path [Filemask]])'

Изменен синтаксис команды 'regexp' при вызове из Lua. 'position, hitstring, errorcode = regexp (<string>, <regexp>)'

Добавил возможность вывода дерева каталогов без рекурсии, с помощью соответствующего ключевого слова 'dir (%dir path file [norecursion])'.

Добавил возврат количества найденных элементов в команде 'dir' при вызове из Lua. 'resultarray, count = dir ([Path [Filemask]] [norecursion])'
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 11.9.2017, 21:19
Сообщение #100


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



build 10

Исправил ошибку, возникающую при прерывании циклов 'for' и 'repeat' по команде 'return'.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

6 страниц V « < 3 4 5 6 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 23.4.2024, 23:05
Designed by Nickostyle