Snusmumriken
Но двигаемся по клеточкам. Dwarf fortress видел?
ShadoWalkeR
Ну тогда надо было уточнять что не пошаговый)
ShadoWalkeR
Верней вообще не использовать это слово)
Snusmumriken
ShadoWalkeR
)))
Saphire
Технически реалтайма нет
Saphire
Есть только пошаговость. Одна с паузой, другая нет
ShadoWalkeR
ShadoWalkeR
КМК если мир не может сделать без действия игрока, то игра пошаговая. Если может, то независимо насколько там дискретно время на действие - она реалтаймова
ShadoWalkeR
Ну то есть если ты за секунду ничего не сделал и в игре чтото произойдет, то она уже реалтаймова внутри себя
Snusmumriken
Ага.
На самом деле можно чаще обновлять, допустим, 0.1с, но с такой скоростью могут действовать только быстрые персонажи типа, а остальные - "пропускают" один ход по умолчанию.
Snusmumriken
Держать клавишу движения и быстро двигаться. Держать клавишу атаки и быстро атаковать.
Snusmumriken
Ну, возможно. Только шанс встречи двух игроков должен быть довольно мал. И для этого нужна открытая апишка взаимодействия с сервером, без часто меняющейся фигни.
Snusmumriken
Никто же не запрещает мне, условно, свапить ключи шифрования в процессе исполнения? Под это безусловно можно подстроиться, но энивей.
Snusmumriken
А кто мешает написать бота в КС и овнить всех на сервере?
Snusmumriken
И да, не надо ругаться, тут дети ((
Snusmumriken
Ну вот и воспользуемся им, или чем-нибудь ещё таким.
Snusmumriken
Lua фаршированная ffi фаршированная c++, всё обфусцированное и обайткоженное.
Snusmumriken
Но это уже потом, сначала - реализация.
Snusmumriken
Карочи, нинад предлагать то что пока рано мутить.
Snusmumriken
Посмотрим. Тем не менее, это то что должно волновать в последнюю очередь, уже после запуска и после появления ботов : )
Snusmumriken
Это очевидно, что клиент нужен исключительно для демонстрации того что прилетело с сервера.
Snusmumriken
"Авторитарный сервер" - довольно распространённое понятие для таких штук.
Snusmumriken
И да, "некоторые параметры" - это норм. Например, параметры ascii-анимации : )
Snusmumriken
Snusmumriken
Пущай сначала напишут:
а) выдиратор скринбуфера
б) парсер этого дела
Snusmumriken
Карочи, если найдётся ультра-гениальный хокир - он в любом случае напишет ультра-бота под что угодно. Я, будучи нубасом, писал бота на куки-кликер (потому что правка сейвов - совсем стрёмно). И бота который автоматически стрелял в шутанах, когда я нацелен на противника, по анализу пикселей. На самом деле, в шутане это оказалось ниоч.
Snusmumriken
Круть. В общем, посоны, это всё потом. Давай я напишу а ты хакнешь, договорились? : )
Snusmumriken
Вот. Жди пару лет.
Snusmumriken
Хехе
vitaly
ShadoWalkeR
Saphire
Snusmumriken
Anonymous
Мне понравилось про обфускацию кода через классы и ооп
Anonymous
Ооп на уровне исходников и правда может сделать код невразумительным
Anonymous
В питоне например
Anonymous
В целом же, я думаю какой-нибудь радаре2 отлично декомпилирует ооп с++
Anonymous
Насчет сишных конструкций обж->вптр не уверен
Anonymous
дизассемблер даст тебе ассемблерный листинг, не более
Anonymous
это ручной разбор
ShadoWalkeR
С/С++ компилируются в ассемблерный код же
ShadoWalkeR
Это всякие С#/Java можно декомпилировать в исходный код
ShadoWalkeR
Snusmumriken
Мало того, асм может быть довольно высокоуровневым, макросы, подстановки, "нормальные" циклы без goto, всё такое. Зависит от асма.
А сишку - можно рассматривать как набор макросов.
ShadoWalkeR
Насколько помню высокоуровневый/низкоуровневый считается насколько тебе нужно учитывать железо при написании кода. Но не готов дискутировать
ShadoWalkeR
)
Anonymous
Рассматривать можно, конечно , но у набора макросов не бывает своего АБИ
Anonymous
Ну и то, что форматы бинарников делались с прицелом под этот язык, что кофф, что эльф
Anonymous
Сторадж классы и т.п.
Lucky
О, кстате про хакнуть
Lucky
Забавно https://users.livejournal.com/-adept-/24313.html#cutid1
Mark ☢️
https://www.hex-rays.com/products/decompiler/index.shtml
Mikhail
Привет всем. Такой вопрос - я рылся в коде имплементации lua5.3 с оффициального сайта и обнаружил следующий недачёт: при вызове функции С API "lua_newuserdata" возвращаемый указатель имеет не определённое (в рамках портируемости) выравнивание так как указывает на первый байт выделенныой по новый объект памяти сразу за структурой типа Udata (которая сама по себе имеет максимальное/заданное выравнивание, но в рамках портируемости - имеет не определённый (платформо зависимый) размер, в следствии чего получаемый указатель и не имеет ни какого определённого выравнивания (единичное)). В виду этого факта любой код, вызывающий данную функцию и не заботящийся самостоятельно о дополнительном выравнивании полученного указателя (а как следствие минимум двойного расхода памяти на объекты) (пример: struct MyStruct* p = (struct MyStruct)lua_newuserdata(...)) имеет согасно стандарту С неопределённое поведение.
Mikhail
Сам вопрос в общем-то в следующем - есть ли предложение в стандарт Lua по добавлению функции алокации подобной lua_newuserdata, но принемающей параметр выравнивания для типа данных пользователя? И если нет, то может быть давайте напишем такое?
Mikhail
Особенно это актуально для любого кода, используещего over-aligned структуры.
Mikhail
Всё выше сказанное применимо для типов вырвнивание которых больше чем у L_Umaxalign. Иначе стандартного выравнивания (получаемого описанным выше путём) достаточно ибо оно соответсвует L_Umaxalign, а не единично как сказано выше(извиняюсь, мой касяк).
Anonymous
Какое выравнивание должно быть у поинтера, я чето не догнал
Anonymous
Если это поинтер на структуру, первым элементом которой является чар, то это не уб
Snusmumriken
Всё выше сказанное применимо для типов вырвнивание которых больше чем у L_Umaxalign. Иначе стандартного выравнивания (получаемого описанным выше путём) достаточно ибо оно соответсвует L_Umaxalign, а не единично как сказано выше(извиняюсь, мой касяк).
А давай добавим в стандарт lua возможность напрямую управлять частотой процессора, и, заодно, функцию превращения компьютера в подводную лодку! Для 5.5 зайдёт на отлично, думаю.
А если серьёзно - всеми выравниваниями и прочей лабудой - должен заниматься программист, который выгружает в Lua свои userdat'ы, стандарту это не особо нужно.
Пишешь нативную lua-библиотеку, выгружаешь в lua функции, которыми можно сверхвыровненно аллоцировать данные, и аллоцируешь себе уже в скрипте, пока память не кончится : )
Snusmumriken
Кстати, не так много людей пишут всякие штуки без дополнительных макросов.
Ну, я часто выгружаю из сишки в луа-таблички всякой ерунды, поэтому у меня полно макросов а ля:
-- создаём табличку
lua_newtable(L);
-- пихаем в таблицу функцию lua_foo, по ключу foo
luax_tsfunction(L, "foo", lua_foo);
-- пихаем в таблицу число 100500, по ключу 1
luax_tnnumber(L, 1, 100500);
-- пихаем в таблицу число 100501, по ключу bar
luax_tsnumber(L, "bar", 100501);
return 1;
Макросы упрощают жизнь, напиши макросы аллокации с автовыравниванием, и используй где хочешь.
Snusmumriken
Но стандарту это действительно не нужно.
Если очень хочется сделать самолёт - мути его сам, а не заставляй других делать, а третьих - подстраиваться, что "их язык - теперь самолёт" : )
Snusmumriken
Они коротенькие, у меня один маленький заголовочный файл под это дело (под кучу типов). Такой кто угодно сделает, если ему это нужно.
Snusmumriken
Хех, ну лады
Anonymous
Просто мне кажется если это указатель на 1 байт памяти после УДата, то он и не должен быть выровнен
Anonymous
УДата же имееи свои паддинги и так
Anonymous
+ если тип возвращаемого указателя чар* то и альясинга не будет
Snusmumriken
А если это структура - выплёвываем указатель на структуру и обвешиваем его методами.
Anonymous
В стандарте С есть четкое замечание , что указатель на структуру === указатель на первый элемент структуры, что исключает выравнивание (паддинги) в начале структуры
Anonymous
Значит этими паддингами занимается структ Удата
RapidCodeLab
ко мне приводи 😁
RapidCodeLab
только можно сразу всех посмотреть?
Snusmumriken
Половину "девушек" приходящих в группу можно довольно бодро банить, хм.
Денис
Не дают?
Snusmumriken
Дурацкая шутка.
Боты они, боты. Или спамеры, как эта только что: "приведу миллиард фоловеров". Я удалил "её" сообщение.
Денис
Да, бот точно не даст) слушайте, а бывают красивые прогерши, я вот ниразу не видел, прям мечта
Snusmumriken
Бывают, но тебе не светят : )
Snusmumriken
Ну, ты же их даже не видел.