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

> Помогите освоить LUA
sutra
сообщение 24.10.2018, 18:09
Сообщение #1


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Начал осваивать LUA, помогите пожалуйста, в справке нет многих операторов.
Сразу возник вопрос, как загрузить массив из файла (аналог load_array), наверняка ответ на форуме есть, но я не нашёл. В обычном скрипте код такой.

load_array %cfg $ConfigFile

Ну и сохранить соответственно тоже не знаю как.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
sutra
сообщение 12.11.2018, 16:22
Сообщение #2


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Теперь про борьбу с рендерингом. Может кому пригодится. Даже используя стандартный Пилотовский findimage соблюдая два нехитрых правила результат поиска становится стабильнее и точнее.
1) На рендеринг (прорисовку) любой картинки влияют соседние с ней ИЗМЕНЯЮЩИЕСЯ объекты. Поэтому захват нужной картинки надо производить по возможности дальше от таких объектов.
Например, есть текст, который надо захватить для сравнения с неким оригиналом, и над этим текстом вверху постоянно меняющееся изображение каких-либо объектов.
Предположим, что высота символов 12 пикселей. Осуществляйте захват не по всей высоте текста, а сместите верхнюю границу зону захвата на 2-3 (а возможно и больше) пикселя ниже.
Грубо говоря скрин будет размером не 40х12, а скажем 40х10. Картинка конечно смотрится неприглядно, но идентифицировать её будет проще, так как подверженные влиянию верхние пиксели мы отбросим, кстати границы объектов всегда наиболее подвержены рендерингу.
2) Сильно может влиять положение рабочего окна, поэтому лучше чтобы рабочее окно всегда находилось на "своём привычном месте", я его устанавливаю при помощи set windowpos ...

Мне на 100% избежать влияния рендеринга удаётся не всегда, но в таких случаях у меня есть 2-3 (ничто не мешает сделать и больше) эталонных файла картинки. Имена файлов эталонов содержат номер события, поэтому все они легко распознаются в соответствии с событием (0001.jpg; 0002-a.jpg; 0002-b.jpg; и т.д.). Размеры файлов варьируются очень сильно, поэтому в подавляющем большинстве случаев, опознание производится по размеру файлов не прибегая к открытию файлов и их сравнению.

