Anonymous
вот он
Anonymous
a,b, col это из https://love2d.org/wiki/World:setCallbacks
Anonymous
краш на сстроке " aData:contact(bData)"
Tverd
ну смотри, читаем из файла, построчно. отправляем стачала строку в nkf(хз что это) потом вывод из нее в sed(заменяем символы), потом вывод из сида отправляем в tr (тоже меняем символы) и т.д.
Anonymous
проблема в том что aData и bData могут быть классами Bullet и Wall
Anonymous
и когда происходит столкновение Bullet -> Wall все работает
Anonymous
а когда происходит BUllet->Bullet
Anonymous
падает с attempt to call method 'contact' a nil value
Anonymous
это совсем странно т.к.
Anonymous
print("Contact a "..aData.class.name.."("..aData.id..")".." w "..bData.class.name)
Tverd
проблема в том что aData и bData могут быть классами Bullet и Wall
стандартная проверка - выводи принтами , точно ли оба класса существуют? если один из них nil? потом есть ли такие поля и прочее. По коду на первый взгляд все норм, кроме проверки на nil
Anonymous
выводит в консоль
Anonymous
Contact a Bullet(7) w Bullet
Anonymous
а как может быть что один и тот же объект сначала иммет метод contact потом его бац и нет :(
Anonymous
?
Tverd
просто - удален...
Anonymous
Класс?
Anonymous
класс удален?
Tverd
ну всякое бывает ))) в короне бывает что пустая таблица приходит, ибо удален объект, а ссылка осталась... можно самому удалить поле. В общем проверь что приходит-то. Ну да, объект....
Anonymous
ну в этой же функции я делаю
Anonymous
if aData and bData then
Anonymous
т.е. вроде nil быть не должно
Tverd
сначала идет if a:isDestroyed() or b:isDestroyed() then return end if a:getBody():isDestroyed() or b:getBody():isDestroyed() then return end
Tverd
вот а или b nil - то что будет?
Anonymous
так делал, падать перестает но ситуацию не спасает
Tverd
в общем что бы понять что-то - напиши ошибку и в какой строке
Anonymous
т.к. там логика игры должна вызываться
Anonymous
вот а или b nil - то что будет?
не дойдет до той строки
Tverd
так где ошибка-то?
Anonymous
ошибка attempt to call method 'concat' a nil value
Anonymous
строка
Anonymous
aData:contact(bData)
Anonymous
пардон ошибка attempt to call method 'contact' a nil value
Tverd
да, нет этого метода у aData
Tverd
теперь самое неприятное, понять почему его там нет )
Anonymous
вот я как раз эти и опечалился :(
Tverd
кто удалил, где и зачем
Anonymous
он в одном случае есть
Anonymous
скорее всего
Tverd
Ну тут я уже не помогу... Придется искать самому
Anonymous
ладно буду искать
Anonymous
Ну тут я уже не помогу... Придется искать самому
Блиин прошу прощения, зря голову морочил - это обычный миспеллинг дубликация кода зло
Tverd
вот! бывает ))))
Ilya
nkf, видимо, делает URL-кодирование, только почему-то вместо % там =, а также разбивает на строки, оставляя = в конце. sed 's/=$//' удаляет = в конце. tr '=' '%' заменяет все знаки равенства на знак процента. paste ... снова объединяет строки в одну. И последний sed заменяет percent-encoded символы в те, которые, видимо, разрешены в URL.
Ilya
А зачем тебе это? Да еще в виде шелл-скрипта?
Ilya
наверное на этапе paste
Ilya
Можно использовать https://luarocks.org/modules/gonapps/gonapps-url-encoder вместо этого (или взять оттуда код и допилить до нужного уровня - там вроде все просто).
Можно вставить туда вызов этого Lua-энкодера.
Anonymous
добрый день
Добрый день.
/me попробовал использовать IDEA с EmmyLua и нашёл её весьма удобной для навигации по запутанным исходникам. Например, может находить глобальные переменные, объявленные где-то там, неизвестно где, да ещё и подсказку по аргументам в любом месте проекта дать.
brestows
Привет, народ есть код: local query ="UPDATE table SET status=1" local res=assert(con:execute(query)) res:close()
brestows
Получаю ошибку
FailsBot
Чай попробовал использовать IDEA с EmmyLua и нашёл её весьма удобной для навигации по запутанным исходникам. Например, может находить глобальные переменные, объявленные где-то там, неизвестно где, да ещё и подсказку по аргументам в любом месте проекта дать.
brestows
Attempt to index local res
Snusmumriken
А con:execute должна возвращать хендлер который можно закрыть?
brestows
А разве нет?
Snusmumriken
А разве да? Это явно не стандартная библиотека => никто не знает о чём ты. Читай референсы по тому что ты используешь.
brestows
Luasql
Snusmumriken
Ну вот я, например, этим никогда не пользовался. Читай референс.
brestows
Да там как бы читать особо нечего
Snusmumriken
Не вижу ни одного возвращаемого значения.
Snusmumriken
А, блин, как раз вижу )) Ну тут может вернуться курсор.
Snusmumriken
А ты уверен что это та либа? : ) А ещё, смотри что оно может возвращать кроме курсора: Количество колонок, подвергшихся влиянию выполненной команды. Причём возможно оно возвращает не курсор а nil/false. Делай проверки.
Snusmumriken
Карочи, проверяй всю фигню. Ты бы лучше попробовал научиться разбираться с подобным самостоятельно. Вот как бы ты стал решать такую проблему, если бы у тебя не было этого чата? Распиши алгоритм своих действий.
Snusmumriken
Эй, @brestows, ты где?
brestows
Я уже решил все :)
fgntfg
Snusmumriken
Я уже решил все :)
Ну восхитительно : ) А как ты решил? Ну пожалуйста, распиши алгоритм работы с чёрным ящиком, коим является пользование любой библиотекой.
fgntfg
Снус в режиме учителя
Snusmumriken
Снус в режиме придурка, который хочет чтобы другие люди шевелили мозгами и задавали те вопросы, с которыми ДЕЙСТВИТЕЛЬНО не могут справиться : )
Roman
а вот скажите, что с корутинами в луа?
Snusmumriken
Норм всё. Хочешь корутинов - делай корутины. Специальный тип данных под них - присутствует. Запускай - не хочу. Правда, это единственная часть ванильной луа, которую я ковырял меньше получаса и плохо знаю, потому что лично у меня нет нужды в них: имхо, это очень много goto в удобной оболочке, без которых легко можно обойтись, ничего не потеряв.
fgntfg
Снус, а ты вебсокеты на Lua не ковырял?
Snusmumriken
Вебсокеты - в нгинксе? Или просто луасокеты? Луасокеты - да. Очень много. Каждый день ковыряю, это мой хлеб и частично винишко.
fgntfg
Нет, реализацию websocket server на lua
Snusmumriken
Не ковырял. Кинь линк на сурц.
fgntfg
Их нет у меня.
fgntfg
Я ищу просто как с меньшим количеством костылей сделать асинхронный websocket чтоб слать на/с клиенты инфу
fgntfg
Пока побеждает python