Snusmumriken
Внутри? Где внутри? Грубо говоря, lua_call положит на стек столько возвращаемых значений, сколько я попрошу (если функция ничего не вернула, когда должна была, то положит NILы). И вопрос такой: нужно ли мое стек от этих NILов чистить? Или я могу просто проверить, что если на стеке не то, что мне нужно (lua_isnumber, например), то просто забить?
> Внутри? Где внутри? Внутри стека. > Грубо говоря, lua_call положит на стек столько возвращаемых значений, сколько я попрош у (если функция ничего не вернула, когда должна была, то положит NILы). Вроде того. > И вопрос такой: нужно ли мое стек от этих NILов чистить? Нет, за редким исключением. > Что означает очищает функцию? Что делает lua_call? (подсказка: запускает функцию). Где лежит ссылка на функцию? (подсказка: в стеке). Откуда lua_call вычищает функцию? (подсказка: из стека). Во время сишного программирования, тебе крайне желательна какая-нибудь функция, которая умеет печатать содержимое стека.
Snusmumriken
Например вот такая: void luax_printstack (lua_State *L) { int top=lua_gettop(L); for (int i=1; i <= top; i++) { printf("%d\t%s\t", i, luaL_typename(L,i)); switch (lua_type(L, i)) { case LUA_TNUMBER: printf("%g\n",lua_tonumber(L,i)); break; case LUA_TSTRING: printf("%s\n",lua_tostring(L,i)); break; case LUA_TBOOLEAN: printf("%s\n", (lua_toboolean(L, i) ? "true" : "false")); break; case LUA_TNIL: printf("%s\n", "nil"); break; default: printf("%p\n",lua_topointer(L,i)); break; } } } И ты такой берёшь, и выводишь стек в разные моменты жизнедеятельности.
Eduard
Понял, спасибо!
Snusmumriken
Правильно, если ты их ожидаешь — они остаются, и их надо чистить. lua_pop(L, n);
Eduard
Не может ли произойти переполнение стека?
Snusmumriken
Может ))
Eduard
Т.е., тогда правильно - делать lua_pop столько раз, сколько возвращаемых значений указано в lua_pcall ?
Eduard
так и думал, спасибо
Snusmumriken
Если ты делаешь биндинг для луёвой либы, выдавая луа кучу сишных функций чтобы луа их дёргала — там все очистки стеков происходят автоматом.
Snusmumriken
Луа вызвала функцию, что-то ей передала, что-то вернула — стек "очистился" (точнее, функция закончила своё исполнение, следующие будут со свежим стеком).
Eduard
ага, ну а в случае, когда наоборот - я зову lua из Си, тогда надо чистить
Snusmumriken
Ну, луа же не знает когда ты закончил работать с её стеком с сишной стороны ))
Snusmumriken
Вдруг ты полученные результаты планируешь передавать в следующую функцию, например.
Snusmumriken
Карочи, если что-то непонятно — выводи содержимое стека. Очень полезное занятие. Точно так же, если в луа тебе что-то непонятно — выводи содержимое таблиц, входные и выходные данные функций и промежуточную фигню.
Eduard
Карочи, если что-то непонятно — выводи содержимое стека. Очень полезное занятие. Точно так же, если в луа тебе что-то непонятно — выводи содержимое таблиц, входные и выходные данные функций и промежуточную фигню.
да, я так и сделал, с помощью вашей функции. И это прояснило ситуацию - количество NILов всё время росло, т.к. я делал lua_pop только тогда, когда lua_isnumber(L, -1) == true, а Lua скрипт не всегда что-то возвращал, и в итоге на стеке копились NILы
Stas
@Snusmumriken , может бота поставим, а?
LISP
@Snusmumriken
LISP
Они просто на рандом кнопки жмут. Надо капчу поставить и всё
Hello, World! 🎄
Они просто на рандом кнопки жмут. Надо капчу поставить и всё
Кстати, в других группа тоже проспамели щас эти боты
LISP
Кстати, в других группа тоже проспамели щас эти боты
Знаю. Я как раз пишу бота для группы. Эти заразы заставили меня юзнуть либо кубер, либо джейлы
Hello, World! 🎄
Hello, World! 🎄
Ну я на python под телегу делал ботов обычных, не юзер боты.
Ну один раз по приколу получил id группы и сделал спам бота :)
Mikhail
Хм. Боты с OCR?
Hello, World! 🎄
Когда делать нечего больше
НУ да, бот просто от 0 до бесконечности считал и выводил в группу числа
Mikhail
НУ да, бот просто от 0 до бесконечности считал и выводил в группу числа
Нужен бот с ии, который будет отвечать на луа вопросы и давать ссылки по теме
Mikhail
Тут классный сайт попался по изучению глубоко луа и др яз.
Mikhail
Хотел порекомендовать, но там проверяют твои задания люди. Менторы. И... Я застрял. Жду ментора недели.ю.
LISP
Чего?
Mikhail
Там супер автоматизированных получение и отправка тестов... Но дальше человеческий фактор
LISP
Hello, World! 🎄
просто гуглить и выдавать ссылки
Mikhail
Можно
Если не знает ответ, то пинает Снусма
Mikhail
просто гуглить и выдавать ссылки
Не. Гуглить все могут. Надо вникать в контекст. Типа. 😏
Hello, World! 🎄
Не. Гуглить все могут. Надо вникать в контекст. Типа. 😏
Тогда нужно машинное обучение, но лучше перейти в флудилку
Mikhail
Увы.
Mikhail
Напишу из дома.
Leon174
Ок
Snusmumriken
Если не знает ответ, то пинает Снусма
Вы хотите сделать автоматическую пиналку Снуса?
Mikhail
Отпинывалку в нужном направлении 😅
Snusmumriken
Автоматические пиналки живых людей это жестоко. А сотрудники техподдержки знают на что идут, и их пинают только с десяти до восьми.
Snusmumriken
+
Ну давай, попробуй, пиналка окажется в бане быстрее чем отправит второе сообщение ))
Snusmumriken
Как сотрудник админ и бывший саппорт говорю: ахахахахаха
Тебе за это платили деньги и ты мог уволиться.
fgntfg
Тебе за это платили деньги и ты мог уволиться.
Работать бесплатно я не рекомендую
fgntfg
Пробовал
fgntfg
Денег мало становится
Mikhail
Вот, я обещал сайт с заданиями и проверками для изучения в тч LUA https://exercism.io
Mikhail
не... новое у них - это режим research но там нет Lua пока что
Leon174
Кому интересно и кто не в курсе, кроме exercism для lua еще есть codewars и codility. Это бы в луашный закреп надо вынести, но его опять нет.
Arslan
Неужели бот сработал
Arslan
А. Это ты снус
Mikhail
Кому интересно и кто не в курсе, кроме exercism для lua еще есть codewars и codility. Это бы в луашный закреп надо вынести, но его опять нет.
согласен. но кодворз мне не оч понравился. С другой стороны, если чел пройдет курс, то ты уже знаешь его относительный уровень.
Snusmumriken
Ага
Rustam
Привет я новичок помогите кто знает как в ankulua прокрутить страницу скиньте код
Rustam
Ау
Rustam
Набросте кусок кода с примером если возможно
Arslan
А если серьезно - тут не принято выражаться матом
Egor
сну спит
fgntfg
Ау
swipe(Location(100, 200), Location(600, 200))
fgntfg
Ребята, если вы не можете помочь, то, хотя-бы не ругайтесь зря.
Rustam
Похоже что здесь никто не сможет мне помощь а жаль
Lucky
Rustam
Если бы я хотел купить скрипт я бы не писал в чате и не просил бы помощи
Rustam
Просто есть игра надо ее автоматизировать
Olegator
Если бы я хотел купить скрипт я бы не писал в чате и не просил бы помощи
Друг, помочь с существующим скриптом, в котором ты что то не понимаешь или хочешь получить, но не получается - это одно, тут тебе могут подсказать и помочь. Писать скрипт за тебя - это уже работа.
Rustam
Нужено в цикле автоматизировать нажатие на img1 задержка 2 сек нажатие img 2 потом прокрутка страницы если нет img1 прокрутка продолжается
Rustam
Сейчас скину набросок
Olegator
https://pastebin.com/ Код лучше кидать через подобные сайты. Читать его текстом в сообщение не очень удобно.
Rustam
Скинул скриншот