Кстати можно хранить содержимое файлов эталонов в памяти, да и сам список файлов тоже. Никаких тормозов в принципе быть не должно, хотя у меня и внешняя программа пашет на ура.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
sutra   Помогите освоить LUA   24.10.2018, 18:09
cirus   --lua log "clear" log "mode compact...   25.10.2018, 1:58
DarkMaster   Поскольку lua весь на деревьях и размеры массивов ...   25.10.2018, 8:43
DarkMaster   Предчувствуя следующий вопрос: local function lg...   25.10.2018, 8:54
sutra   Спасибо большое парни! Оба здорово помогли мне...   25.10.2018, 23:06
DarkMaster   Смысл в том, что это делать уже не надо - оно уже...   26.10.2018, 0:36
sutra   Дарк, а есть такая возможность получить некий резу...   26.10.2018, 12:28
DarkMaster   Нет. И подозреваю, что даже между запущенными на ...   26.10.2018, 14:25
WKnight   Теоретически есть. А смысл?   26.10.2018, 14:35
sutra   Смысла нет, просто скрипт огромный, хотел частями ...   26.10.2018, 15:53
sutra   В башке "месиво" сплошное от всех этих я...   26.10.2018, 16:49
olduo.com   В башке "месиво" сплошное от всех этих ...   27.10.2018, 0:51
DarkMaster   И да и нет. Пока не лезешь в классы и метатаблицы...   27.10.2018, 1:59
Cockney   Да вот только сам по себе луа пустой. Его сфера ...   27.10.2018, 12:44
DarkMaster   Классы этого никак не меняют. И справляется на с...   27.10.2018, 14:00
Cockney   Классы этого никак не меняют. И справляется на с...   27.10.2018, 14:48
olduo.com   Ради интереса зашел на одну из вакансий по луа: ...   27.10.2018, 18:17
sutra   Во какую тему замутил. А я вот со своим дилетантск...   27.10.2018, 16:09
DarkMaster   Насколько я понял там вообще пофигу ибо линкуется...   27.10.2018, 17:08
Cockney   Начали мы как раз с того, что луа живет за счет ...   10.11.2018, 0:05
sutra   Я попробовал и даже простейшую функцию не смог сде...   27.10.2018, 18:24
cirus   Выкладывайте код, поправим. Для примера: --lua --...   27.10.2018, 18:31
sutra   Не смог реализовать goto как только не пробовал, д...   27.10.2018, 19:53
cirus   Лучше сразу забудьте про него. --lua function pro...   27.10.2018, 19:53
sutra   Спасибо. То есть goto не работает??   27.10.2018, 20:01
cirus   Нет. Он и не нужен. В луа его вообще нет. Вроде к...   27.10.2018, 20:04
sutra   Меня конечно учили в своё время, что goto использо...   27.10.2018, 20:16
DarkMaster   Как правило подобные проблемы говорят о том, что ...   28.10.2018, 2:11
sutra   А оператор continue в цикле while есть?   29.10.2018, 0:00
cirus   В луа нет continue.   29.10.2018, 0:18
sutra   Это очень нехорошо. Если честно, то я не понимаю. ...   29.10.2018, 1:28
DarkMaster   while var > 1 do local result = check_some_pa...   29.10.2018, 4:29
sutra   Спасибо Дарк. Но у меня так не получится. Допустим...   29.10.2018, 12:55
sutra   Слишком сложный код. никакого линейного выполнения...   29.10.2018, 13:15
sutra   Грубо говоря есть определённое количество событий,...   29.10.2018, 13:25
sutra   local n = "123.txt" local f = io.open(...   29.10.2018, 14:41
DarkMaster   А лежит он где? Рядом с ехе пилота? Пилот перезап...   29.10.2018, 14:44
sutra   Обычным текстом открывает [[123.txt]] Минутку, те...   29.10.2018, 15:04
cirus   Скорее всего были какие-то ошибки. --lua local n ...   29.10.2018, 15:09
sutra   Перегрузил Пилот через прибивалку, всё заработало,...   29.10.2018, 15:17
sutra   Понял причину, забыл поставить двойной слеш при ук...   29.10.2018, 15:40
DarkMaster   Не редактируйте код перед тем, как выложить. Ну л...   29.10.2018, 18:00
sutra   Я не редактировал. Просто сначала использовал полн...   29.10.2018, 18:21
DarkMaster   это фиксанули буквально пару дней назад   30.10.2018, 5:31
sutra   Добрался до файндов. и как и думал ничего у меня н...   31.10.2018, 13:03
sutra   И конечно примеры на lua "надёжно" зарыт...   31.10.2018, 13:14
cirus   --lua local a, c = findimage(0, 0, 1920, 1080...   31.10.2018, 13:29
sutra   Спасибо. Так я и говорю надёжно спрятано. Я случа...   31.10.2018, 13:35
cirus   Когда выйдет полноценная версия пилота на луа, то...   31.10.2018, 13:50
sutra   --lua log "clear" log "mode compact...   31.10.2018, 14:01
cirus   Да, в findimage есть баг, если искать на скрине от...   31.10.2018, 14:10
sutra   --lua log "clear" log "mode compact...   31.10.2018, 14:17
cirus   --lua log "clear" log "mode compact...   31.10.2018, 14:23
sutra   Спасибо разобрался. Ну в общем тот баг и в lua про...   31.10.2018, 14:43
cirus   --lua log "clear" log "mode compact...   31.10.2018, 14:57
sutra   Спасибо.   31.10.2018, 15:12
DarkMaster   Суть в том, что само тело пилотовских функций оди...   31.10.2018, 19:04
sutra   А получить массив найденных пикселей, где хранятс...   1.11.2018, 12:54
cirus   --lua local a = findcolor("0, 0, 1920, 108...   1.11.2018, 13:09
sutra   Спасибо. А какой самый простой способ в lua убить...   1.11.2018, 13:26
DarkMaster   arr = nil вы не убили массив. Вы создали новый п...   1.11.2018, 13:44
WKnight   Плин, вот так скажешь ваське ченить полезное, и по...   1.11.2018, 13:51
sutra   Спасибо. Вывод... лучше спросить, коли с мозгами т...   1.11.2018, 14:20
sutra   Всем огромное спасибо, кто потратил своё время на ...   4.11.2018, 18:46
sutra   --lua check=5 checkint=0 for i=1, 10 do for j=...   8.11.2018, 12:01
cirus   Нет.   8.11.2018, 12:36
DarkMaster   Не забывайте области видимости - пишите local при ...   8.11.2018, 17:34
sutra   Спасибо, я не забываю. На примерах просто лень, у...   9.11.2018, 1:59
WKnight   А напомните, что именно имеется ввиду. Я как раз р...   9.11.2018, 2:07
sutra   Так Cirus показывал на примере моей картинки в тем...   9.11.2018, 2:12
cirus   https://forum.uokit.com/index.php?s=&sh...st...   9.11.2018, 2:19
DarkMaster   1) Глобальные переменные медленные. 2) В луа огра...   9.11.2018, 10:07
WKnight   А, я думал может еще чего интересного нашли :)   9.11.2018, 12:48
DarkMaster   Я тебе могу предложить убрать костыль по координат...   9.11.2018, 13:02
sutra   Кнайт, мне нравится подход, ЕЩЁ ... Я считаю, что...   9.11.2018, 16:59
WKnight   Чет не помню такого.   9.11.2018, 18:28
DarkMaster   В приват ща опишу. А то "секретные технологии...   9.11.2018, 18:36
sutra   Блин, секретные технологии. Ну у меня тоже есть та...   10.11.2018, 1:16
sutra   Фишка в том, что анализируются не изображения, а ф...   10.11.2018, 1:39
sutra   Думаю всё это легко можно сделать в lua , но мне п...   10.11.2018, 2:13
cirus   --lua log "clear" log "mode compact...   10.11.2018, 2:29
DarkMaster   В данном случае я бы рекомендовал для начала забыт...   10.11.2018, 13:07
sutra   Ну этот метод я знаю, в принципе неплохой вариант...   10.11.2018, 14:51
sutra   Сорри, не доглядел, действительно, я не знал синт...   10.11.2018, 15:08
DarkMaster   Очень неплохо поднимается производительность, если...   10.11.2018, 15:29
sutra   Так в том то и фишка, что колор в памяти только-то...   10.11.2018, 15:44
cirus   --lua -- сделать привязку Ctrl+A local h = workwin...   10.11.2018, 16:25
sutra   Спасибо большое. Век живи и век учись. Я просто п...   10.11.2018, 16:52
cirus   Color, findimage, findcolor, getimage, move, left...   10.11.2018, 17:07
sutra   ОК.   10.11.2018, 17:30
sutra   Конечно если картинки очень сложные, то спасёт тол...   12.11.2018, 18:38
sutra   function FindRGB(addr,len,scrX1,scrY1,fx1,fy1,...   12.11.2018, 23:31
sutra   Круто, я так не умею, не знаю как.   13.11.2018, 0:00
sutra   Эх, если бы за один присест получить доступ к памя...   13.11.2018, 0:16
DarkMaster   Может быть рассчитан на основе кооридант. Т.е. ег...   13.11.2018, 0:21
sutra   Спасибо Дарк. Я не знал про переменные. В Паскале ...   13.11.2018, 0:39
DarkMaster   Это регэкспы. Можно почтиать в regex, но в луа он...   13.11.2018, 0:46
sutra   Спасибо на добром слове Дарк. Примерно я понимаю. ...   13.11.2018, 1:01
sutra   А вот это не факт. Каркать не стану, но сдаётся м...   13.11.2018, 1:32
7 страниц V  1 2 3 > » 


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

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