Elias
Не, лучше вручную считать, на бумаге
Snusmumriken
Лучше двигать камни
Snusmumriken
Я в общем-то про это
Anonymous
Почему перфокарты. Вот же в винде давно есть https://blogs.msdn.microsoft.com/larryosterman/2005/01/05/why-does-win32-even-have-fibers/
Anonymous
Я сам сталкивался , когда динамик скул выполнялся в отдельной фибре и терял родительский скоп
Anonymous
+ есть конференция с гвидо ван россумом, когда он обьясняет какими костылями раньше делались фибры/коротины/микротреды
Anonymous
И он сам советует в питоне использовать встроенные (написанные им) фибры, а не либув. Если я правильно помню
Родион
Кто какой движок использует и почему именно его? Просто интересно что в этом чате в почете)
Tverd
Корона ))) из коробки есть многие вещи + рекламных сетей много и легко собирать под основные мобильники
love2d, но у меня ничего завершённого на нём нет. Ещё когда-то Minetest ковырял для интереса. Первый опыт использования Lua был.
grinchfox
Кто какой движок использует и почему именно его? Просто интересно что в этом чате в почете)
под мультиплеерные игры ( в осномном шутеры от первого лица ) можно использовать Garry's Mod там сразу тонна готового контента, более-менее вменяемый API и готовая база игроков
Родион
Что значит готовая база игроков?
grinchfox
Что значит готовая база игроков?
всмысле что есть уже тонна школоты, которая купиля гмод и ей достаточно просто присоедениться к серверу с твоей игрой
grinchfox
ну, там игровые режимы контроллируют все, это больше похоже на большую игровую платформу на движке Source чем на игру с разными режимами игры
grinchfox
по мне так аудитория везде такая если говорить про базу игроков. Все в основном просто зависит от темы, сеттинга и т.д.
grinchfox
это зависит от владельцев сервера, а не от разрабов или от самих гейммодов
grinchfox
grinchfox
но да, всякие школоло, которые хостят DarkRP постоянно продают админки и ведут себя как хуи
grinchfox
ну.. не совсем
grinchfox
я просто много всякой фигни делал в гмоде
grinchfox
но да, иногда я оставлял его в афк
Elias
Вспомнилось правило 10к часов, которое говорит, что чтобы достичь уровня мирового эксперта, нужно прокачивать скилл ~10к часов 😏
grinchfox
DarkRP на самом деле очень веселый
grinchfox
Source на MacOS и Linux вообще как-то неочень
grinchfox
так гарри уже давно гмодом не занимается
grinchfox
у него команда из всяких Виллоксов это делает
grinchfox
grinchfox
grinchfox
Полицейский участок всегда горит
RE
камрады привет тут же про луа разговор?
RE
ктонить может объяснить это: > = string.find("qqqqqqq","z") nil > = string.find("qqqqqqq","-") nil > = string.find("qqqqqqq","--") 1 0 > = string.find("qqqqqqq","---") nil > = string.find("qqqqqqq","----") 1 0
Snusmumriken
- - специальный символ.
kazgeek
http://lua-users.org/wiki/PatternsTutorial
RE
да, это комментарий.. его както можно экранировать?
Snusmumriken
Можно. (%-%-.-\n)
RE
Можно. (%-%-.-\n)
спасибо вроде работает.
RE
хотя похоже, что для find можно было б просто убрать четный "-"
Snusmumriken
Snusmumriken
Это строка с кодом, если что, поэтому когда её печатаем - выводится код с каментами.
RE
👍
Snusmumriken
Карочи, если ты пытаешься найти какой-то специальный символ - экранируй его. Всякие кавычки, и слеши - экранируются обратным слешем: str:find("abc\"def\\") будет искать [abc"def\]. И им же вставляются специальные символы, типа \n. Всякие особые символы регулярных выражений экранируются символом %. Если ты хочешь найти позицию строки $%^&.-+*, тебе придётся забить набор символов: str:find("%$%%%^%&%.%-%+%*")
Argent
Да, про экранирование забыли.
RE
та не.. я читаю serial и у меня в конце данных есть строка с минусами - ну типа конец блока данных. вот я и хочу на нее проверку делать.
Snusmumriken
Сколько минусов? ))
Snusmumriken
if str:find(('%-'):rep(5)) then ... end
RE
ну я их там от фонаря написал.. и похоже мне просто можно один убрать и все ok
RE
if string.find(chain, "--------") ~= nil then
Snusmumriken
Ты на ESP-шке сидишь? )) Нет, это кривой способ, оно не найдёт тебе сами минусы )))
RE
вот это не срабатывало. все время был результат, а не nil потому что там четное кол-во - 8
RE
не.. ардуинка + openwrt -
Snusmumriken
Хе
Snusmumriken
Но всё равно это охрененно криво. Не пиши так. Делай то что ты точно знаешь что будет именно так, не полагайся на "неопределённое поведение" языка. А то прошивку сменишь - и все скрипты слетят, и ты так и не узнаешь что там такое и почему именно всё работает не так как надо.
Snusmumriken
Ищи уж конкретное количество конкретных символов, пожалуйста.
RE
тож верно.. я потом в прошиве все минусы на *** поменяю)
Snusmumriken
Это тоже специальный символ регулярок, с очень похожим смыслом на "-" )))
Snusmumriken
тож верно.. я потом в прошиве все минусы на *** поменяю)
Вставь в конец -- END OF SCRIPT и ищи его через string:find('END OF SCRIPT'). Не выпендривайся пока не изучишь, подводные камни не дремлют )))
RE
камрадос, подскажите еще по луа.. похоже последняя проблемка осталась.. система такая - к роутеру с openwrt по USB подключена ардуина. связь есть через Serial порт - /dev/ttyUSB0 после того как я записываю в порт нужный параметр, прошивка в ардуине начинает выводить некоторые данные. мне эти данные нужно выводить на веб страницу и эта задача уже почти сделана через JS + lua - на веб странице я нажимаю на кнопку - JS дергает lua скрипт по CGI - скрипт отправляет параметр в Serial и ждет вывод результата. есть проблема с чтением этого резалта. я читаю его так: rserial=io.open("/dev/ttyUSB0","r") f = true while f do chain = nil while chain==nil do chain=rserial:read(); rserial:flush() print(chain) if string.find(chain, "%-%-------") ~= nil then --print("!!!!!!!!!!!!!!") f = false end end end и вот с этой chain=rserial:read(); и есть вопрос. похоже io.read() ждет пока в считываемой строке не появится символ новой строки - то есть грубо говоря - Ентер. а в моем выводе из ардуины, в самом начале идет вывод в одну строку, типа: 1 2 3 4 5 ... и так может идти до 65 (это некий псевдо таймер, который нужен для работы) - эти цифры появляются примерно раз в секунду. и вот получается, что Lua скрипт не будет выводит эти цифры, потому что там не Ентера.
RE
уф.. дофига написал. короче мне надо как-то все таки выводить эти цифры в момент их появления в Serial
Revertron
Во-первых, зачем flush() при чтении?
RE
обнуляю считанную строку в буфере Serial. вообще хз - код скопирован с форума openwrt
RE
оно все вот так работает. только не отображает этих цифр которые в начале идут с периодом в секунду
RE
просто выводится все сразу.
RE
поменять прошивку в ардуине и добавить там после каждой цифры Ентер - не вариант увы
RE
вот тут https://stackoverflow.com/questions/25204242/how-to-read-from-a-serial-port-in-lua есть некоторое объяснение
RE
но у меня stty вариант не заработал
Snusmumriken
local function readScript(serial) local data = {} local chunk = serial:read(0); while chunk and not chunk:find("%-%-------") do print(chunk) data[#data + 1] = chunk chunk = serial:read(); end return table.concat(data) end local rserial=io.open("/dev/ttyUSB0","r") print(readScript(rserial)) Попробуй что-то такое. На самом деле, надо бы прочитать документацию по serial port. И, кстати, заценяй лаконичность.
RE
а есть такая дока? я только общий док по IO смог найти
Snusmumriken
Прошивка ардуины какая? NodeMCU?
RE
не самописная. это обычная микро
Snusmumriken
Ну, ты же на луа пишешь к ардуине : )
Snusmumriken
Или это роутер такой, ты на openwrt катаешь луа-модуль?
RE
кстати да - я еще проверял вот так chain=rserial:read(1); и выводилось все по одному символу по вертикали)
RE
к роутеру с openwrt по USB подключена ардуина. связь есть через Serial порт - /dev/ttyUSB0
RE
это значит что
RE
есть роутер с Openwrt - MR3020 в нем есть USB порт ардуина подключена к USB FTDI адаптеру, который подключен в этот порт
Snusmumriken
Карочи, дай название прошивки того, где ты гоняешь этот скрипт. Роутер?
RE
да сорян, забыл упомянуть про адаптер
RE
могу только дать название прошивки Openwrt
RE
CHAOS CALMER (15.05.1, r48532)
Snusmumriken
Ну на чём ты скрипт запускаешь, блин. Это роутер читает Serial или ардуина?