@ProLua

Страница 213 из 307
Philipp
21.12.2017
18:38:21
Чо там было

Я видел сообщение Айдара

И Снуса

(

Google
Snusmumriken
22.12.2017
08:04:40
Там один из недавно приперевшихся написал: 'Вступай в общество 'Наставник мужика' и кадри каждую тёлку которую видишь!', Айдар меня позвал чтобы я вычистил рекламу, а я отписал что 'настоящему мужыку не нужен наставник, ибо там все просто'. Ну, я просто вычистил чужую рекламу и свою шуточку про труселя.

annelin
22.12.2017
12:01:33
кто-нибудь AES шифровал/расшифровывал?

@Snusmumriken

aeslua почему-то ерунду какую-то выдаёт

Snusmumriken
22.12.2017
12:10:56
Понятия не имею, не ковырял шифрования (больше по сжатию) : )

Vsevolod
22.12.2017
12:11:40
взять бинды к openssl и шифровать

Roman
22.12.2017
12:17:54
и тут Сева

Vsevolod
22.12.2017
12:18:38
3 groups in common

annelin
22.12.2017
12:32:41
lua-bgcrypto-aes шифрует почему-то только блоками по 16 байт

не могу понять почему

https://github.com/moteus/lua-bgcrypto-aes/blob/efb09701c648f1045a0c0ccb95b6edcb35a4e6a4/src/laes.c

Vsevolod
22.12.2017
12:35:32
правильно, aes вообще блочный шифр с размером блока в 128 бит

поэтому все эти криворукие библиотеки именно так и шифруют: паддинг-то они не умеют делать

Google
Vsevolod
22.12.2017
12:36:19
еще раз: надо брать биндинги к openssl

или gcrypt

а не писать aes (и уж тем более НИКОГДА не применять aes в ecb режиме)

annelin
22.12.2017
12:37:12
» НИКОГДА не применять aes в ecb режиме why?

Vsevolod
22.12.2017
12:41:02
https://github.com/guanzhi/CryptoLectures/blob/master/lectures/3-Block-Cipher.pdf страница 55

annelin
22.12.2017
12:43:02
да я примерно знаю, в чём разница между режимами шифрования

просто asterisk в функции AES_DECRYPT() поддерживает только ecb :)

https://github.com/guanzhi/CryptoLectures/blob/master/lectures/3-Block-Cipher.pdf страница 55
как выравнивание правильно сделать? нулями просто забить?

Vsevolod
22.12.2017
12:53:28
да, последний блок добивается нулями

если он уже полный, то добавляется дополнительный блок, забитый нулями

но паддинг - это как раз то место, где можно мгновенно открыть портал в ад

annelin
22.12.2017
12:54:32
может, либа готовая есть?

почему ад? что мешает разбить данные на блоки по 16 байт, и если последний блок менее 16 байт - добить нулями?)

это же вроде элементарно

Vsevolod
22.12.2017
12:56:37
ну там дальше в лекциях про padding oracle рассказывается

Alxius
22.12.2017
14:18:24
и всё таки спрошу ещё раз - 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
22.12.2017
14:33:52
ну у монстра ест ьпараметры.. их же где то надо хранить. как бы они должны быть у каждого вновь созданного ИД монстра и без коллизий с другими переменными.

чтото типа класса может быт? но я в классах с трудом разбираюсь

5 лет избегал их использования

Google
Aydar
22.12.2017
14:34:44
чтото типа класса может быт? но я в классах с трудом разбираюсь
Есть же нормальный пример http://lua-users.org/wiki/ObjectOrientationTutorial

Alxius
22.12.2017
15:27:18
блин они все для меня плохо понятны

это решение лучше чем работа через Table insert / remove?

Aydar
22.12.2017
15:41:14
блин они все для меня плохо понятны
Тебе определённо надо прочитать pil

Alxius
22.12.2017
16:01:38
?

Aydar
22.12.2017
16:03:03
?
Книга «Программирование на языке Lua»

