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

35 страниц V « < 32 33 34 35 >  
Ответить в эту темуОткрыть новую тему
> Помогите освоить LUA
DarkMaster
сообщение 14.3.2019, 14:14
Сообщение #661


***********

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



Цитата
local text = clipboard ()

После этой строки сделайте:
log(type(text))
log(text)

Цитата
O_O я о них ничего не знаю( и даже не представяю с какого боку заходить...

luasocket модуль называется. Там есть проблемки с его компиляцией. Никак не хочет нормально вставать под luajit 5.1.
Есть древняя версия рабочая и есть пачка компиленных которые вроде как рабочие, но с jit шуршать не хотят. Я когда-то убивался с этой проблемой очень должго Cockney помогал, но до конца проблема так и не решилась.
Маны тут: http://w3.impa.br/~diego/software/luasocket/
Передавать проще всего будет, пожалуй, стрингом. Для передачи рекомендую исползовать https://github.com/pkulchenko/serpent - он грамотно конвертирует таблицу в стринг, который корректно воспринимается стандартным loadstring().


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


********

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



Я принципиально не понимаю различия сборки плагинов с дефолтным lua и jit'ом. Плагин использует апи луа, который jit поддерживает в полном объеме. Как это может не работать я не могу понять, хоть и клавиатурный плагин у меня самого не работает.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.3.2019, 5:48
Сообщение #663


***********

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



Цитата
Я принципиально не понимаю различия сборки плагинов с дефолтным lua и jit'ом.

Эмм... Отвечу в стиле капитана... В первом случае модифицируется длл, во втором скрипт. Скорость вызова в первом случае значительно меньше.
Цитата
Как это может не работать

что "это"?


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


***********

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



Кстати есть версия почему проблемы с компиляцией. При jit какие-то проблемы с callback функциями. Возможно есть необходимость выключить jit для определенных функций либо полностью (jit.off()).


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


********

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



Цитата(DarkMaster @ 15.3.2019, 5:48) *

Эмм... Отвечу в стиле капитана... В первом случае модифицируется длл, во втором скрипт. Скорость вызова в первом случае значительно меньше.

что "это"?



Запусти мой клавиатурный плагин на версии до 41 где нет jit, и на самой 41. В обоих случаях работают ? Если нет, то это о том, о чем говорил.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KaZaK
сообщение 19.3.2019, 13:06
Сообщение #666


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



Добрый день!

Добрался до функций работы с картинками)

и первая затырка...(
Код

-- Дергание картинки
local address, width, height, length = getimage(826, 924, 833, 931, D.windowClient.handle[1][1]);
log(address, width, height, length);
saveimage(address, [[глаз.png]]);
deleteimage(address);


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

Что не так делаю?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 19.3.2019, 13:14
Сообщение #667


***********

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



Варианта всего два:
1) Ошибочно указан хендл.
2) Снятие изображение с этого окна по хендлу невозможно.
Тест на оба варианта один:
Нажимаете кнопку F в верхней части интерфейса пилота, открываете log, с активным пилотом нажимаете Ctrl+A на нужное вам окно.
Если получаете черный квадрат в окне F, то беда, работать не будет.
Если изображение снимаете, а в лог пишется цепочка окон, то это значит вам нужно снимать изобржение с родительского окна, насколько окно выше должно быть можно понять из лога.


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


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



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

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

а еще можно пояснить что означают параметры ширина высота и длинна стринга?! (особенно последнее, первые два вроде понятны))

