Vlad
oh no, my function declaration looks like it's rust
Snusmumriken
я понял почему вам всё ок с путями, скорее всего вы юзаете винду и путь относителен к файлу процесса...
Путь относителен только к файлу процесса. Но если ты запускаешь скрипт, находящийся далеко от процесса, то усё ломается.
Snusmumriken
Всякие питоны — автоматически делают относительно ещё и запускаемого скрипта. В луях это надо прописывать отдельно.
Михаил
а как так-то?
Snusmumriken
Например, вот шляпа которая делает относительно ещё и запускаемого скрипта. https://pastebin.com/cRB6B1Mn
Михаил
он получает абсолютные пути к исполняемому файлу и от них всё начинается
Snusmumriken
он получает абсолютные пути к исполняемому файлу и от них всё начинается
Исполняемый файл и запускаемый скрипт — это разные штучки.
Михаил
Snusmumriken
А в лялексе — там же ось как макаронная фабрика. Там скрипты где только ни лежат.
Snusmumriken
Там уже целенаправленно приходится учить луашку искать относительно запускаемого скрипта, иначе всё придётся распихивать по путям либ, что совершенно не нужно. И да, с абсолютными путями.
Михаил
Там уже целенаправленно приходится учить луашку искать относительно запускаемого скрипта, иначе всё придётся распихивать по путям либ, что совершенно не нужно. И да, с абсолютными путями.
вот скажи, имеет смысл делать луа многопоточным или надо просто другой яп брать? мне кажется, имеет только я не знаю как лучше сделать
Михаил
gc нужен многопоточный
Snusmumriken
gc нужен многопоточный
Задолбаешься по ряду причин. В луа есть корутины. Есть возможность открыть соседний стейт и общаться с ним сообщеньками.
Михаил
Задолбаешься по ряду причин. В луа есть корутины. Есть возможность открыть соседний стейт и общаться с ним сообщеньками.
нужна конкретно возможность в одном луашном треде открыть непрерываемую сишную функцию которая будет исполнятьчя минуту, и в это время что-то выполнять на втором треде
Snusmumriken
нужна конкретно возможность в одном луашном треде открыть непрерываемую сишную функцию которая будет исполнятьчя минуту, и в это время что-то выполнять на втором треде
Постоянно так делаю с lanes. В ланес открываем блокирующий поток, отправляем ему фигню на пережёвывание, в основном продолжаем работать.
Domka
привет
Domka
как у вас дела?
Hello, World! 🎄
Пока нормально
Михаил
как у вас дела?
прив, недавно исправил ошибку в ЯП своем, которая была с самого первого коммита и ломала goto
Михаил
теперь можно тащить в движок
Hello, World! 🎄
Всем привет! Подскажите сайты где можно брать задачи по программированию для улучшения понимания синтаксиса языка и прокачки в алгоритмах. К примеру leet code, проект эйлера, ...
Snusmumriken
Ля, а реальные задачки — не?
Hello, World! 🎄
Ля, а реальные задачки — не?
У меня уже есть на github проекты
Hello, World! 🎄
Мне просто нужно вспомнить синтаксис, улучшить навыки по алгоритмам быстренько
Сергей
codeforces.com
ещё atcoder.jp есть
Сергей
там тоже задачки на подумать есть
Hello, World! 🎄
Михаил
OK Successfully built LuaJIT make[1]: Leaving directory '/s/Projects/LuaJIT/src' ==== Successfully built LuaJIT 2.1 ==== Michael@hpv15:/s/Projects/LuaJIT> cd src Michael@hpv15:/s/Projects/LuaJIT/src> objdump -p libluajit. libluajit.a libluajit.so Michael@hpv15:/s/Projects/LuaJIT/src> objdump -p libluajit.so | grep SONAME SONAME libluajit-5.1.so.2 по какой причине луажит собирает libluajit.so вместо libluajit-5.1.so.2 и создания алиаса на него? прога линкуется к этой либе и не может ее использовать, а чтобы использовать нужен именно файл с именем libluajit-5.1.so.2 это лютая дичь
Михаил
Domka
какой провославный шрифт однако
Domka
я только сейчас заметил
Алёша
Привет, такой вопрос есть. Понадобился мне как то автокликер с возможностью работы с пикселями на экране(узнать цвет конкретного пикселя, найти все пиксели конкретного цвета и тп). Посмотрел я ахк и понял что я такое не осилю, ибо синтаксис для меня довольно сложный, и даже чуток почитав про принцип работы я ни черта не понял. Да и скрипты на ахк для меня почти не читаемы. Вспомнил про старый добрый clickermann, полез ковыряться в него. Через 10 палок, 5 костылей и немного мата удалось родить кусок нужного мне скрипта, но возникла проблема что даже этот кусок работает ооочень медленно. Он выполняется 2-3 раза в секунду, а мне надо хотя бы 30. Так вот я и задумался, а нету ли где то в недрах инета нечто подобного на ахк, но с использованием луашки? Ну или может есть какой гайд и парочка либ чтобы самому написать скрипт автокликера на луашке?
Snusmumriken
Привет, такой вопрос есть. Понадобился мне как то автокликер с возможностью работы с пикселями на экране(узнать цвет конкретного пикселя, найти все пиксели конкретного цвета и тп). Посмотрел я ахк и понял что я такое не осилю, ибо синтаксис для меня довольно сложный, и даже чуток почитав про принцип работы я ни черта не понял. Да и скрипты на ахк для меня почти не читаемы. Вспомнил про старый добрый clickermann, полез ковыряться в него. Через 10 палок, 5 костылей и немного мата удалось родить кусок нужного мне скрипта, но возникла проблема что даже этот кусок работает ооочень медленно. Он выполняется 2-3 раза в секунду, а мне надо хотя бы 30. Так вот я и задумался, а нету ли где то в недрах инета нечто подобного на ахк, но с использованием луашки? Ну или может есть какой гайд и парочка либ чтобы самому написать скрипт автокликера на луашке?
Можно оптимизировать твой код кликермана или ahk до 30 кликов/сек.
Алёша
Snusmumriken
Как на кликермане оптимизировать можно?
Ну что ты там кликаешь? По какому принципу?
Snusmumriken
Если твой кликер это просто "нажать-отпустить мышку" — то 30 раз в секунду выдаст любой кликерман. То что скрипт выполняется 2-3 раза в секунду — это ты переусложнил. Что ты там сделал?
Алёша
Щас попробую обьяснить
Snusmumriken
Щас попробую обьяснить
Дай угадаю, цепляешься за пиксели на экране? Много раз?
Алёша
Имеется подобная фигня, красный бар катается туда/обратно по чёрному, а синяя фигня тоже рандомно дёргается по чёрному бару. Задача - удержать красный бар на синей метке. Управление простое, мышь отпущена - красный бар едет влево, мышь нажата - красный бар едет вправо. Так вот, я беру скрин размером 777 на 1, то бишь просто полосу в 1 пиксель шириной в чёрный бар. Из за особенностей красного бара в моей ситуации(он имеет прозрачность и меняет цвет в процессе) пришлось городить огороды. Первый цикл, начинает с левого края и идёт по пикселю в право. Как только цвет пикселя будет отличен от чёрного то позиция запоминается и цикл заканчивается Второй цикл, начинает с запомненной позиции первого и идёт по пикселю вправо до тех пор пока цвет не станет чёрный, позиция запоминается и цикл заканчивается После чего идёт условие, если расстояние от первой точки до второй слишком мало(определили синюю метку а не красный бар) то эти два цикла начинаются заново, но уже со второй запомненной позиции После того как всё таки определили границы и положение красного бара идёт цикл который просто топает слева направо и ищет цвет, который соответствует синей метке После чего простое условие Если середина красного бара левее метки то нажимаем мышку, если же правее то отпускаем
Алёша
Нагородил конечно
Алёша
Но как получилось
Snusmumriken
О, я вполне себе угадал.
Алёша
Я просто не знаю как можно оптимизировать
Алёша
К тому же в такой ситуации, что красный бар по конкретному цвету определить почти нереально
Snusmumriken
Так вот, операции над пикселями это очень долго и очень дорого. Ты не получишь прибавки скорости даже если напишешь "кликер на ассемблере".
Snusmumriken
Если ты проверяешь отдельные пиксели 777 раз — поздравляю, твоя программа будет работать 2-3 раза в секунду в лучшем случае.
Алёша
А как поступить
Snusmumriken
Придумывать другие варианты, за что можно зацепиться.
Алёша
Зацепиться больше не за что, как назло и чёрный бар и красный имкют прозрачность, смешиваются друг с другом и с фоном
Snusmumriken
Вкратце: чтобы получить ~20-30 фпс, нужна одна проверка пикселей за всё исполнение скрипта. В идеале — одной командой извлечь целую полоску экрана сразу в массив, и уже ходить по массиву.
Snusmumriken
Надо посмотреть.
Snusmumriken
AHK точно может.
Алёша
Там насколько я знаю есть функция поиска конкретного цвета, отдаёт массив с коордами всех пикселей в области с таким цветом, но она работает как то максимально непонятно и сыпет ошибками фиг пойми с чего
Алёша
А вот конкретно функции определения всех пикселей в области и сования их в массив я не видел
Алёша
AHK точно может.
Да срал я на него, пусть он крутой и быстрый, но синтаксис ужас, нет желания даже лезть изучать
Snusmumriken
Алёша
Я вон с кликерманом намучался, хотя он попонятнее будет
Snusmumriken
Аналогов нет. Есть мои секретные разработки сидящие в замороженном состоянии.
Михаил
как вам мои type hints
Михаил
Алёша
Я написал по этому поводу в офф группу кликермана в вк, там на удивление ещё есть живые люди, может что и подскажут
Михаил
я собираюсь делать еще опцию --typedbg которая будет проверять входящие и исходящие типы каждый вызов функции
Михаил
практично и совместимо с Lua
Алёша
Я написал по этому поводу в офф группу кликермана в вк, там на удивление ещё есть живые люди, может что и подскажут
А пока у меня родился только один вариант, увеличить шаг, топать не по одному пикселю а по 4 например. Один фиг скрипт старается на синей метке держать центр красного бара. Так что если он провафляется в размере на несколько пикселей то думаю не страшно
Алёша
Да, как минимум это. Какая ширина у синего бара в пикселях?
Ох, не помню честно, что то в районе 20 наверное конкретного цвета, и по краям пару пикселей какого то высера божественного творения другого цвета
Snusmumriken
Ну не знаю, getpixel в ловке вроде пошустрее работает
getpixel в ловке работает с куском массива пикселей в своей оперативке. Её это не касается.