Snusmumriken
22.12.2017
17:04:47
блин они все для меня плохо понятны
Ну кароч. -- синглтон, ему не нужна функция создания новых объектов, он сам объект 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

annelin
22.12.2017
17:06:22
https://pastebin.com/TpUq8L97

враппер над bgcrypto

Aydar
22.12.2017
17:06:29
Ну кароч. -- синглтон, ему не нужна функция создания новых объектов, он сам объект 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
И как тебе не лень писать?

annelin
22.12.2017
17:06:31
может, косячки мои поищем*?

Snusmumriken
22.12.2017
17:06:45
И как тебе не лень писать?
Скопипастил и чуть переименовал/обрезал, и отрисовку переписал (не запускал поэтому в ней не уверен). Это просто пример ООП.

Snusmumriken
22.12.2017
17:08:43
Не уверен, но моей работы тут минимум.

Зато я это потом смогу копипастить когда будут задавать тупые вопросы. Кстати, это один из примеров когда "мне нужна хеш-мапа в C++, с кучей объектов разного типа", и это является НОРМАЛЬНОЙ архитектурой для скриптов, хе ))))

Vsevolod
22.12.2017
17:12:54
в с++ с этим проблем как раз нет

а вот в сишечке я задрался слегонца

Snusmumriken
22.12.2017
17:13:36
Типа если всё наследовать от одного класса. Но если мне лень наследовать, или я хочу иметь несколько веток наследуемых классов, которые помещаются в один контейнер - жопка : ) Ладно, ладно, уже поздно обсуждать. Блин, я это ещё в группе по love растрындел, пардон, не туда вспомнил.

Vsevolod
22.12.2017
17:14:45
это из серии: "- доктор, а почему если я делаю так, то мне больно? - а вы не делайте так..."

Snusmumriken
22.12.2017
17:14:59
А я ХОЧУ ДЕЛАТЬ ТАК на плюсах, потому что привык в луях ))

Google
Snusmumriken
22.12.2017
17:16:10
Ладно, ладно, узбагойся, я в курсе что в разных яп делают разные вещи чтобы получить один и тот же результат. Можешь не продолжать, потому что в группе по love большая буча поднялась.

Vsevolod
22.12.2017
17:16:23
ну так и делай, как делает lua: сохраняй информацию о типе в рантайме и кастуй поинтер

Alexander
22.12.2017
17:16:46
Всем привет! Если кто-нибудь хочет прочитать доклад по Луа на английском на конференции 5-го февраля в Брюсселе, пишите в личку

Vsevolod
22.12.2017
17:17:47
тут на митапе по луа в Лондоне черт из XTX рассказывал просто офигительный доклад про gc64 в luajit

Alexander
22.12.2017
17:17:48
тут может потеряться :)

Vsevolod
22.12.2017
17:18:11
но он сказал, что никуда ездить не хочет, к сожалению

https://www.meetup.com/London-Lua-User-Group/events/241875030/ - Pete Cawley

Alexander
22.12.2017
17:19:36
Он, кажется, иногда таки ездит :)

Vsevolod
22.12.2017
17:19:40
вот ему попробуй написать

Alexander
22.12.2017
17:19:46
западных докладчиков мы окучим

вы отечественных предлагайте (пусть и экспатов)

будем делать русский десант

Vsevolod
22.12.2017
17:21:07
ну, мне не о чем рассказывать, увы, да и визу нет возможности сделать

annelin
22.12.2017
17:21:11
@cebka @Snusmumriken чекните, плез

https://pastebin.com/TpUq8L97 (Ж

Vsevolod
22.12.2017
17:21:29
@annelinlol: ENOTIME

annelin
22.12.2017
17:21:35
кк

там 10 строчек(:

Vsevolod
22.12.2017
17:22:13
Саша Насонов там много чего крутого у себя на luajit+dynasm делает

Google
Snusmumriken
22.12.2017
17:23:32
Вроде норм, хотя можно сделать в пять раз короче ))

https://pastebin.com/TpUq8L97 (Ж

annelin
22.12.2017
17:25:11
ну тут читабельность »

Страница 213 из 307