еще дополню: функция findcolor() работает на незакрытом окне точно! а getimage не хочет(
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KaZaK
сообщение 19.3.2019, 15:53
Сообщение #669


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



Немного поэксперементировал:

Код

local address, width, height, length = getimage(826, 924, 833, 931, 2);


в таком формате сохраняет картинку, с такими параметрами в логе:
16:36:22 1 (Проба работа с изображением.lua, 0): 139399200 1921 1018 5764

меня смущает ширина и высота захваченного - это соответствует полному размеру окна в котором происходит захват! должен быть размер 8х8!!!
ИИИии к тому же картинка сохраняется с явным смещением по X и Y, те часть картинки из окна и остальное все черным залито!

короче не понятно, то ли лаг с сохранением то ли с захватом?!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KaZaK
сообщение 19.3.2019, 21:40
Сообщение #670


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



Добрый день
Цитата(DarkMaster @ 14.3.2019, 15:14) *

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


Есть ссылка на мануал по компиляции для lua?? желательно на русском...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 20.3.2019, 3:26
Сообщение #671


**********

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



Цитата
меня смущает ширина и высота захваченного - это соответствует полному размеру окна в котором происходит захват!

Это баг, про который я писал ещё 29 декабря. Кнайт куда-то пропал, так что исправлять не кому.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 20.3.2019, 16:02
Сообщение #672


*******

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



Цитата
меня смущает ширина и высота захваченного - это соответствует полному размеру окна в котором происходит захват!
У меня такое было, просто один в один и скрин даже не делался когда работал с дочерним окном. Стал работать с предком и проблема исчезла, координаты естественно все поменялись.


Ну а если совсем не лечится, можно использовать абсолютные координаты, конечно тогда уже нельзя будет искать в перекрытом окне.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KaZaK
сообщение 21.3.2019, 9:12
Сообщение #673


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



Добрый день

Цитата(sutra @ 20.3.2019, 17:02) *

Стал работать с предком и проблема исчезла, координаты естественно все поменялись.


А пояснить можно, что значит "предком"?!)

Парни, кто нибудь пробовал корутины делать в UOPilot???

Пример простой корутины
Код

--lua

function CO()
    log("Старт дополнительной нити!");

    for i = 1, 5 do
        log("Co: ", i);
        log(coroutine.yield());
    end
    log("Завершение дополнительной нити!")
end

local co = coroutine.create(CO);

log(coroutine.status(co));
log(type(co));

for i = 1, 10 do
    log("Основная нить!");
    log(coroutine.resume(co));
end

log("Завершение скрипта!");

end_script ()


лог-отчет прекращается на первой передаче нити. а пилот ведет себя так, как будто скрипт завершен??!

поделитесь опытом))
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KaZaK
сообщение 21.3.2019, 14:55
Сообщение #674


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



Удалось собрать чистый экзешник luajit
на нем пример с корутиной прошел чисто!!!

как то можно входящий в комплект пилота lua.dll заменить на другой?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.3.2019, 4:38
Сообщение #675


***********

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



Цитата
как то можно входящий в комплект пилота lua.dll заменить на другой?

Да, а смысл? Ну ладно сейчас на статке скомпилил rina84, а так что нового? корутины там не работали разве?


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


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



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

Рабочий код с coroutine

Код

local function CO(x)
    log("Start additional thread!");

    for i = 1, 5 do
        log("Co: ", x, i);
        log(coroutine.yield(i));
    end
    log("Stop additional thread!")
end

log("Start script!");

local co = coroutine.create(CO);

log(coroutine.status(co));
log(type(co));

for i = 1, 10 do
    log("Main thread!", i);
    coroutine.resume(co, i);
end

log("Stop script!");


Вот это запускал - работает, только log на print заменил
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.3.2019, 8:12
Сообщение #677


***********

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



Цитата
Корутины почему то не работают... (

с консоли работают?


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


**

Neophyte
Сообщений: 28
Регистрация: 10.2.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.228



Цитата
с консоли работают?


с консоли которую я скомпилировал сам из базовой сборки LuaJIT работает.

а можно запустить консоль в пилоте как то??! О_о
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 15.6.2019, 5:41
Сообщение #679


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Как это записать на луа, если открыть файл нашел то с остальным возникают вопросы: это если элементы отделены табуляцией и обращение к конкретным элементам
Код

// Пример 2
// если в файле элементы отделены табуляцией
load_array %arr D:\UOPilot\mas.txt
log %arr [1 1]   // первая элемент первой строки
log %arr [1 2]   // второй элемент первой строки
log %arr [2 1]   // первая элемент второй строки
end_script

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 15.6.2019, 21:02
Сообщение #680


**********

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



Цитата
Как это записать на луа

Код
--lua
local path_to_file=[[C:\123.txt]]    -- путь к файлу
local arr={}   -- массив

log "clear"
log "mode compact"
function loadarray(array, path)
    local file= io.open(path, "r")
    if  file then
        for v in file:lines() do
            array[#array+1]={}
            for k, v1 in string.gmatch(v,"[^\t]+") do
                table.insert(array[#array], k)
            end
        end
        file:close()
        return 1
    end
    return nil
end

if loadarray(arr, path_to_file) then    -- если функция выполнена успешно
   log (arr[1][1])
else
   log ("Файл не найден")
end

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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