Snusmumriken
Pavel
Добрый день! Можно ли достучаться до переменных, объявленных в test.lua при таком вызове? pcall("dofile", "./test.lua") Если без pcall(), то все нормально.
Snusmumriken
Если объявлены глобально, оба случая норм. Но глобальные переменные это не очень хорошо, попробуй локальные.
Snusmumriken
Ещё, dofile безусловно читает с диска и выполняет скрипт. Require в большей части случаев эффективнее.
Snusmumriken
Нафига явные булы в луа(5.x) вкрутили? Походу Иерусалимского опросить треба
Открою очень страшную тайну, только по секрету. Это называется "синдром утёнка": первое что ты увидел, кажется самым здоровским, логичным и правильным, а новшества начинают вызывать отторжение: "да зачем, да почему, да нафига вообще оно надо, только бобикам каким-то новым модным". Вторая тайна: у меня такое же отношение к значительной части новшеств 5.2, 5.3 и 5.4. Но я это у себя отслеживаю, и отдаю себе отчёт: "это говорит моя внутренняя утка, на самом деле это довольно удобные и многократно обоснованные новшества, нельзя быть вечно застрявшим в 2005 году, всё что не развивается — мертво".
Snusmumriken
Я не понимаю, зачем нужно разделение на int и float (только чтобы в int можно было хранить большие значения?), зачем убрали fenv (проблемы совместимости), почему pack и unpack отправили в table.
Snusmumriken
Вот именно.
Snusmumriken
Впрочем, мне с luajit-ffi на это с высокой колокольни, у меня есть вплоть до ULL и чистых массивов/сишных структур. Проблемы начинаются когда ты пишешь кроссплатформу.
Snusmumriken
Красиво жить не запретишь ))
Snusmumriken
Да, привет @Akylaa1974t, как настроение?
Luсky
луажит нам строить и жить помогает
Snusmumriken
Aaron привет! Как дела?
Anonymous
Это своеобразная проверка на ботов?
Snusmumriken
Почему своеобразная, самая обычная
Anonymous
Интересная вакансия "Программист LUA/SQL/ООП (на проект, удаленно)" — https://hh.ru/vacancy/42229744?from=share_android Отправлено с помощью мобильного приложения hh https://hh.ru/mobile?from=share_android
Anonymous
Уже пора заводить чатик или канал с вакансиями для луашников)
Anonymous
Здравствуйте кто то занимался со скриптами Roblox
Anonymous
Мне просто попросили помочь одному парню он проходит курс по Роблокс.Если кто то может выделить время я оставлю его проект.
Artem
всем привет, подскажите как правильно отправить несколько cookies в ssl.https.request
Aydar
всем привет, подскажите как правильно отправить несколько cookies в ssl.https.request
В таблице запроса есть таблица headers куки надо туда прописывать headers = {["Cookie"] = "key=value; key2=value2"} Вроде так
Snusmumriken
Во-первых, забыл квадратные скобки вокруг строковых клюей, во-вторых не сработает, таблицы не могут содержать одинаковых ключей, хы.
Snusmumriken
А кстати, кто отправляет кукисы-то?
Snusmumriken
Set-Cookie — это серверный заголовок. Клиенты его не используют, они имеют свой собственный заголовок Cookie, в котором все кукисы данного хоста свалены в кучу: Cookie: name=value; name2=value2; name3=value3
Snusmumriken
А вот чтобы прочитать несколько сеткук, нам надо немножко модифицировать socket.http, чтобы возвращало массив, или парсило несколько кукисов в такую же кучу.
Snusmumriken
А если @cassej пишет сервер, то нефиг использовать https.request, это же не https.response ))
Snusmumriken
Что именно и для чего?
Snusmumriken
Единственный рабочий вариант получить несколько кук от сервера — слегка модифицировать вот эту функцию в socket.http.
Artem
мне нужно отправить запрос на сервер, добавив к нему авторизационные куки
Snusmumriken
Если так, то просто посылай заголовок Cookie с кучей кук. Set-Cookie, с клиентской стороны — только для чтения. Ты же не можешь скомандовать серверу: "запомни мою куку, засранец". Он вообще не в курсе о чём ты, со своими сеткуками.
Snusmumriken
Нормас
Alexey
мне нужно отправить запрос на сервер, добавив к нему авторизационные куки
Можно curl использовать. Там можно просто все куки хранить в файле например и его использовать для сессий
Artem
Можно curl использовать. Там можно просто все куки хранить в файле например и его использовать для сессий
это менее удобно, у меня около 5-6 запросов подряд и мне проще куки хранить в процессе, так как по прохождению всех они мне больше не нужны
Olegator
Не первый раз уже замечаю, что Вы, г-н Админ, пишете подобное новым юзерам. Не проще ли написать бота для подобного?
Denis
Всем привет! Подскажите, как можно в Lua сделать проверку на то что строка не равна несколько значениям? if event.log.remote_user ~= FOO|BAR then ......
Nikolay
Можно через таблицу со значениями, и сделать функцию, которая будет проходится по этой таблице function includes(tbl, item)     for _, value in ipairs(tbl) do         if value == item then return true end     end end print(includes({ 'foo', 'bar' }, event.log.remote_user)
Nikolay
Ах да, забыл
Nikolay
Точно, спасибо!
Denis
Спасибо
Olegator
Обычный vps
️ ️️
можно ли както изменить metatable для строки локально (в функции например)? чтобы можно было индексировать строку внутрии функции или хотябы модуля local str = 'qwe' print(str[2]) через getmetatable('').__index меняется везде
Snusmumriken
Не а ))
Snusmumriken
Строковая метатаблица распространяется на весь луа-стейт.
Snusmumriken
можно ли както изменить metatable для строки локально (в функции например)? чтобы можно было индексировать строку внутрии функции или хотябы модуля local str = 'qwe' print(str[2]) через getmetatable('').__index меняется везде
А что ты хочешь? Чтобы условно только в твоей библиотеке у строк цифровая индексация была как у массивов, но чтобы всё остальное было таким же как было?
️ ️️
Строковая метатаблица распространяется на весь луа-стейт.
а может можно както сделать свой тип унаследованый от строки?
Snusmumriken
Если есть ffi — можешь запилить настоящие мутабельные сишные строки-массивы.
Snusmumriken
да, типа того
Ну типа local mystring = {} mystring.__index = mystring function mystring:new(str) return setmetatable({data = str}, self) end for k, v in pairs(string) do mystring[k] = function(self, ...) return v(self.data, ...) end end setmetatable(mystring, {__call = mystring.new}) Дальше навешиваешь свои функции. Но заранее предупреждаю, что: 1. Возвращаемые данные будут нормальными строками, как у оригинальных функций; 2. Для каждой строки будет создаваться прокси-табличка.
Snusmumriken
3. Если ты делаешь конфиг для своего личного вима, можешь смело менять строковую метатабличку. Хотя вим может начать работать несколько медленнее: __index-таблица сильно быстрее __index-функции.
️ ️️
так оно по всему виму юзается и затрагивает другие плагины
Snusmumriken
Не думаю что они сломаются с добавления __index'у дополнительной проверки на тип ключа. Твой личный плагин будет делать для тебя плюхи, остальные останутся в целом незатронутыми, потому что они, как нормальные люди — не делали бяк. С третьей стороны, зачем именно массиво-индексация? Да, str[2] это немножко короче чем str:sub(2, 2), но принципиальная разница? Они даже выглядят примерно одинаково.
️ ️️
ну я сделал так но хотелось бы сделать это локально
Snusmumriken
Можешь. А можешь вместо str[index] делать str:sub(index, index). У строк есть методы. Метатаблица ровно за этим и нужна.
️ ️️
я это делаю чтоб получилась красивая функция но чтото чтоб она получилась нужно много чего некрасивого делать
Snusmumriken
То есть, ты можешь писать как string.sub(str, i, i), так и str:sub(i, i), и второй очень похож на доступ как с массивом.
Snusmumriken
function string:c(i) return self:sub(i, i) end ... return (x:c(1), y:c(1), x:c(2), y:c(2)) Сомнительно что какой-то из модулей добавляет строкам функцию c, и тем более её использует ))
Snusmumriken
Гы, манки-патчинг. И метатаблица цела.
️ ️️
это надо c и для масивов делать
Snusmumriken
Оооо
️ ️️
что О_о
Snusmumriken
local _z = {} function _z.string(v, i) return tostring(v):sub(i, i) end function _z.table(v, i) return v[i] end setmetatable(_z, {__index = function() return _z.string end}) function zip(x, y) if type(x) ~= 'table' then y = tostring(y) end local tx, ty = _z[type(x)], _z[type(y)] return tx(x, 1), ty(y, 1), tx(x, 2), ty(y, 2) end
️ ️️
Snusmumriken
Но в целом, использовать один и тот же зип для посимвольной и/или табличной фигни одновременно это имхо стрёмна.
Snusmumriken
Но вообще, на табличках можно сделать довольно много таких хаков.
️ ️️
ну на вимскрипте оно число индексирует как символ строки let var = 1488 echo var[1] ; 4 а я эту функцию на луа переписываю
Snusmumriken
То есть оно даже числа как бы преобразует в строки?
️ ️️
да :^)
Snusmumriken
Его же можно использовать как дефолтный, если не нашлось другого.
️ ️️
входные данные довольно таки захардкожены и можно сделать чуть проще потом покажу как сделал
Snusmumriken
Я уже добавил дефольный с преобразованием в строку и извлечением нужного символа )) Костыли-и-и, зато покрыты ВСЕ типы.
Snusmumriken
А, блин, потёр. Ну хрен с ним. Кароч вот тебе универсальный ленивый (в плане написания) извлекатель индексов из чего угодно, щастье радоздь.