Kukuzapa
Никто не тестил на ляписе загрузку файла из формы с несколькими полями встроенным bustedом?
Snusmumriken
Уу, сколько ляписопользователей.
Aleksey
Эээм, три?
Snusmumriken
Уже дофига
Saphire
Что это вообще такое?
Aleksey
Я так понял, что в lua больше ноля - дофига
Aleksey
Фреймворк для сайтов
vvzvlad
Anonymous
@vvzvlad ты про них ничего не говорил :)
обычно советуют использовать самодельный string.split. Потом можешь по таблице ключ=функция вешать свой функционал на первое слово
А по делу, у меня лежит полурабочий токенайзер команд. надо допилить и выложить
vvzvlad
vvzvlad
Да ладно, там команд не очень много, сделаю на if-ах.
Snusmumriken
Там один из недавно приперевшихся написал: 'Вступай в общество 'Наставник мужика' и кадри каждую тёлку которую видишь!', Айдар меня позвал чтобы я вычистил рекламу, а я отписал что 'настоящему мужыку не нужен наставник, ибо там все просто'.
Ну, я просто вычистил чужую рекламу и свою шуточку про труселя.
Anonymous
кто-нибудь AES шифровал/расшифровывал?
Anonymous
@Snusmumriken
Anonymous
aeslua почему-то ерунду какую-то выдаёт
Snusmumriken
Понятия не имею, не ковырял шифрования (больше по сжатию) : )
Vsevolod
взять бинды к openssl и шифровать
Roman
и тут Сева
Vsevolod
3 groups in common
Anonymous
lua-bgcrypto-aes шифрует почему-то только блоками по 16 байт
Anonymous
не могу понять почему
Anonymous
https://github.com/moteus/lua-bgcrypto-aes/blob/efb09701c648f1045a0c0ccb95b6edcb35a4e6a4/src/laes.c
Vsevolod
правильно, aes вообще блочный шифр с размером блока в 128 бит
Vsevolod
поэтому все эти криворукие библиотеки именно так и шифруют: паддинг-то они не умеют делать
Vsevolod
еще раз: надо брать биндинги к openssl
Vsevolod
или gcrypt
Vsevolod
а не писать aes (и уж тем более НИКОГДА не применять aes в ecb режиме)
Anonymous
» НИКОГДА не применять aes в ecb режиме
why?
Vsevolod
Vsevolod
https://github.com/guanzhi/CryptoLectures/blob/master/lectures/3-Block-Cipher.pdf страница 55
Anonymous
да я примерно знаю, в чём разница между режимами шифрования
Anonymous
просто asterisk в функции AES_DECRYPT() поддерживает только ecb :)
Anonymous
Vsevolod
да, последний блок добивается нулями
Vsevolod
если он уже полный, то добавляется дополнительный блок, забитый нулями
Vsevolod
но паддинг - это как раз то место, где можно мгновенно открыть портал в ад
Anonymous
может, либа готовая есть?
Anonymous
почему ад? что мешает разбить данные на блоки по 16 байт, и если последний блок менее 16 байт - добить нулями?)
Anonymous
это же вроде элементарно
Vsevolod
ну там дальше в лекциях про padding oracle рассказывается
Alxius
и всё таки спрошу ещё раз - enemy = {};
function enemy:add(obj)
table.insert(self, obj)
end
function enemy:add(obj,x2,y2,rotate,x2pla2am,y2pla2am)
table.insert(self, obj,x2,y2,rotate,x2pla2am,y2pla2am)
end
Alxius R, [22.12.17 16:14]
можно ли так писать
Alxius R, [22.12.17 16:18]
не врублюсь никак как передачу параметров сделать
Alxius R, [22.12.17 16:18]
и даже не знаю что искать в яндексе. наверное придется чуток по другому делать, делать многомерный массив и с ним оперировать
Alxius
ну у монстра ест ьпараметры.. их же где то надо хранить. как бы они должны быть у каждого вновь созданного ИД монстра и без коллизий с другими переменными.
Alxius
чтото типа класса может быт? но я в классах с трудом разбираюсь
Alxius
5 лет избегал их использования
Alxius
блин они все для меня плохо понятны
Alxius
это решение лучше чем работа через Table insert / remove?
Alxius
?
Snusmumriken
блин они все для меня плохо понятны
Ну кароч.
-- синглтон, ему не нужна функция создания новых объектов, он сам объект
enemies = {list = {}}
function enemies:add(enemy, ID)
ID = ID or #self.list + 1
-- в качестве self передаётся таблица enemies
self.list[ID] = enemy
return ID
end
function enemies:remove(ID)
if self.list[ID] then
self.list[ID] = nil
-- если удалили - вернуть true
return true
end
end
function enemies:update(dt)
for k, v in pairs(self.list) do
if v.update then v:update(dt)
end
end
function enemies:draw()
for k, v in pairs(self.list) do
if v.draw then v:draw()
end
end
-- класс который умеет плодить объекты
Bug = {}
Bug.__index = Bug -- чтобы методы объектов искать
Bug.img = love.graphics.newImage('sprites/bug.png')
function Bug:new(map, x, y, hp, dmg)
local o = {}
o.x = x or 0
o.y = y or 0
o.hp = hp or 5
o.dmg = dmg or 2
o.map = map
o.direction = 'up'
-- возвращаем таблицу
-- с прицепленными методами класса
return setmetatable(o, self)
end
function Bug:update(dt)
-- сюда пихаем ИИ
if self.direction == 'up' then
if self.map[self.x][self.y].items[1].isPlayer then
self.y = self.y - 1
self:attack(self.x, self.y)
end
...
end
end
function Bug:draw()
local w, h = self.img:getDimensions()
local angle = math.pi
if self.direction == 'left' then angle = angle * 1 end
if self.direction == 'down' then angle = angle * 2 end
if self.direction == 'right' then angle = angle * 3 end
love.graphics.draw(self.img, self.x - w/2, self.y - h/2, angle, 1, 1, w/2, h/2)
end
function Bug:attack(x, y)
for i, v in ipairs(self.map[x][y].items) do
if v.applyDamage then v:applyDamage(self.dmg) end
end
end
map = ...
-- создаём объект класса "жук"
local bug = Bug:new(map, 10, 20)
-- добавляем его в список всех противников
enemies:add(bug)
function love.update(dt)
enemies:update(dt)
end
function love.draw()
enemies:draw()
end
Anonymous
https://pastebin.com/TpUq8L97
Anonymous
враппер над bgcrypto
Anonymous
может, косячки мои поищем*?
Snusmumriken
Скопипастил и чуть переименовал/обрезал, и отрисовку переписал (не запускал поэтому в ней не уверен).
Это просто пример ООП.
Snusmumriken
Не уверен, но моей работы тут минимум.
Snusmumriken
Зато я это потом смогу копипастить когда будут задавать тупые вопросы.
Кстати, это один из примеров когда "мне нужна хеш-мапа в C++, с кучей объектов разного типа", и это является НОРМАЛЬНОЙ архитектурой для скриптов, хе ))))
Vsevolod
в с++ с этим проблем как раз нет
Vsevolod
а вот в сишечке я задрался слегонца
Snusmumriken
Типа если всё наследовать от одного класса. Но если мне лень наследовать, или я хочу иметь несколько веток наследуемых классов, которые помещаются в один контейнер - жопка : )
Ладно, ладно, уже поздно обсуждать. Блин, я это ещё в группе по love растрындел, пардон, не туда вспомнил.
Vsevolod
это из серии: "- доктор, а почему если я делаю так, то мне больно? - а вы не делайте так..."
Snusmumriken
А я ХОЧУ ДЕЛАТЬ ТАК на плюсах, потому что привык в луях ))
Snusmumriken
Ладно, ладно, узбагойся, я в курсе что в разных яп делают разные вещи чтобы получить один и тот же результат. Можешь не продолжать, потому что в группе по love большая буча поднялась.
Vsevolod
ну так и делай, как делает lua: сохраняй информацию о типе в рантайме и кастуй поинтер
Alexander
Всем привет! Если кто-нибудь хочет прочитать доклад по Луа на английском на конференции 5-го февраля в Брюсселе, пишите в личку
Vsevolod
тут на митапе по луа в Лондоне черт из XTX рассказывал просто офигительный доклад про gc64 в luajit
Alexander
тут может потеряться :)
Vsevolod
но он сказал, что никуда ездить не хочет, к сожалению
Vsevolod
https://www.meetup.com/London-Lua-User-Group/events/241875030/ - Pete Cawley
Alexander
Он, кажется, иногда таки ездит :)
Vsevolod
вот ему попробуй написать
Alexander
западных докладчиков мы окучим
Alexander
вы отечественных предлагайте (пусть и экспатов)
Alexander
будем делать русский десант
Vsevolod
ну, мне не о чем рассказывать, увы, да и визу нет возможности сделать
Anonymous
@cebka @Snusmumriken чекните, плез
Anonymous
https://pastebin.com/TpUq8L97 (Ж
Vsevolod
@annelinlol: ENOTIME
Anonymous
кк
Anonymous
там 10 строчек(:
Vsevolod
Саша Насонов там много чего крутого у себя на luajit+dynasm делает
Snusmumriken
Вроде норм, хотя можно сделать в пять раз короче ))